scripts/smoke-invariants.sh now reads JSON-RPC stdout until the response id matches the request, skips id-less notifications within one total deadline, and fails immediately on malformed stdout or a different response id. This prevents notifications/tools/list_changed emitted after index_repository from being misclassified as the search_graph response and shifting the remaining tool sweep.
The classic registry check now derives its count from the named tool list and invokes check_index_coverage, matching src/mcp/mcp.c. Production verification at b713d032 changed from 31 passes/3 false failures to 35 passes/0 failures; bash -n, scripts/check-source-safety.sh, and git diff --check passed. Git history identifies upstream commit cee59ee2 as the original cross-platform smoke authority.
Signed-off-by: Andrew Hundt <ATHundt@gmail.com>