Repository navigation
fix: require working plans for complex native turns - #317
Draft
EvanProgramming wants to merge 3 commits into
Draft
EvanProgramming wants to merge 3 commits into
EvanProgramming wants to merge 3 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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. |
This branch has not been deployed
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.
Addresses R252 in #268; stacked on PR #312. The full release gate remains open until the candidate-bound evidence is complete.
A complex native-provider turn could call tools without a Working Plan because the existing plan enforcement only ran in the legacy response path. The native engine now offers only the permitted typed
update_plantool until an active plan exists, rejects mixed plan/tool batches, bounds retries for planless final responses, and reports an incomplete turn when planning is unavailable or unsuccessful. A plan completed during the turn permits a final response or a new plan before further work. Existing capability and Strategic Plan checks remain in force. Compact mode continues to expose permitted plan updates after initial planning and honors permission revocation. This uses the existing typed plan boundary rather than parsing provider text or silently creating a generic plan, preserving model-proposed strategy and scope validation.This intentionally changes complex native direct turns: tools are unavailable until planning succeeds. Simple and medium turns and delegated child turns retain their existing behavior. No dependency or public API was added. Protocol errors now remain incomplete even when an older completed plan exists, while explicitly blocked plans remain blocked.
Validation so far: 252 focused native-engine, planning, receipt, and approval tests passed;
make check,make lint, andmake docs-checkpassed. Regression tests cover planless tool calls, mixed batches, denied or failed planning, bounded refusal, successful plan-first execution with a structured provider, completion after a plan, and protocol failure status. Go tests/build, installed wheel/sdist smoke, and agent, subagent, and TUI workflow acceptance passed locally. The current candidate passed the full Python suite: 1,172 tests run, with two Linux Bubblewrap tests skipped on macOS. Compact-mode revision and permission-revocation regressions are included. A prior run failed because the disposable environment lacked pip; pip was installed before this successful retry. Exact-candidate CI and six-platform soaks failed in the Windows Python 3.13 subagent workflow acceptance: one reviewer returned a malformed report. Ten local repetitions passed; the cause is not yet confirmed. The remaining platform jobs are still running.Risk: restrictive tool permissions can prevent complex work from starting; the turn now reports this explicitly. A prior Windows cancellation timeout did not recur on the previous candidate, and a separate Windows reviewer failure is under investigation; neither cause is confirmed. A new candidate invalidates all previous candidate-bound release evidence; do not publish until the new records and scoped waivers validate.
Stacked CI test fix
PR #318 replaces a fragile provider-deadline timing assertion with event-synchronized checks. Its candidate-bound CI supersedes the earlier failed run for release evidence. The Windows reviewer failure in that earlier run remains unexplained.