From 2a60259c793b660ff543c79c1c52b21336077f49 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 27 Oct 2026 08:40:05 +0000 Subject: [PATCH] =?UTF-8?q?test(spec):=20tombstoned-row-status=20floor=20a?= =?UTF-8?q?t=20two=20thirds=20of=20the=20measured=20population=20(48=20?= =?UTF-8?q?=E2=86=92=2032)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Retiring one tombstoned key no longer reds the liveness non-vacuity check; emptying the population still does. Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01WGufzf9arQbsfoQ2s2hFtP --- .../spec/scripts/liveness/tombstoned-row-status.test.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/spec/scripts/liveness/tombstoned-row-status.test.ts b/packages/spec/scripts/liveness/tombstoned-row-status.test.ts index 75e63f07170..d55229aea7e 100644 --- a/packages/spec/scripts/liveness/tombstoned-row-status.test.ts +++ b/packages/spec/scripts/liveness/tombstoned-row-status.test.ts @@ -86,8 +86,11 @@ const SPEC_ONLY_SCHEMAS: Record = { /** The prefix `retiredKey()` writes onto a tombstone's description. */ const TOMBSTONE_MARKER = '[REMOVED]'; -/** The population measured on the commit that pinned this — the non-vacuity floor. */ -const TOMBSTONE_FLOOR = 40; +/** + * The non-vacuity floor: about two thirds of the measured population, so retiring + * a tombstoned key (ADR-0087's normal end of a window) does not red it (#26541). + */ +const TOMBSTONE_FLOOR = 32; // measured 48 on 2026-10-27 (pinned at 40); floor = floor(48 × 2/3) function defOf(s: any): any { return s && (s._zod?.def ?? s._def); @@ -172,7 +175,7 @@ describe('shipped ledgers — a tombstoned key is `dead`', () => { const offenders = tombstones.filter((t) => t.status !== 'dead').map((t) => `${t.coord} → status=${t.status}`); expect(offenders).toEqual([]); // Non-vacuity: a walker that stopped resolving shapes would satisfy the - // line above by asking nothing at all. 40 was the measured population. + // line above by asking nothing at all. The floor sits ~1/3 under the census. expect(tombstones.length).toBeGreaterThanOrEqual(TOMBSTONE_FLOOR); });