Repository navigation
Conversation
One planner run sees every scope and issue and orders steps by dependency across scopes. Steps stay grouped per scope with global numbers and a Depends on line. Budget scales with scopes that have issues (at most x8).
mcp 2.2 treats any non-ToolError exception as a crash: full traceback at ERROR and the reason hidden from the agent. Missing paths, file vs directory, permission and root-escape errors now reach the agent with their message.
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.
What
The implementation planner (
review.plan) now makes one plan for the whole review instead of one isolated plan per scope.Before, each scope was planned in its own run, so a plan could not say that a fix in one scope needs a change in another scope first (e.g. a shared library before its consumers). Now one run sees every scope and every issue, with file tools rooted at the repo root, and orders steps by dependency across scopes, then severity.
The output is still detailed per scope:
depends_on.number,scopeanddepends_on.implementation_plankeeps its[{subroot, steps}]shape.Budget
review.plan.max_iters/max_llm_callsstay per scope (defaults 5 / 16). The single run gets them multiplied by the number of scopes with issues, at most ×8. Example: 3 scopes with issues gives 15 iterations / 48 LLM calls.review.max_concurrent_scopesno longer applies to the planner.Behaviour change
A planner failure now drops the whole plan; the review is still posted. Before, only the scope that failed was left out.
Tests
tests/test_implementation_plan.pypasses (33 tests): it covers the scope check, numbering and grouping, dependency cleanup, the budget, the single run (one call, repo-rooted tools, inputs not mutated, cleanup on failure) and rendering.test_cerebral*,test_config*,test_doc_extractor,test_review_memories,test_review_statistics).Docs (
configuration.md,usage.md,architecture.md),action.ymlinput descriptions and the CHANGELOG ([Unreleased], no version bump) are updated.Also: filesystem tool errors reach the agent
With mcp 2.2, a tool that raises anything other than
ToolErroris treated as a crash. It's logged at ERROR with a full traceback, and the agent only getsError executing tool list_directory. An agent probingdeploy/orinfra/in a scope without them filled the log with tracebacks and couldn't tell a missing folder from a broken tool.The filesystem MCP server now raises these failures as
ToolError, keeping their message: missing path, file vs directory, permission denied, path escaping the root. The agent getsDirectory not found: deployand nothing is logged as a crash. Real crashes are unchanged. Covered bytests/test_filesystem_server.py(6 tests).