feat: ai_timeout config and deadline budget propagation#530
Merged
buger merged 3 commits intoMar 12, 2026
Conversation
- Remove timeout_mode config ('probe'|'visor') toggle
- Always keep Visor's Promise.race hard kill (safety net)
- Add ai_timeout field for Probe's maxOperationTimeout (graceful wind-down)
- Defaults to timeout - 90s when not explicitly set
- Remove timeout_mode from assistant.yaml and code-talk.yaml defaults
(graceful timeout now works automatically via the default)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When a parent check has a timeout, compute an absolute deadline and pass it through ExecutionContext. Child checks cap their effective timeout to the remaining parent budget, preventing sub-workflows from outliving their parent's time allocation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded 120000/90000 with PROBE_GRACEFUL_MARGIN_MS and MIN_TIMEOUT_FOR_MARGIN_MS. Add test coverage for ai_timeout derivation logic and constant relationships. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
timeout_modetoai_timeout: Replace thetimeout_mode: 'probe' | 'visor'field with a dedicatedai_timeoutnumber field for Probe'smaxOperationTimeout. Visor's hard timeout is always active —ai_timeoutcontrols Probe's graceful wind-down independently. Defaults totimeout - 90swhen not set.deadlinetimestamp and pass it throughExecutionContext. Child checks (sub-workflows) cap their effective timeout to the remaining parent budget, preventing nested steps from outliving their parent's time allocation.Test plan
deadline-budget-propagation.test.tscovers: timeout capping, no-deadline passthrough, expired deadline throw, multi-level nesting, time-elapsed shrinking, fail-fast on exhausted budgetai_timeoutin YAML config, verify Probe receives it asmaxOperationTimeout🤖 Generated with Claude Code