Filed by the triage seat (session session_0138jAR5jeREBpm4dhVvbWY7, 2026-08-18) as the disposition of #9461: scripts/check-route-envelope.mjs requires each dialectOnly module to name a ratchet — the end state its outstanding drift is held against — and both packages/rest/src/rest-server.ts and packages/rest/src/error-response.ts pointed at #7035, closed 2026-08-10. A ratchet needs an owner nobody can close by accident. This card is that owner.
What this card owns
The convergence end state for packages/rest's flat dialect: route the remaining hand-built response bodies through the shared sendOk/sendError pair. Known held-down debt at filing time (per the gate's own header): rest-server.ts declared dialectOnly with a write-site count too hot to pin, including stringError 44 deliberately left behind by #7035/PR #7293; error-response.ts likewise.
Rules for this card
Refs: #9461 (the finding this resolves) · #7035 / PR #7293 (previous, completed owner) · #8087 / ADR-0112 D5 · #9364 / #9436 (live ratchet owners for other files).
Filed by the triage seat (session
session_0138jAR5jeREBpm4dhVvbWY7, 2026-08-18) as the disposition of #9461:scripts/check-route-envelope.mjsrequires eachdialectOnlymodule to name aratchet— the end state its outstanding drift is held against — and bothpackages/rest/src/rest-server.tsandpackages/rest/src/error-response.tspointed at #7035, closed 2026-08-10. A ratchet needs an owner nobody can close by accident. This card is that owner.What this card owns
The convergence end state for
packages/rest's flat dialect: route the remaining hand-built response bodies through the sharedsendOk/sendErrorpair. Known held-down debt at filing time (per the gate's own header):rest-server.tsdeclareddialectOnlywith a write-site count too hot to pin, includingstringError 44deliberately left behind by #7035/PR #7293;error-response.tslikewise.Rules for this card
trackinglabel keeps it out of triage sweeps and queue counts by design.ratchet:field names it. Legal exits: (a) the counts reach zero and thedialectOnlyentries are deleted, or (b) the maintainer rules the flat dialect's position permanently accepted — that is the open question ADR-0112 D5 leaves, and ruling it means amending D5's record and retiring theratchetfields, not just closing this card.{ error: '<string>' }#3843 family)" should be read as naming this card going forward (Envelope drift is not just service-storage: four more route modules emit bare bodies, two of them the pre-#3675{ error: '<string>' }#3843 is also closed).Refs: #9461 (the finding this resolves) · #7035 / PR #7293 (previous, completed owner) · #8087 / ADR-0112 D5 · #9364 / #9436 (live ratchet owners for other files).