release: v1.6.0 — the audit is closed in full, and the bytes are the caller's - #29
Merged
Conversation
…caller's Ships DECISIONS §54, §55, §56 and §57. Typecheck, lint, build and 677 tests green; built dist, package.json and MCP serverInfo all report 1.6.0. max_audit.md had been declared closed twice while findings were open. This release carries the work that actually closed it, plus one defect found afterwards by pointing an MCP client at this repository's own source. §54 (M7) -- the Gateway forwards the caller's bytes instead of a re-encoding of them. When an elision fired, the proxy rebuilt the request with JSON.stringify and rewrote fields it never touched; a seed past 2^53 reached the provider as a different number. Savings are now measured on the bytes forwarded (48.5% claimed against 47.1% actual, now 46.3% against 46.5%), and a forwarded body can no longer be larger than the one that arrived. §55 -- the audit's nine-row LOW table had entered no wave table and was never scheduled, which is §54's own failure mode one severity band down. L1, L7 and L8 fixed; L4, L5 and L9 recorded at their sites as acceptable rather than correct. L7 was rated too low: a Python function with a blank line after `def` was unoptimizable end to end, 436 bytes in and 436 out against 434 -> 96 for the same function without the blank line. §56 -- the measured precondition for widening elision past TypeScript and Python. Not shipped behaviour; it corrects a sequencing warning that was wrong in the dangerous direction and would have produced silent unmeasured elision. §57 -- a file that documents the block-hash placeholder format is not a corrupted placeholder. regions.ts reduced 29.60% on the CLI and fell back to 0% on MCP, because the corruption scan matched the prose describing the legacy format. 22 files in this repo carry such a string, ARCHITECTURE.md and CHANGELOG.md among them, and every one was unoptimizable over MCP. The one change that can break a startup: an unrecognized TOKENDAMPER_* enum value is now a hard error instead of being silently ignored. Nothing that worked stops working -- the setting never took effect -- but a stale TOKENDAMPER_LOG_LEVEL=verbose that used to fall back to the default now fails at startup. It is the lede of the release notes rather than a line in the LOW-table entry. Numbered 1.6.0 by §53's rule: the roadmap reserves no numbers, and a number is a fact about what shipped, assigned at ship time. Minor rather than patch because the same command over the same input emits different bytes; minor rather than major because nothing that worked stopped working. Co-Authored-By: Claude Opus 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.
Ships DECISIONS §54, §55, §56 and §57.
max_audit.mdhad been declared closed twice while findings were open; this release carries the work that actually closed it, plus one defect found afterwards by pointing an MCP client at this repository's own source.Important
The one change that can break a startup. An unrecognized
TOKENDAMPER_*enum value is now a hard error instead of being silently ignored. Nothing that worked stops working — the setting never took effect — but a stale or typo'dTOKENDAMPER_LOG_LEVEL=verbosethat used to fall back to the default now fails at startup.What ships
§54 (M7) — the Gateway forwards the caller's bytes. When an elision fired, the proxy rebuilt the request with
JSON.stringifyand rewrote fields it never touched:"temperature": 1.0"temperature":1"seed": 12345678901234567890"seed":12345678901234567000The third is a different number. Elided content is now spliced into the original bytes; savings are measured on what's forwarded (48.5% claimed against 47.1% actual → 46.3% against 46.5%), and a forwarded body can no longer be larger than the one that arrived.
§55 — the LOW table was never scheduled. Nine findings that entered no wave table, which is §54's own failure mode one severity band down. L1, L7, L8 fixed; L4, L5, L9 recorded at their sites as acceptable rather than correct. L7 was rated too low — a Python function with a blank line after
defwas unoptimizable end-to-end: 436 → 436 bytes, against 434 → 96 for the same function without the blank line.§56 — the measured precondition for widening elision. Not shipped behaviour. It corrects a sequencing warning that was wrong in the dangerous direction and would have produced silent unmeasured elision.
§57 — a file documenting the placeholder format is not a corrupted placeholder.
regions.tsreduced 29.60% on the CLI and fell back to 0% on MCP, because the corruption scan matched the prose describing the legacy format. 22 files in this repo carry such a string —ARCHITECTURE.mdandCHANGELOG.mdamong them — and every one was unoptimizable over MCP.Numbering
Per §53: the roadmap reserves no numbers; a number is a fact about what shipped, assigned at ship time.
Verification
677 tests, typecheck, lint and build green. All three version surfaces read from
dist/and agree:There is no
--versionflag — it prints usage — so those three are the check.🤖 Generated with Claude Code