Fix Stop finalization recovery false positives - #395
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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
Fix the remaining Codex lifecycle
Stopfalse-positive class observed after #393 / v1.3.5.The new incident is a completed read-only analysis that ends with a required recommendation such as
NEXT_ACTION = AUTHOR_NARROW_AUTHORITY_CORRECTIONand an explicit stop condition. The assistant is finished, but the hook still injectsrecovery 1/3. The corrective continuationCannot execute the selected next action...then fails to terminate recovery, producingrecovery 2/3and3/3.Root cause
#393 recognized a small set of terminal phrases after
Stop, but two state-machine gaps remained:selected next actionor an explicitBlocked: ... unauthorizeddisposition.A blanket 64k allowance for every lifecycle
Stopwould weaken the existing hook-mode severe-recovery boundary. This PR therefore applies the larger completed-answer allowance only to an explicit finalization candidate and still runs the entire candidate through tool-intent/protocol detection.Fix
selected next actionand explicit authorization blockers;Recommendationheading with a terminalNEXT_ACTION = ...recommendation;Stopmessages retain the existing strict hook generation budget;TDD / adversarial evidence
The first test-only commit,
d002b5e6f22b976e0bef89864c79015d9be319e1, was RED on the unchanged runtime and reproduced the new final-report and corrective-blocker failures.Additional adversarial coverage pins both fail-open directions:
Scope
Only the Codex watchdog hook logic and its focused terminal-Stop regression file change. No version bump, release preparation, merge, tag, GitHub Release, or npm publication is included.