feat(runtime): warn when a topology timeout pin is below the default it overrides (#675) - #1256
Merged
Merged
Conversation
…it overrides (#675) A node's timeout resolves to its own pin, then its group's pin, then its model profile's timeout_seconds, then run.default_timeout_seconds, so a pin wins even when it is the shorter window. Raising a default silently did not reach pinned nodes. validate, plan and run now report a TOPOLOGY_TIMEOUT_SHADOWS_DEFAULT warning for each such pin, naming the default it overrides and the nodes it applies to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… overrides (#675) The profile's own timeout_seconds is the default a pin overrides when it has one, and task compilation prefers it to run.default_timeout_seconds, so the warning must name the profile's value even when the run default is longer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolve the CHANGELOG.md conflict by keeping both entries. Co-Authored-By: Claude Opus 5.5 (1M context) <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.
Refs #675.
What's left in #675
The 7200 pin revert and the CI guard on the packaged topologies (#689) landed. What's still open, per the issue's last comment, is the plan-time warning. A node or group
timeout_secondspin outranks the model profiletimeout_secondsandrun.default_timeout_seconds, even when the pin is the shorter window, and nothing reported it. A project's own topology got no check at all.Confirmed on
unstable(5c1a9775): withdefault_timeout_seconds = 14400,validatepassed the default topology's 7200 pins silently. No source inpackages/{topology,config,runtime}/srcchecks this.Change
packages/runtime/src/timeout-shadowing.ts:timeoutShadowingDiagnosticschecks each pinned agentic node in the expanded graph. A pinned node is one with a node or group pin. It compares the pin against the default task compilation would apply without it: the node's model profiletimeout_seconds, otherwiserun.default_timeout_seconds. The profile timeout is read from the config, because expansion folds the run default into each fan-out entry. Each pin below that default produces oneTOPOLOGY_TIMEOUT_SHADOWS_DEFAULTwarning. The warning names the pin and its path (groups.<id>.defaults.timeout_secondsornodes.<id>.timeout_seconds), the largest default it overrides, and the nodes it applies to, listing the first three.validateadds the warnings to the topology posture, which then readswarn.planadds them to its diagnostics, andrunpasses them through.docs/reference/configuration.mdand a CHANGELOG entry.Not in scope: the model-aware timeout and the finalisation reserve from the original proposal. The issue's comments treat those separately (#680, the runtime's absolute deadline).
Tests
validateon the shipped default topology gives no warning. Withdefault_timeout_seconds = 14400it warns for thegoals,strategies,specialistsandreviewgroup pins, and the topology posture iswarn.planwarns for a group pin (600) and a node pin (300) below the 3600 default, and not for a node pin (7200) above it.validate/plantests: all pass. Strict eslint and prettier are clean on the changed files. I have not run the full runtime suite locally.🤖 Generated with Claude Code
The PR should not merge until the duplicate-run precheck handles Smithers stores outside the project-root database path.
Summary
The PR adds warnings when topology timeout pins override longer defaults and adds a pre-planning check for run IDs already recorded by the workflow engine.
Reviews (3) · Last reviewed commit: "Merge branch 'unstable' into fix/675-tim..."