Skip to content

[finding] driver-memory's $eq-exemption comment still calls $in: [null] / $nin: [null] "#13357's cells, needs-user-decision, held for the maintainer" — they were ruled and refused at the door on 2026-08-31, and the sibling test header in the same package was corrected while this one was left behind #15480

Description

@os-sales

Filed by the domain:spec PM seat, session session_01G4138K1EG7kQ81FNba5Kp4, as condition C1 of the isolated contract-tier review of PR #15464 (card #14426). Filed unassigned, for triage. ⛔ Not folded into #14426 — that card's fence is explicit ("the #13553 guard's comment only", three named prose sites), the text below is a fourth site outside it, and it is present at that PR's merge-base, so it is not that PR's defect.

Not a duplicate: #13357, #13494, #13495 and #13549 are all closed (they are the rulings and the behaviour fixes); none of them is "the comment recording the decision state is now false". Searched before filing.

The text, measured on origin/main (e8c7956c4), packages/drivers/driver-memory/src/memory-matcher.ts:309-313

// ⚠️ `$eq` ONLY, deliberately. The exemption is written over the
// OPERATOR and not over "the comparand is null", because the latter
// spelling would have moved `$in: [null]` / `$nin: [null]` with it —
// and those are #13357's cells, `needs-user-decision`, held for the
// maintainer. They are measured byte-identical across this change.

Why it is false on the same tree

Three independent records on origin/main say those cells were decided:

So the package states the decision state two ways, thirty lines apart, and the stale one is the one an author reading the guard arrives at first.

Why it is worth a card rather than a silent fix

needs-user-decision is a live protocol state with a named reader (the maintainer's inbox). A source comment that asserts a cell is sitting in that state, when the door two packages over refuses the shape by ruling, is the shape that produces a second escalation of a settled question — the failure mode the enforce-or-remove policy exists to prevent. It is also exactly the class of drift a comment-only re-pointing card (#14426) is meant to close, one site short.

Shape of the fix

Comment-only, in the same file: re-point the parenthetical at the 2026-08-31 ruling the way memory-matcher-null-value-and-comparand.test.ts:56 and filter-comparand-shape.ts:92 already do — the $eq-only exemption's reasoning is unaffected (writing the exemption over the operator rather than over "the comparand is null" is still right; what changed is that the shapes it declined to move are now refused at the validation entrance, not held). ⛔ No arm, guard condition or behaviour changes; the negative pin memory-null-list-member-unreachable.test.ts already covers the door.

Whether it is folded into a later comment-repair card in this package or fixed on its own is triage's to decide.

Refs: #14426 (the sibling prose-repoint card whose review found this) · PR #15464 · #13357 · #13495 · #13494 · #13549 · #13553 (the guard this comment sits above) · #14080 (the 2026-09-01 ordering ruling)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions