{"repo":"NousResearch/hermes-agent","public_id":"52332","display_label":"CI timeout tuning for slow generation tests","summary":"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.","subsystem":"agent/pet","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":54143,"merged_at":"2026-06-28T09:41:08+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-06-28T09:41:08+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":52332,"pr_number":54143,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-06-28T09:41:08+00:00"}],"members":[{"kind":"issue","number":52332,"title":"CI flake: tests/agent/test_pet_generate.py exceeds the 140s per-file timeout under shard contention (red on main)","url":null,"state":"closed"},{"kind":"pr","number":52334,"title":"fix(ci): give CPU-heavy test files a per-file timeout override","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"b508d4296e045c2754f075628ec80761b86f7126","number":0},{"kind":"pr","value":"#54143","number":54143}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":54143,"title":"test(ci): raise per-file timeout 140s → 300s to stop false timeouts","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["infographic/ci-file-timeout-300/infographic.png","scripts/run_tests_parallel.py"],"fix_hunks":[{"file":"scripts/run_tests_parallel.py","hunks":["@@ -74,7 +74,16 @@\n \n # Per-file wall-clock cap. Override\n # via --file-timeout or HERMES_TEST_FILE_TIMEOUT.\n-_DEFAULT_FILE_TIMEOUT_SECONDS = 140.0 # set by observing the slowest file at commit time was ~100s in CI and adding some leeway\n+#\n+# Set to 300s (5 min) deliberately generous: the per-test subprocess\n+# isolation plugin spawns a fresh Python process per test, so a\n+# large-collection file pays N × (interpreter startup + import) of\n+# overhead before any test logic runs — and that overhead dilates under\n+# load on shared CI runners, producing false \"no tests ran\" timeouts on\n+# files that finish in ~100s on a quiet box. The Docker build matrix jobs\n+# take 7-10 min anyway, so this headroom costs nothing on total CI wall\n+# time while keeping a genuinely hung file bounded.\n+_DEFAULT_FILE_TIMEOUT_SECONDS = 300.0\n \n # Duration cache: maps relative file paths to last-observed subprocess\n # wall-clock seconds. Used by ``--slice`` to distribute files across\n"]}]}],"trust":{"default_tier":"verified","includes_suggested":false}}