feat(mcp): forgive get_symbol(id=) and ground a hedged get_answer on the served body#783
feat(mcp): forgive get_symbol(id=) and ground a hedged get_answer on the served body#783RaghavChamadiya wants to merge 2 commits into
Conversation
|
✅ Health: 7.6 (unchanged) 📋 At a glance Files & modules (2)
🩹 Review priority (files here with the most recent bug-fix history — defects cluster, so review these first)
🔎 More signals (3)🔥 Hotspots touched (4)
1 more
🔗 Hidden coupling (2 files)
💀 Dead code (1 finding)
📊 Full report · ⭐ Star Repowise · 📥 Install bot · Last updated 2026-07-11 14:19 UTC |
The tool table documents this tool as get_symbol(id), so id= is the natural call, but the parameter is symbol_id and the mismatched call hit a hard pydantic "field required" error. Accept id as an alias (symbol_id wins when both are given); passing neither still returns the shaped "required" error rather than raising.
…eady serves When synthesis hedges but the exact symbol the question named is inlined in symbol_bodies as its full live body, the answer's ground truth is already in hand. Labeling that response "low" with a "read the fallback targets" hint contradicts the payload and pushes the caller to re-read a file it does not need. Hold such a response at medium with grounding="symbol_body" and a note that points at the served body.
1db0178 to
f6e0870
Compare
Two small MCP fixes for friction hit while using the tools for normal exploration. Both are additive and behavior-preserving outside the exact cases they target.
get_symbolacceptsid=as an alias forsymbol_id=The tool table documents this tool as
get_symbol(id), soid=is the natural call, but the parameter wassymbol_idand the mismatched call returned a hard pydanticField requirederror. That is the kind of one-off error that trains a caller to stop using the tool.idis now accepted as an alias.symbol_idstill wins when both are given, and passing neither returns the existing shaped "required" response instead of raising.A hedged
get_answerstays atmediumwhen it already serves the named bodyWhen synthesis hedges but the exact symbol the question named is inlined in
symbol_bodiesas its full live body, the answer's ground truth is already in the payload. Reportingconfidence: "low"with a "read the fallback targets" hint contradicts what was returned and pushes the caller to re-read a file it does not need.Such a response now holds at
confidence: "medium"withgrounding: "symbol_body"and a note that points at the served body. The bump is gated to the exact question-named symbol only (tier-0 anchor); a hedge with no such body still reportslowas before.Tests
test_symbol_range_and_recovery.py:id=alias resolves,symbol_idwins overid, neither returns the shaped error.test_answer_calibration.py: hedge + served named body holdsmedium+grounding, with a negative control that a hedge without the body stayslow.tests/unit/server/mcpsuite green (422).