From bada58f3c2a050d4a51a685da98c2ecf88ce451c Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 15:38:26 +0000 Subject: [PATCH] test(spec): the transactions tombstone pin discriminates its own subject MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `packages/spec/src/data/driver.test.ts` pinned the `transactions` retired-key prescription with a regex requiring only that `METHOD PRESENCE` and `beginTransaction` appear somewhere in the thrown message. #18890 rewrote that prescription's opening from "gated on METHOD PRESENCE" to "gated on the DRIVER'S DECLARATION, no longer on METHOD PRESENCE alone" — and the old regex matches BOTH. Reverting the prescription to the now-false sentence kept the test green, so the pin could not fail on the one shape it exists to catch. The title said "points at method presence", which is the old world too. Anchor on the two things #18890 made load-bearing instead: the negation (`no longer on METHOD PRESENCE`) and the predicate that replaced presence (`driverSupportsTransactions`). `beginTransaction` and `Delete the key` stay, so nothing the old pin covered is dropped. Deliberately NOT a ban on the phrase `METHOD PRESENCE`: `schemaSync`'s own "Schema sync is gated on METHOD PRESENCE" sentence in driver.zod.ts is true of the runtime today and is untouched. Test-only. No runtime file, no published surface. Claude-Session: https://claude.ai/code/session_01JbZnqu8bt6YqfJsr9vaFb3 Co-authored-by: Claude --- packages/spec/src/data/driver.test.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/spec/src/data/driver.test.ts b/packages/spec/src/data/driver.test.ts index 15fef7191e..5135220bd0 100644 --- a/packages/spec/src/data/driver.test.ts +++ b/packages/spec/src/data/driver.test.ts @@ -121,9 +121,16 @@ describe('[#4634] the 31 inert capability bits are tombstoned, not stripped', () ); }); - it('the transactions prescription points at method presence, and says the live bit is not it restored', () => { + it('the transactions prescription points at the DECLARATION gate, not method presence alone, and says the live bit is not it restored', () => { + // [#18996] Anchored on what #18890 made load-bearing: the NEGATION and the + // predicate that replaced method presence. An anchor on `METHOD PRESENCE` + // alone matched this prescription's PREVIOUS, now-false opening ('gated on + // METHOD PRESENCE — `driver.beginTransaction`') exactly as happily as the + // true one, so it could not fail on the one shape it exists to catch. ⛔ Not + // a ban on the phrase — `schemaSync`'s own 'gated on METHOD PRESENCE' + // sentence is true of the runtime and stays. expect(() => DriverCapabilitiesSchema.parse({ transactions: true })).toThrow( - /DriverCapabilities\.transactions.*removed.*METHOD PRESENCE.*beginTransaction.*Delete the key/s, + /DriverCapabilities\.transactions.*removed.*no longer on METHOD PRESENCE.*driverSupportsTransactions.*beginTransaction.*Delete the key/s, ); // [#18063] The trap this sentence exists to close: a reader who sees a live // `transactionsUnsupported` and concludes the retired key came back. It did