Skip to content
This repository was archived by the owner on Oct 16, 2026. It is now read-only.

Shorten repeated tool text to win back tools/list headroom - #1470

Merged
saworbit merged 3 commits into
mainfrom
batch/tool-list-headroom
Oct 16, 2026
Merged

saworbit merged 3 commits into
mainfrom
batch/tool-list-headroom

Conversation

@saworbit

Copy link
Copy Markdown
Owner

After #1469 the full tools/list profile was 3 bytes under its 210,400 budget, so the next change to add a byte would fail the Python suite. This wins back room by shortening text that repeats across tools, or that gives reasoning the refusal already gives. Nothing a caller needs to call a tool right is gone, and the budgets are unchanged.

Profile Before After Budget
full 210,397 208,471 210,400
core 96,868 96,183 96,900

Where the bytes came from.

  • confirmation_token, on 15 tools, is now "Single-use token from a dry run of this exact call." It still says single use and exact call.
  • The legacy alias notes on 10 tools say what they said before in fewer words: which tool the name is, that the canonical one is listed too, and that error data reports the canonical name. The two with no canonical still say _meta.didi has none.
  • select_main_screen, create_if_missing, symbol_type and board lose the clause that explained a default or a refusal. The refusal still explains itself. A misspelt symbol, for one, is a 404 whose retry_with names create_if_missing.
  • overwrite, below.

Two descriptions were wrong.

  • The shared overwrite text said a call with overwrite: true is confirmation-gated. scene_create and scene_pack_branch use that text, and neither can ask for a token, so a caller was told to dry-run for a token that never comes. It now says only what is true of every tool that uses it. resource_create, the one gated tool that used it, says so in its own entry, as script_create already did. A new test fails any tool that says it is confirmation-gated and publishes no confirmation_token. With the old text put back, it fails naming scene_create.
  • scene_create's root_name said it defaults to a name derived from the file. Both routes and the schema name the root Root. The root_type entry beside it was never served, because the schema's own text wins, and it still listed the three classes scene_create can only make Node2D, Node3D and Control roots, so every scene a 2D game needs has to be built through scene_pack_branch and nothing says so聽#740 widened, so it is gone.

I checked every other "Defaults to" sentence against its schema default, and the rest agree.

The contract snapshots move for description text only. The reference never said scene_create was gated, so no doc changed. The full native suite, the Python suite, the docs validator and the test counts pass locally.

The full profile was 3 bytes under its budget, so the next change to add
a byte would fail. Text repeated across tools, and reasoning a refusal
already gives, is shorter now. Full drops from 210397 to 208495 bytes and
core from 96868 to 96207.

The shared overwrite text said a call with overwrite: true is
confirmation-gated. scene_create and scene_pack_branch take it and cannot
ask for a token, so it was false for both. It now says only what is true
for every tool that takes it, and resource_create, which is gated, says so
in its own entry. A test fails any tool that says it is confirmation-gated
and has no confirmation_token.
scene_create's root_name said it defaults to a name derived from the file.
Both routes and the schema name the root Root. The root_type entry beside
it was never served, because the schema's own text wins, and it still
listed the three classes #740 widened, so it is gone.

The contract snapshots move for the description text only.
@github-actions github-actions Bot added documentation Improvements or additions to documentation tests Test suites and the contracts they assert mcp-protocol The MCP wire surface: tools, schemas, annotations labels Oct 15, 2026
@saworbit
saworbit enabled auto-merge (squash) October 15, 2026 23:48
@saworbit
saworbit merged commit f1d483e into main Oct 16, 2026
29 checks passed
@saworbit
saworbit deleted the batch/tool-list-headroom branch October 16, 2026 00:12
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

documentation Improvements or additions to documentation mcp-protocol The MCP wire surface: tools, schemas, annotations tests Test suites and the contracts they assert

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant