CodeEraser 1.6.0
CodeEraser 1.6.0
The tombstone-residue class is now judged, not only measured, and Rust doc
comments are one paragraph to the documentation-duplication judge. Check
scores are comparable with 1.5.x — no judged axis moved, no default guard tier
changed, the index schema stays at 15; the wire moves 6.5.0 → 6.6.0
additively (an eleventh judgment family, tombstone/1), the daemon protocol
2.0.0 → 2.1.0 additively, and the observe feed takes a named break to
ce.observe/0.9.0. ce docdup rows are not comparable with 1.5.x: every
Rust /// / //! block changes geometry (see below).
Tombstone residue, judged as a conjunction
A change that erases a name and then narrates it — a struck-through or
(removed) label, or a sentence carrying a backward-looking mark together with
the erased name — is measured in Rust as the changeset's surfaces and judged in
the core sentence by sentence against a floor and the class's [tombstone] budget. Three legs speak — PreToolUse, the Stop audit, ce precommit /
ce commitmsg — only at the class's [tombstone] tier (default observe)
and only when the core answers over; no core, an older core, or an
incomplete measurement is recorded by name and never enforced.
[tombstone]table ince.toml:tier,budget(absent = the condition is
not evaluated),ledger(globs of changelog-role documents),terms(words
of the repository's own vocabulary that are never names). All four enter
knobs_digest, so a repository that declares them re-establishes its
baseline once (CE_ACCEPT_BASELINE=1 ce baseline).- Changelog-role documents are exempt four ways: by path, by ledger shape, by a
segment carrying three version witnesses, or by a[tombstone] ledger
declaration; each exemption is written to the feed by kind. ce commitmsg <file>— a gitcommit-msghook face: the staged changes
and the commit message (as one Markdown prose surface,COMMIT_EDITMSG:line)
under the same judgment asce precommit; exit 1 on a deny, 2 when the file
cannot be read. The parity table names it besidece precommit.- The false-positive rate was replayed on git history before anything moved:
nine rounds on therequeststail (0 / 400 commits) and this repository's
whole history (strict reading 1 / 537 events = 0.19 %, inside the 1 % gate;
the conservative reading that counts every true positive as a cost is
6 / 537 = 1.12 %, over the gate by one commit — the two extra hits are true
positives this batch wrote itself, recorded as they are, the line not moved),
with each round's fix made in the definition, never in a threshold —
docs/FPR-TOMBSTONE.md, methodology booklet 14.
A Rust /// block is one paragraph to docdup
tree-sitter-rust's doc-comment node ends at column 0 of the next row, so the
merge rule never saw consecutive /// lines as adjacent and every line was its
own segment ending a row late. Adjacency and end_line now read the node's
last content row (DOCDUP_REV 4 → 5, the cache is wiped once). Measured on the
same trees with both binaries: ripgrep 251 → 568 segments and 7 → 50 pairs,
this repository 845 → 1462 segments; cobra, zod and requests unchanged. The five
frozen docdup instruments were regenerated by the EVAL-SET.md revival
protocol; the oracle for ripgrep grew from 8 to 91 pairs, all of them
comment_block.
Smaller changes
- The codex review of the tombstone class (20 findings, 19 in code): unread
and bounded pairs are counted and stand the leg down, the session union
forgets a name written back, the prose sentence is cut on the whole paragraph
and claimed by the added lines, version strings are exactly three parts,
termsmatch whole normalized words,consumerefuses a reply whose counts
disagree with its sites. - The Stop leg's cost with judgment in the core, measured A/B on one tree in
two worktrees (docs/PERF-BUDGET.md): parity on a clean tree; +0.46 s on a
16-file dirty tree for the measurement itself; thetombstone/1round trip
is within noise (≤ 0.12 s). CHANGELOG.mdreached its own 750-line hard line again; v1.3.1 and v1.3.2
moved byte for byte intodocs/CHANGELOG-ARCHIVE.md.- Bench: v1.6.0 changes
cli/srcandcore/app, so it earns its own seven
rows — measured after this tag in a quiet window and committed separately;
until then the bench pages say so.
Unsigned, as before
Binaries are unsigned; the SHA256SUMS asset and the plugin manifest's pins are
the trust anchor (ADR-007). ce update on a 1.5.x install reads this tag and
the pins committed on it.