9a69785790
The flat 300s --file-timeout SIGKILL'd known-slow large-collection files when CI load dilated their runtime past the cap; the automatic one-shot retry then passed, manufacturing a FLAKY report for a healthy file. Seen 2026-08-18 on main run 32155223248's sibling PR runs: tests/test_hermes_state.py (239 tests) killed at 300s on attempt 1, passed in 205s on retry. _effective_file_timeout() now gives each file max(flat_cap, 3 x last cached duration) from test_durations.json. The bound is only ever raised — genuinely hung files are still killed, uncached files keep the flat cap, and --file-timeout/HERMES_TEST_FILE_TIMEOUT semantics are unchanged. Includes a sabotage-verified unit test (fails without the scaler).