feat(m4): tiered tool registry - default flips to core (20 mounted, 36 legacy behind UE_MCP_PROFILE=full) - #16
Conversation
The retirement flip specified by docs/EPIC_MCP_MATRIX.md, executed: - ue_mcp/tools/__init__.py: Tier (CORE / LEGACY_COMMODITY / EXPERIMENTAL), a TIERS entry for all 56 tools (each LEGACY verdict cites its matrix row), profiles core/full/all, and a ToolRegistry wrapper at the single register_all_tools seam — zero changes to tool modules. Default profile is now "core" (18 registry tools + ue_status/ue_health_check = 20 mounted); UE_MCP_PROFILE=full remounts the 36 Epic-covered tools; "all" adds the honest not-implemented undo/redo slots. Unknown tools fail open at runtime and fail loud in CI; unknown profiles fall back to core with a recorded warning. - ue_mcp/mcp_server.py: health check reports profile, mount counts, and Epic MCP (:8000) reachability; startup logs the mount summary. - tests/test_registry_tiers.py: pins the matrix arithmetic (36/18/2 of 56), profile semantics, env resolution, annotation passthrough, and bidirectional drift (tool without tier / tier without tool both fail). - exec-sim harness + smoke_live.py register with profile="all" — they gate the full surface regardless of what the default mounts (the smoke fix was a ship-blocker caught by adversarial verification). - .mcp.json drops the transitional full override; README states the new default and points at the matrix. Adversarial verification: TIERS parsed row-by-row against the merged matrix — zero mismatches; seam confirmed undodgeable for production code. 574 tests green; ruff clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 57 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (7)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
What
The M4 milestone — the retirement flip specified by EPIC_MCP_MATRIX.md:
register_all_tools()seam (zero tool-module changes): every one of the 56 tools classified CORE / LEGACY_COMMODITY / EXPERIMENTAL, each legacy verdict citing its matrix row.core: 20 tools mounted (18 differentiated +ue_status/ue_health_check).UE_MCP_PROFILE=fullremounts the 36 Epic-covered commodity tools;alladds the two honest not-implemented undo/redo slots. Rollback is one env var.Verification
smoke_live.pyexercises legacy tools by design and would have crashed under the flipped default — now registers withprofile="all".🤖 Generated with Claude Code