docs: state that workflow_deadline_seconds is only enforced on sync - #1157
Conversation
The deadline is checked inside run synchronization, which only runs when an operator command (run, status, inspect, why, stats) touches the run. An unattended run keeps executing past its deadline. Document that, and how to bound an unattended run until workflow-side enforcement lands. Refs #1110 Co-Authored-By: Claude Opus 5.5 <[email protected]>
Address review: a run that finished before the first post-deadline sync keeps its terminal outcome with no timeout record, and a failed cancel request is reported as WORKFLOW_DEADLINE_CANCEL_FAILED and leaves the run active. Co-Authored-By: Claude Opus 5.5 <[email protected]>
ultrafuzz run never synchronizes, the deadline is anchored at run creation and re-armed by resume/replay/fork, paused and pending runs are also timed out, and a failed or skipped synchronization does not check the deadline at all. Also name the dashboard and eval runner as synchronizing callers. Co-Authored-By: Claude Opus 5.5 <[email protected]>
| unattended run, run `ultrafuzz status <run-id>` periodically (for example from | ||
| cron) and act on its warnings, or cancel it with `ultrafuzz cancel <run-id>`. |
There was a problem hiding this comment.
The suggested periodic ultrafuzz status check may not show the warnings operators are told to act on. If synchronization is skipped because control evidence has diverged, status returns a successful result with a warning, but plain-text output omits diagnostics for successful results. A cron check can therefore appear to succeed even though the deadline was not checked. Recommend using JSON output and inspecting its diagnostics, or making the warning visible in plain-text output.
Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/reference/configuration.md
Line: 155-156
Comment:
**Status warnings can be hidden**
The suggested periodic `ultrafuzz status` check may not show the warnings operators are told to act on. If synchronization is skipped because control evidence has diverged, `status` returns a successful result with a warning, but plain-text output omits diagnostics for successful results. A cron check can therefore appear to succeed even though the deadline was not checked. Recommend using JSON output and inspecting its diagnostics, or making the warning visible in plain-text output.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
aviggiano
left a comment
There was a problem hiding this comment.
Corrected the paragraph in 5382af9 against current code: ultrafuzz run never synchronizes; the deadline is anchored at run creation and re-armed by resume/replay/fork; paused and pending runs are also timed out; a failed or skipped synchronization does not check the deadline; the dashboard inspect action and the eval poll loop also synchronize.
Summary
[run].workflow_deadline_secondsreads like a guaranteed wall-clock limit, but it is only checked inside run synchronization, which runs only when an operator command touches the run (runonce at launch, thenstatus,inspect,why,stats). An unattended run keeps executing, and keeps incurring provider cost, past its deadline (#1110).This PR is documentation only. In
docs/reference/configuration.mdit:workflow_deadline_secondsrow in the[run]tabletimed-out,workflow-deadline-exceededevent), and how to bound an unattended run today (periodicultrafuzz status, orultrafuzz cancel)No behavior change.
Context
The proper fix is enforcing the deadline inside the workflow engine. Smithers has no run-level deadline today; it is proposed in smithersai/smithers#1683. #1110 stays open to track that.
Test plan
pnpm docs:checkprettier --check docs/reference/configuration.mdRefs #1110
🤖 Generated with Claude Code
The PR appears safe to merge, though the periodic-status guidance should be corrected so operators can detect skipped deadline checks.
Fix with agent prompt
Summary
The PR clarifies that the workflow deadline is checked during run synchronization rather than enforced by a timer.
Reviews (3) · Last reviewed commit: "docs: correct when workflow_deadline_sec..."