Repository navigation
v1.8.0 — a description is not a directive
R2 and R3 of the road to v2.0 reach the registry, together. R2 stops the constraint gate firing
on descriptive comments and adds a per-file latency instrument. R3 adds the ParserAdapter seam and
an opt-in Deep path behind --engine-mode deep. Neither was released on its own, so upgrading from
1.7.4 delivers both.
What changes behaviour
- More files reduce instead of falling back. A present-tense descriptive
never/alwaysis
no longer read as a directive, as in// Should never happen, but we ...ornever returns.
The constraint gate therefore stops refusing the files that carry one. Over the frozen corpus,
10 files that fell back now reduce, with 0 new fallbacks. Paired over the 507 rows that
reduce in both arms, none changed a byte. A modal still fires on purpose:should never call thisinstructs. (DECISIONS §77) - Every trace carries a new
parserCoverageblock, the default fast path included
(mode: "fast",registeredLanguages: [],backendAnswered: 0). Anything that parses the trace
strictly sees a new field. --engine-mode fast|deepis new onoptimize.fastis the default and is what ran before.
deepneeds the companion packagetokendamper-deep, which is not published until R4. From
the npm package,--engine-mode deeptherefore exits 1 with an error naming what it tried; it
never falls back to Fast. Its "build it first" hint applies to a repository checkout, where
deep mode runs once the workspace is installed andpackages/deepis built. Measured there, it
reduces Python more than Fast (17.75% → 22.26% on the frozen corpus) and TypeScript about the
same. (DECISIONS §79–§81)
Also
- A load-sensitive Gateway test is fixed. Its time-to-first-byte budget sat inside the
distribution of its own first byte under load; the change is test-only. - The per-file latency harness (§76) and a corpus-recipe update, both under
tools/, which the
package does not ship.
Full detail, with the measurements, is in CHANGELOG.md.
On the version number
A minor, because the default path's output moves (§77). The same command over the same input emits
different bytes, which is this project's threshold for one (DECISIONS §53). Nothing was removed.
npm view tokendamper version is what says whether this has reached the registry — the tag does
not. The publish is a separate, 2FA-gated step.