Skip to content

v3.16.1

Choose a tag to compare

@mrbro-bot mrbro-bot released this 05 Sep 08:39
· 213 commits to main since this release
9bceff3

What's new

A small patch release: one runtime dependency bump and one expansion of the solutions corpus around deletion and preservation gates.

Bug Fixes

web-tree-sitter moves from 0.26.12 to 0.27.0. This is a production dependency rather than a dev tool — it is the WASM parser runtime behind the receipt classifier in src/lib/receipt-classifier.ts, and it stays version-pinned and Renovate-grouped with tree-sitter-bash because the runtime and the grammar have to move together. (#877)

Documentation

The deletion-gate learning doc (deletion-gates-must-observe-every-field-the-deleted-code-wrote-2026-08-16.md) gains the sign-flipped case found while landing #903: a preservation gate — a corpus meant to prove that a rewrite still matches the code it replaced — is only as complete as the deleted code's branches, not just the fields that code wrote.

The concrete failure is the useful part. The variant-clearing heuristic that the doc already named as a live regression target was replaced by the routing resolver in #903. Its twelve-entry compatibility corpus had been seeded from existing fixtures, and none of those fixtures set a category variant and then overrode model at the agent level. The rewrite consequently dropped two of the heuristic's three branches and still passed byte-for-byte. Two rows built directly from the heuristic's own conditions — corpus entries 013 and 014, with expected output captured from pre-change main — were what actually caught it.

The update adds a Guidance subsection covering the three-branch heuristic, why fixture-seeded corpora systematically miss deleted branches, and a three-step procedure for enumerating those branches; an Examples table mapping input to pre-change output to the rewrite's output as it behaved before those rows existed; and refreshed frontmatter (last_updated, two new tags, two new applies_when entries, all within schema limits). It landed as an update to the existing doc rather than a new one — overlap scored High on all five dimensions, sharing the same deleted code, the same root cause (a gate derived from something other than the deleted code itself), the same enumerate-from-git show remedy, and the same files, with the prevention rule generalised from fields to branches. (#905)

Compare

v3.16.0...v3.16.1