hermes-agent/.github/workflows
kshitij f51aa6a9b5 fix(ci): repair red main — busy-mode test + missing checkout in skills-index workflows
Three separate reds on main. Two are fixed here; the third needs no code.

1. tests/gateway/test_multiplex_busy_input_mode.py (blocks every merge)

Fails "Python tests / Run tests slice 5/12" and therefore "All required
checks pass". Semantic merge conflict between two PRs merged ~1h apart:

  a31be480 fix(gateway): respect routed profile busy modes             (added the test)
  c8f235a1 feat(gateway): allow selective multiplex profile serving    (added the gate)

c8f235a1 taught _profile_name_for_source to reject a route whose target
profile is not in the served set (profiles_to_serve). Each PR was green on
its own base; neither ran against the other's merge result.

The test asserts a route to profile "research" resolves to that profile's
busy mode, but never patches profiles_to_serve — so it reads the runner's
REAL on-disk profiles. "research" is not among them, the route is rejected
before the busy-mode snapshot is consulted, and the assertion gets the
gateway default:

  WARNING gateway.run: Rejecting profile route 'research-chat':
                       target profile 'research' is not served
  AssertionError: assert 'interrupt' == 'steer'

Patch profiles_to_serve for the assertion — the same seam every sibling
test in tests/gateway/test_profile_resolution.py already patches
(test_route_inside_allowlist_resolves, test_route_outside_allowlist_rejects).

This also removes an ambient-state dependency: the test previously passed
or failed based on which profiles happened to exist on the machine running
it. Verified passing under an empty HERMES_HOME.

Test-only. The serving gate from c8f235a1 is correct and left intact.

2. Skills-index workflows: local action used without actions/checkout

check-freshness has failed on all 12 of its last 12 scheduled runs:

  ##[error]Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under
  '.../.github/actions/get-app-token'. Did you forget to run
  actions/checkout before running your local action?

./.github/actions/get-app-token is a LOCAL composite action and cannot
resolve without the repo on disk. skills-index-freshness.yml had no
checkout step at all. The step is gated on `status != 'ok'`, so the
watchdog broke exactly when it was supposed to file its issue — the live
index is currently 521.4h stale (limit 26h) and nobody was told.

An audit of all workflows for this bug class found one more instance:
skills-index.yml's `trigger-deploy` job, which re-triggers the docs deploy
so a refreshed index reaches the live site. Its sibling `build-index` job
checks out; this one did not. That is plausibly why the index went stale
in the first place. Both are fixed; the audit now reports zero remaining
jobs that use a local action without a prior checkout.

Pinned to the same actions/checkout SHA used by the other 35 call sites.

3. "Publish inline E2E evidence" — no fix needed

Failed once at 13:33Z on a transient TLS error reaching api.github.com
("certificate is not valid for any names") while installing a gh
extension. The last 25 runs of that workflow are 25/25 success. Infra
blip, not a code defect.
2026-08-11 21:26:28 +05:30
..
ci-review-comment.yml fix(ci): review comment poller deadlocked on its own run 2026-08-10 13:48:21 -04:00
ci.yml ci: add macos and windows test lanes for the os-marked tests 2026-08-09 22:09:49 -04:00
contributor-check.yml ci: poll review statuses from artifacts every cycle 2026-08-05 11:16:18 -04:00
deploy-site.yml fix(docs): retain prior builds' hashed assets across Pages deploys 2026-08-08 06:04:36 -07:00
docker-lint.yml
docker.yml ci: move the review comment and the image build out of the CI run 2026-08-09 15:40:04 -04:00
docs-site-checks.yml perf(ci): build only en locale in docs-site-checks 2026-08-08 05:53:52 -04:00
e2e-desktop.yml ci: poll review statuses from artifacts every cycle 2026-08-05 11:16:18 -04:00
history-check.yml ci: poll review statuses from artifacts every cycle 2026-08-05 11:16:18 -04:00
infographic-check.yml chore: untrack committed PR infographics and enforce the rule in CI 2026-07-26 11:54:03 -07:00
install-e2e-run.yml ci: test updating from sampled release tags, on tag + every 12h 2026-08-04 17:36:26 -04:00
install-e2e.yml ci: test updating from sampled release tags, on tag + every 12h 2026-08-04 17:36:26 -04:00
installer-tests.yml ci(install): actually run the PowerShell installer tests 2026-08-04 15:34:32 -06:00
js-autofix.yml fix(ci): keep review-gated files out of the js-autofix patch 2026-08-10 02:36:55 -04:00
js-tests.yml feat(runtime)!: require Node 26 across all installers, heal, and upgrade paths 2026-08-01 21:17:51 -04:00
label-rerun.yml ci: move the review comment and the image build out of the CI run 2026-08-09 15:40:04 -04:00
lint.yml ci: retry uv python install 2026-08-03 11:26:56 -04:00
lockfile-diff.yml ci: poll review statuses from artifacts every cycle 2026-08-05 11:16:18 -04:00
osv-scanner.yml ci: poll review statuses from artifacts every cycle 2026-08-05 11:16:18 -04:00
publish-e2e-evidence.yml fix(ci): resolve fork PRs in the E2E evidence publisher 2026-08-11 03:53:52 -04:00
review-labels.yml ci: poll review statuses from artifacts every cycle 2026-08-05 11:16:18 -04:00
skills-index-freshness.yml fix(ci): repair red main — busy-mode test + missing checkout in skills-index workflows 2026-08-11 21:26:28 +05:30
skills-index.yml fix(ci): repair red main — busy-mode test + missing checkout in skills-index workflows 2026-08-11 21:26:28 +05:30
supply-chain-audit.yml ci: poll review statuses from artifacts every cycle 2026-08-05 11:16:18 -04:00
tests-os.yml ci: print the zero-selection diagnostic instead of dying first 2026-08-09 22:09:49 -04:00
tests.yml fix(ci): merge all duration slices, not one 2026-08-10 14:33:36 -04:00
uv-lockfile-check.yml ci: poll review statuses from artifacts every cycle 2026-08-05 11:16:18 -04:00