release: v0.0.71 — MCP tool surface diet - #54
Merged
Merged
Conversation
Also fixes negotiation.test.ts expectations, which hardcoded the old full-by-default browser tool counts and now regress under the core default.
Fold highlightElement/highlightText into browser_highlight and
readStorage/writeStorage into browser_storage, each resolving to the
right builtin via a new GeneratedTool.resolve hook that runs before
capability validation so tiers and dangerous accounting see the real
builtin. Drop navigateBack/navigateForward from the MCP surface in
favour of navigate({action}). Full mode now advertises 51 browser
tools (58 TOOL_DEFS - 3 blocked - 6 merged-away + 2 merged).
handleBrowserTool resolves before validateCall/hub.exec; BROWSER_BY_NAME
now indexes the full tool table so a merged or dropped tool can still be
looked up regardless of the advertised mode; buildToolList filters by
builtinTools.every(...) so a merged tool is only advertised when the
worker supports every underlying builtin.
browser_discoverTools could advertise and enable tools the connected worker cannot execute, since it only checked whether a name existed in the catalog. handleDiscover now takes an optional `supported` builtin set: catalog only lists runnable tools, and enable requests for a tool that exists but the worker can't run land in a new `unsupported` field instead of being silently advertised. dispatchCall wires this from the existing workerToolSupport(deps) (peek-only, never binds a port).
- README: name the legacy-extension fallback set instead of a bare "19" that collided with the "其余 19 个" line above, and state the actual consequence under the new default (9-tool intersection with core, browser_storage never listed since old extensions lack writeStorage). - SKILL.md: the 填表+提交 scenario now calls out that submitForm needs browser_discoverTools first, like the 翻页采集 scenario already does; replaced askUser/detachTab/attachTab flow instructions (not exposed over MCP) with in-reply confirmation and dropped the detach step. - tests/tool-gen.test.ts: renamed the "55 - 5 + 2" title, which no longer matched TOOL_DEFS' actual count, to spell out the real arithmetic (58 - 3 blocked - 6 merged-away + 2 merged).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Breaking change to
@attson/atwebpilot-mcp: the advertised MCP tool list drops from ~13.5k tokens to ~4.5k by defaulting to acoreset and letting the agent discover the rest on demand.coremode (32 browser tools +browser_discoverTools);ATWEBPILOT_MCP_TOOLS=fulllists all 51 up front.paritymode removed.browser_discoverTools: no args → catalog of the 19 non-core tools in 7 groups;enable: [...]→ adds them process-wide, sendstools/list_changed, returns their schemas. Respects the worker'ssupported_tools.browser_navigateBack/Forward→browser_navigate({action});browser_highlightElement/Text→browser_highlight;browser_readStorage/writeStorage→browser_storage({op}). Resolution runs before capability validation, so tiers and dangerous accounting see the real builtin.LlmTool.mcpfield; side-panel Chinese descriptions unchanged. Schemas stripped of nested descriptions.Spec:
docs/superpowers/specs/2026-09-02-mcp-tool-surface-diet-design.md(local).Test plan
pnpm typecheckclean (4 packages)pnpm test: shared 184, coordinator 45, extension 909, mcp-server 129 — all passdist/index.jssmoke-tested over stdio: 38 tools / 16,385 chars in core; catalog 19; enable → 39v0.0.71to trigger the npm publish workflow, then verifynpm view @attson/atwebpilot-mcp version🤖 Generated with Claude Code