Repository navigation
Close out #3898: bank the tools/list savings, drop the last issue ref - #4141
Merged
Merged
Conversation
Every content PR and both feature PRs have merged to dev. This banks the accumulated saving by lowering both total ceilings to their measured totals, and drops the one remaining issue reference (#3653) from the shared window_truncated wire text (D4: issue refs go unless they carry a rule). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QQh8LczP1HGLXQYAx4oTZC
…s called "spelled truncated before." no longer said before what, once the issue ref was cut. "formerly named truncated." says it at the same length, so neither ceiling nor the get_query_trend budget lines move. The doc comment above the constant also stops saying no on-demand guide exists: on a split tool the notice sits in the guide tail get_tool_guide serves. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUU29PuGg9TUFBsACgZg2K
erikdarlingdata
marked this pull request as ready for review
September 24, 2026 05:42
erikdarlingdata
enabled auto-merge (squash)
September 24, 2026 05:42
erikdarlingdata
added a commit
that referenced
this pull request
Sep 24, 2026
* Add 48 buffered CHANGELOG entries in one splice Adds 48 entries and 48 link refs (#4057, #4077, #4079, #4081, #4082, #4083, #4084, #4085, #4086, #4087, #4088, #4089, #4090, #4091, #4092, #4093, #4095, #4096, #4099, #4100, #4101, #4103, #4105, #4106, #4107, #4108, #4109, #4110, #4111, #4113, #4114, #4115, #4116, #4117, #4118, #4119, #4120, #4121, #4122, #4123, #4124, #4125, #4126, #4127, #4131, #4133, #4136, #4141). Each PR's entry was buffered, and this lands every entry whose PR was merged on origin/dev when it ran. Entries found under a bare section line (none unless the old script ran again) move into the matching ### section, below the new entries. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QQh8LczP1HGLXQYAx4oTZC * Changelog splice: add #4137's entry, which merged before the splice but was missed #4137 (pg_plan_capture reads csvlog) merged at 05:57Z with a CHANGELOG entry section in its body. It was neither spliced nor listed as needing no entry. Its entry goes under Fixed, right after #4136's, and #4136's last sentence now points to it instead of saying plan capture is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUU29PuGg9TUFBsACgZg2K --------- Co-authored-by: Claude Opus 5.5 (1M context) <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.
Closes #3898.
Why
#3898 split every MCP tool's description into a short served head plus an on-demand reading guide. It also set a growth-only ceiling on the total
tools/listpayload, so a later PR cannot quietly regrow it. Every content PR that converted a tool family, and both feature PRs, have now merged to dev.This PR is the close-out. It banks the saving those PRs already earned, by lowering both ceilings to what the payload actually measures today. It also removes the one issue reference (#3653) still riding on the wire in shared text.
What changes
Both total ceilings drop to the measured total
The "before" figures are each ceiling's value as first committed in #3898's Phase 0 (
git log -S TotalCeilingBytes). Neither ceiling was ever lowered before this PR. Each was only raised once, deliberately, in the #4048 D9 round. The "after" figures are the measured totals with this PR's change applied. They come from the budget test's own failure message, read with the ceiling temporarily set to 0.McpHelpers.WindowTruncatedDescriptiondrops its issue referenceThis sentence is appended to several tools' descriptions on both products to explain the
window_truncatedfield. Issue references come off unless they carry a rule (D4).WIRE CHANGE: spelled truncated before #3653.becomesWIRE CHANGE: formerly named truncated.The fact stays: the field used to be calledtruncated. The lane's first version,spelled truncated before., no longer said before what. The PR tender reworded it at the same length. Every other word in the constant is unchanged.That six-character shrink only reaches a tool's served (budgeted) text where the constant lands in the head. That happens on exactly one tool per product,
get_query_trend, which drops from 798 to 792 bytes on both Darling and Lite. On every other tool that carries the constant, it is appended after the<<GUIDE>>marker. There it lands in the tailget_tool_guideserves on demand, and the served head does not move. Two test assertions inMcpPayloadContractCensusTests.csquoted the old literal text. Both are updated to match.Converted tool counts, and what still serves more than 620 characters unconverted
<<GUIDE>>)Darling tools still serving more than 620 characters unconverted:
Lite tools still serving more than 620 characters unconverted:
analyze_query_store_planstays unconverted on purpose. It is not in Lite's list above because Lite already serves it in 210 characters. Darling serves it in 914. An identical converted head grows Lite's payload instead of shrinking Darling's, so it stays as is.This PR converts no tool and edits no description other than
WindowTruncatedDescription. There is no changelog entry: every converted tool already has one buffered from its own content PR.PR tender verification
0039c09dchanges the notice toWIRE CHANGE: formerly named truncated.It is the same 25 characters asspelled truncated before., soneither ceiling nor the
get_query_trendbudget lines move. The census test's assertion and the comment belowit quote the new text.
The MCP surface costs ~100k tokens of context before the first call: 157 tools, 336 KB of tools/list, 86 KB of instructions #3898 shipped
get_tool_guide. It now says a split tool carries the notice in its guide tail, and an unsplittool still serves it in the tool list. Today the only unsplit one is
get_query_trend.ToolsList_TotalBytes_IsAtOrUnderTheCeilingfailedon both products and reported totals of 170,798 bytes (Darling) and 89,719 bytes (Lite). Restored, it passed.
past the new ceilings.
get_query_trend): 0 misreads. All 3 answerswere correct: the old key is gone, no limit moves the window floor, and the old name was
truncated.*McpPayloadContractCensus*,*McpToolsListBudget*,*McpToolGuide*,*McpDescription*,*MeasurementContractCensus*,*McpPageContract*,*McpZeroIsAMeasurement*,*WindowTruncat*and*QueryTrend*.4141-reported.txtwas missing. The tender wrote it.Test plan
Darling.Testsbuilds with 0 Warning(s), 0 Error(s).Lite.Testsbuilds with 0 Warning(s), 0 Error(s).McpToolsListBudgetTests,McpPayloadContractCensusTests,QueryStoreClutterTests,QueryStoreTopWindowTests(the classes a git grep forWindowTruncatedDescriptionfinds), and everyMcpToolGuide*class. 280 total, 0 failed.McpToolsListBudgetTestsand everyMcpToolGuide*class. 80 total, 0 failed.🤖 Generated with Claude Code
https://claude.ai/code/session_01QQh8LczP1HGLXQYAx4oTZC