# NousResearch/hermes-agent · CI timeout tuning for slow generation tests

## Open now

- Nothing open on GitHub.

These items address test timeouts in CI, particularly around a slow model generation path that causes false failures under shard contention. Changes involve raising per-file and generation timeouts to reduce flakiness.

## TL;DR

- 3 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #54143. Verify it addresses your case.
- **Recommended:** read PR #54143 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.67`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #52332: CI flake: tests/agent/test_pet_generate.py exceeds the 140s per-file timeout under shard contention (red on main)

## Prior & competing PRs

- **#54143: test(ci): raise per-file timeout 140s → 300s to stop false timeouts**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `infographic/ci-file-timeout-300/infographic.png`, `scripts/run_tests_parallel.py`
  - fix hunks:
  - `scripts/run_tests_parallel.py`

    ```diff
    @@ -74,7 +74,16 @@
     
     # Per-file wall-clock cap. Override
     # via --file-timeout or HERMES_TEST_FILE_TIMEOUT.
    -_DEFAULT_FILE_TIMEOUT_SECONDS = 140.0 # set by observing the slowest file at commit time was ~100s in CI and adding some leeway
    +#
    +# Set to 300s (5 min) deliberately generous: the per-test subprocess
    +# isolation plugin spawns a fresh Python process per test, so a
    +# large-collection file pays N × (interpreter startup + import) of
    +# overhead before any test logic runs — and that overhead dilates under
    +# load on shared CI runners, producing false "no tests ran" timeouts on
    +# files that finish in ~100s on a quiet box. The Docker build matrix jobs
    +# take 7-10 min anyway, so this headroom costs nothing on total CI wall
    +# time while keeping a genuinely hung file bounded.
    +_DEFAULT_FILE_TIMEOUT_SECONDS = 300.0
     
     # Duration cache: maps relative file paths to last-observed subprocess
     # wall-clock seconds. Used by ``--slice`` to distribute files across
    ```
- **#52334: fix(ci): give CPU-heavy test files a per-file timeout override**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `b508d4296e045c2754f075628ec80761b86f7126`, `#54143`

## Fix status

- Merged to main in PR #54143 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-06-28`.
- Subsystem: `agent/pet`
