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
The tool surface now reaches the index and the blind-spot radar (issue 260911). Three new index fields — tools_builtin, tools_fp, tools_mcp_n — and two new sections in /api/unknowns: tools reports built-in tools outside the classifier.KNOWN_TOOLS baseline (the snippet is the tool's own description, so what it does is answerable without a second call), and tool_changes reports a tool set that differs between consecutive requests on the same lane (the value is the diff, e.g. +TaskCreate,TaskGet,TaskList… -EndConversation,RemoteTrigger,SendUserFile). Why: while checking "does CC have new features" on 09-11, seven built-in tools (Artifact, DesignSync, Monitor, PowerShell, PushNotification, SendFeedback, Workflow) turned out to appear only on third-party-link sessions — and the index held exactly one number about tools, tools_n. Seeing that required scanning a 40 MB capture file by hand; the radar said nothing. The tool surface is CC's capability list, on par with anthropic-beta. mcp__ tools stay out of the baseline and out of the unknown check (they are the user's own MCP servers; reporting them would drown the real signal) and are only counted. The grouping key is session + kind + agent_id, not session: the first cut grouped by session and produced 26 "tool changes" that were all false — sub-agents reuse the parent session id, parallel sub-agents differ from each other, and CC's own search dispatch always has tools_n=1. After the fix, 09-06 keeps exactly one real change. The detail page highlights off-baseline built-in tools and shows the MCP count in the Tools header.
The betas section carries attribution.betas.new / betas.known now include hosts / cc_versions, and new also includes samples. The endpoint's own reading order starts with "look at hosts first", yet betas was the one section without it — and the new beta on 09-11 was single-host, so the deciding information simply was not in the response. known gets no samples (ids are meaningless across thousands of rows); new must have them, because that is the section you follow up on.
404s on /api/* now point somewhere. The response gains did_you_mean (closest registered endpoints, computed from Flask's url_map so there is no second list to drift) and hint (pointing at GET /api/ai-guide). An agent's first instinct is /api/status (here it is /api/proxy/status), and the old 404 offered nothing. Similarity is measured after stripping the shared api/ prefix, and an empty list is preferred over a wrong steer.
/api/grep states what it does not search. The new not_searched field says HTTP headers (including anthropic-beta) are outside the searched areas, and points to /api/unknowns for beta and tool-surface questions. Grepping a beta feature name only ever matched other conversations quoting it.
Changed
KNOWN_BETAS gains mid-conversation-tool-changes-2026-07-01 — first seen 09-11 (CC 2.1.268, all 47 on one third-party link), absent on every day from 08-31 to 09-10, and present as a string in the claude.exe binary: a capability declared by the CC client, not a gateway quirk. Its meaning — the tool set may change mid-conversation — is the other half of the new tool_changes section.
IDX_SCHEMA 18 → 19. The three tool-surface fields are absent from older indexes, which would leave both new sections silently empty. The first read after upgrading rebuilds the day's index.
tests/dev_seed.py: tool names switched from Task / TodoWrite (long gone from real traffic) to names inside the baseline, so seeded records no longer report themselves as unknown tools; added sample E5 for a mid-conversation tool change; the docstring now warns to delete seeded data immediately — 54 synthetic records left on 09-10 nearly passed for a real protocol signal.