hermes-agent/.github/workflows
ethernet b689624aee feat(ci): 4-way matrix slicing with LPT duration-balanced distribution
run_tests_parallel.py:
  - --slice I/N flag (also HERMES_TEST_SLICE env var) runs only the
    I-th slice of N, distributing files across slices by cached
    duration using LPT (Longest Processing Time first) greedy
    algorithm so each slice gets roughly equal wall time
  - Duration cache (test_durations.json): maps relative file paths to
    last-observed subprocess wall time. _save_durations merges with
    existing cache so entries from other slices are preserved.
  - Per-file subprocess timing in progress output + end-of-run
    distribution summary (percentiles, top-10 slowest, <1s/<2s counts)
  - Unknown files default to 2.0s estimate (~P50), spread evenly by LPT

.github/workflows/tests.yml:
  - Matrix strategy: slice [1, 2, 3, 4] with fail-fast: false
  - Each slice restores duration cache from main (stable key, no SHA),
    runs its portion, uploads per-slice durations as artifacts
  - save-durations job (main only, if: always()) downloads all 4
    artifacts, merges into single cache entry for future PRs
  - Timeout reduced from 60min to 30min per slice (~1/4 the work)

Cache design:
  - Stable key (test-durations) not keyed by commit SHA — durations
    are about files, not commits, and SHA-keyed caches miss on every
    new commit and on PR merge commits
  - actions/cache scoping: main's cache is visible to all PRs targeting
    main; feature branches without a cache still work (default 2.0s)
  - No dotfile prefix (upload-artifact v7 skips hidden files)
2026-05-22 19:46:18 -07:00
..
contributor-check.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
deploy-site.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
docker-publish.yml fix(ci): stop pushing per-commit SHA tags to Docker Hub 2026-05-20 12:42:18 -04:00
docs-site-checks.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
history-check.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
lint.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
nix-lockfile-fix.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
nix.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
osv-scanner.yml chore(actions)(deps): bump the actions-minor-patch group across 1 directory with 2 updates 2026-05-19 03:27:09 -07:00
skills-index.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
supply-chain-audit.yml fix(ci): supply-chain-audit uses two-dot diff, causing false positives on stale-branch PRs 2026-05-22 15:15:53 -07:00
tests.yml feat(ci): 4-way matrix slicing with LPT duration-balanced distribution 2026-05-22 19:46:18 -07:00
upload_to_pypi.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00
uv-lockfile-check.yml chore(actions)(deps): bump actions/checkout from 4.3.1 to 6.0.2 2026-05-19 03:27:54 -07:00