Version: gh-aw v0.83.4
Behavior: timeout-minutes in workflow frontmatter compiles into a step-level timeout on the agent execution step for engine: claude, but the codex step builder never emits it — a codex-engine workflow's agent step (and job) has no timeout at all, silently inheriting Actions' 360-minute default. The only timeout-minutes in a codex lock file is the framework's own 45 on safe_outputs.
Repro: compile the same frontmatter (timeout-minutes: 15) under engine: claude vs engine: codex and grep the lock files:
- claude →
timeout-minutes: 15 present on the Execute step
- codex → absent everywhere except safe_outputs
Checked for workarounds before filing: the engine: schema (25 keys) has no timeout field; engine.command replaces the executable and skips installation; custom engine.harness could enforce a wall clock but means owning a replacement for codex_harness.cjs; steps/pre-steps/post-steps all run outside the agent step and can't act as a watchdog.
Impact: docs/user expectations that timeout-minutes bounds the agent are silently false on codex; a wedged run holds its concurrency group for up to 6 hours. The AI-credit and max-turns proxy guards still terminate runaway spend, but there is no time bound.
Happy to provide the full lock-file diffs if useful.
Version: gh-aw v0.83.4
Behavior:
timeout-minutesin workflow frontmatter compiles into a step-level timeout on the agent execution step forengine: claude, but the codex step builder never emits it — a codex-engine workflow's agent step (and job) has no timeout at all, silently inheriting Actions' 360-minute default. The onlytimeout-minutesin a codex lock file is the framework's own45onsafe_outputs.Repro: compile the same frontmatter (
timeout-minutes: 15) underengine: claudevsengine: codexand grep the lock files:timeout-minutes: 15present on the Execute stepChecked for workarounds before filing: the
engine:schema (25 keys) has no timeout field;engine.commandreplaces the executable and skips installation; customengine.harnesscould enforce a wall clock but means owning a replacement forcodex_harness.cjs;steps/pre-steps/post-stepsall run outside the agent step and can't act as a watchdog.Impact: docs/user expectations that
timeout-minutesbounds the agent are silently false on codex; a wedged run holds its concurrency group for up to 6 hours. The AI-credit and max-turns proxy guards still terminate runaway spend, but there is no time bound.Happy to provide the full lock-file diffs if useful.