Repository navigation
v1.5.0 — a comment narrates as well as instructs
The gate stopped refusing a file for its own commentary. CONSTRAINT_DIRECTIVE_LOST accounted for 29 of 29 code-bucket fallbacks on the frozen corpus — not drift, not AST. Inspecting what it was actually refusing, roughly twelve were sentences like:
"The MCP branch of
runClihas always read these two" · "It never did: this branch bypassed pruning" · "could never have worked" · "a saving that never reached the wire"
Losing one of those costs a reader some history. Losing "never hash items matching preserveKinds" costs a caller a rule. The keyword is identical, and the gate refused the whole file for either.
Narrowed only where it is provably safe
This gate protects content, so a wrong call deletes an instruction rather than costing output size. Three limits: only never/always (so "must have been called before" is untouched); only perfect or past constructions (so "is always deterministic" keeps firing); and only when every keyword in the segment is narrative. Sixteen real instructions are pinned as a negative control — a rule that drops one of those is not a better rule at any reduction figure.
Measured — per-row, 576 rows, both routes, target 0.3
| result | |
|---|---|
| rows byte-identical | 572 of 576 |
| fallbacks fixed / new | 4 / 0 |
| newly reducing / stopped | 4 / 0 |
| rows already reducing that changed | 0 |
TypeScript file route: 39 → 43 reducing, 16 → 12 fallbacks.
The caveat matters more than the headline
Python gained zero. All four recovered files are this repository's own source, which M11 measured as 32.8% comment prose written in a what-used-to-be-true style. The 6pp on the TypeScript bucket is the corpus-bias trap showing up as a favourable number — the harder direction to notice — not a portable estimate.
Also in this release
The roadmap reserves no version numbers (§53). v1.5.0 was held for "Granular Sub-Query Re-hydration", which unlike the previous three collisions is perfectly buildable and had simply not been built. Four reservations in four releases were wrong, each for a different reason, so a number is now a fact about what shipped, assigned at ship time.
Full reasoning: DECISIONS.md §52 and §53.