You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
smoke-invariants: EXPECTED_TOOLS omits check_index_coverage and compare_graphs, and the check is one-way #1969
check_index_coverage and compare_graphs are missing. Both are registered in src/mcp/mcp.c (the tool table, and the analysis profile allowlist). Found while working on #1941; not fixed there.
Why the check does not catch it
inv_tools_list walks the expected list and reports the names it did not find in the server's tools/list response. It never walks the other direction. A tool the server advertises but the list does not name is simply invisible, so the invariant passes while covering 14 of 16 tools and prints all 14 tools present — a number that reads like full coverage.
That is the same failure the parse-coverage work in #1941 was about: a check that reports success without having looked at everything.
Suggested fix
Add the two names and set the count to 16, then make the check symmetric — report any advertised tool the list does not name, so the next tool added cannot go unnoticed the same way. EXPECTED_TOOL_COUNT should be derived from EXPECTED_TOOLS rather than written twice.
Note that smoke-invariants.sh runs from smoke.yml, whose triggers are workflow_dispatch and pushes to qa/smoke-**, and which is documented non-gating. So this is a gap in a check that never runs on a PR.
Thank you for identifying the registry drift. Current main still hard-codes 14 expected tools in scripts/smoke-invariants.sh and omits check_index_coverage and compare_graphs, both present in the MCP tool registry. One detail has changed: the smoke test now checks the returned count as well as expected-name membership, so describing the current check as purely one-way would be inaccurate. The remaining work is to reconcile the expected inventory with the intended tool profile and prove missing, extra, and duplicate-name failures. This is source confirmation; I have not run the smoke test in this triage pass.
Activity
DeusData commentedon Sep 19, 2026
Thank you for identifying the registry drift. Current main still hard-codes 14 expected tools in
scripts/smoke-invariants.shand omitscheck_index_coverageandcompare_graphs, both present in the MCP tool registry. One detail has changed: the smoke test now checks the returned count as well as expected-name membership, so describing the current check as purely one-way would be inaccurate. The remaining work is to reconcile the expected inventory with the intended tool profile and prove missing, extra, and duplicate-name failures. This is source confirmation; I have not run the smoke test in this triage pass.