- Share one HERMES_CRON_TIMEOUT parser (_cron_inactivity_seconds) between run_job's inactivity monitor and the cwd-lock bound so the two sites cannot drift - the bound must stay >= the inactivity limit or waiters would fail while a healthy holder runs. - Bind the timeout once per run_job; the raise reports the value that was actually used for the wait. - Timeout message covers the writer-blocked-by-readers path instead of always blaming a workdir job. - The finally's TERMINAL_CWD restore is now gated on _cwd_lock_acquired: a fail-closed timeout raised before the env-set, so restoring there replayed a pre-wait snapshot over the ACTIVE holder's live override (pre-existing microsecond race from the #80912 snapshot placement). - Comment accuracy: the bound is measured from the waiter's arrival; a late-wedging or pre-agent-hung holder can outlive it. |
||
|---|---|---|
| .. | ||
| scripts | ||
| __init__.py | ||
| blueprint_catalog.py | ||
| executions.py | ||
| jobs.py | ||
| lifecycle_guard.py | ||
| scheduler.py | ||
| scheduler_provider.py | ||
| suggestion_catalog.py | ||
| suggestions.py | ||