fix(coding-agent): stop retry watchdog after provider recovery - #1671
Open
asdfqwerzxcc wants to merge 4 commits into
Open
asdfqwerzxcc wants to merge 4 commits into
asdfqwerzxcc wants to merge 4 commits into
Conversation
Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
Ultraworked with [omo](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.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\n\nStop the provider-timeout retry watchdog from aborting a recovered run after the provider has already produced a tool call. The watchdog now checks retry-request ownership before aborting the active Agent, so a long foreground
evalcan cross the old deadline and still return its result to the model.\n\nThis is the separate lifecycle defect observed while reproducing oh-my-openagent #8246: no Esc/Ctrl+C input was involved.\n\n## Changes\n\n- add a retry-request ownership predicate to the bounded continuation watchdog\n- derive ownership from AgentSession retry-attempt state, which resets at the recovered provider response boundary\n- add deterministic fake-timer coverage for provider timeout -> recovered eval -> old deadline -> provider call three\n- preserve the existing watchdog for genuinely wedged provider retries\n- document the core ownership contract and release note\n\n## QA & Evidence\n\n- RED: parent Agent signal became aborted and only 2 provider calls occurred\n- GREEN focused: 11/11 timeout continuation tests pass\n- Provider regression cluster: 32/32 pass\n- Static/build: changed-file Biome pass, root TypeScript no-emit pass, diff check pass, full build exit 0, changelog gate pass\n- Manual runtime driver:recoveredParentAborted=false; a still-wedged retry remainswedgedRetryAborted=true\n- Real source CLI: eval hard-limit mock loop 5/5 pass, two model turns served, final assistant text returned, real auth unchanged\n- Artifact:local-ignore/qa-evidence/20260914-retry-watchdog-tool-abort/README.mdin the task worktree (ignored by repository policy)\n\n## Risks & Residuals\n\n- The predicate relies on the existing invariant that a genuinely successful providermessage_endresets retry-attempt state before tool execution. The regression pins that ordering.\n- Broad Windows suites retain pre-existing path, release-script, and native-prebuild fixture failures documented on the sibling PR; focused changed-domain tests are green and GitHub CI is authoritative.\n- The local gate-review agent remained non-terminal in its bounded attempt, so no local reviewer approval is claimed; repository CI/review remains required.\n\n## Related\n\n- Sibling file-integrity fix: #1670\n- Original report: https://github.com/code-yeongyu/oh-my-openagent/issues/8246\nSummary by cubic
Stops the provider retry watchdog from aborting a session after a timeout retry has already recovered. Previously, a retry that successfully yielded a long-running local tool could still hit the original watchdog deadline, abort the Agent mid-execution, and drop the tool result. Now the watchdog only aborts while a retry request is still pending, so a recovered run continues normally.
message_endbefore the tool runs.Written for commit 168f2ee. Summary will update on new commits.