Skip to content

docs: state that workflow_deadline_seconds is only enforced on sync - #1157

Merged
aviggiano merged 3 commits into
mainfrom
docs/workflow-deadline-enforcement
Sep 28, 2026
Merged

aviggiano merged 3 commits into
mainfrom
docs/workflow-deadline-enforcement

Conversation

@mrthankyou

@mrthankyou mrthankyou commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

[run].workflow_deadline_seconds reads like a guaranteed wall-clock limit, but it is only checked inside run synchronization, which runs only when an operator command touches the run (run once at launch, then status, 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.md it:

  • rewords the workflow_deadline_seconds row in the [run] table
  • adds a paragraph explaining when the deadline is actually checked, what happens when it fires (cancel, timed-out, workflow-deadline-exceeded event), and how to bound an unattended run today (periodic ultrafuzz status, or ultrafuzz 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:check
  • prettier --check docs/reference/configuration.md

Refs #1110

🤖 Generated with Claude Code

RetriggerConfidence Score: 5/5

The PR appears safe to merge, though the periodic-status guidance should be corrected so operators can detect skipped deadline checks.

Fix All in Claude CodeFindings

  1. P2 Status warnings can be hidden ▶
Fix with agent prompt
### Issue 1
docs/reference/configuration.md:155-156
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.

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!

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

The PR clarifies that the workflow deadline is checked during run synchronization rather than enforced by a timer.

  • Documents synchronization entry points, conditional timeout outcomes, and options for monitoring or cancelling unattended runs.
  • The suggested plain-text status monitoring does not display a warning when synchronization is skipped.

Reviews (3) · Last reviewed commit: "docs: correct when workflow_deadline_sec..."

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]>
Comment thread docs/reference/configuration.md Outdated
thankyou and others added 2 commits September 25, 2026 23:54
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]>
Comment on lines +155 to +156
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>`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 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.

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!

Fix in Claude Code

@aviggiano aviggiano left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@aviggiano
aviggiano merged commit b6dd1da into main Sep 28, 2026
13 checks passed
@aviggiano
aviggiano deleted the docs/workflow-deadline-enforcement branch September 28, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants