Skip to content

Commit ad84d23

Browse files
committed
docs(objectql): point the sibling-seam prose at the recorded ruling (#14693)
Three passages in `engine-hook-provenance-sibling-seams.test.ts` still said the `readonlyWhen` sibling seam was "WITHHELD pending a maintainer ruling" and went "to the decision inbox, never resolved here". It was ruled — #14259, maintainer ruling B: that seam keeps value equality and the asymmetry is deliberate — and #14690 landed the corrected `isCallerSuppliedValue` docblock plus a pin on each face. A landed PR now routes readers straight into the sentence that contradicts the ruling. Comment-only: every assertion, test name and fixture is untouched. The prose is replaced with a pointer to where the argument now lives rather than a fourth copy of it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0112hMx9hjJ9BgB28X97DS68
1 parent 7a17f3b commit ad84d23

1 file changed

Lines changed: 13 additions & 12 deletions

File tree

packages/objectql/src/engine-hook-provenance-sibling-seams.test.ts

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
// way. So a `beforeInsert` hook that re-issues or normalises a record number
1919
// still loses its write to the one caller that submitted the same value.
2020
//
21-
// ⛔ THE SIBLING SEAM IS DELIBERATELY NOT HERE. #14259 named a second one —
22-
// `isCallerSuppliedValue`, behind the two `readonlyWhen` strips — and it is
23-
// WITHHELD pending a maintainer ruling, not forgotten. Measured on this branch:
24-
// threading the record into that predicate turns the existing #9107 pin
25-
// `LOCK 3b` red, because a hook spelled `ctx.input.data.x = ctx.input.data.x`
26-
// is a `set` on the recorded object, so the CALLER's forged value becomes
27-
// hook-owned and survives a TRUE `readonlyWhen` predicate (measured:
28-
// `closed_note` committed `'1999-01-01'` where the lock had stripped it to
29-
// `null`). That is the card's own fork clause — a caller value surviving a TRUE
30-
// predicate — and it goes to the decision inbox, never resolved here.
21+
// ⛔ THE SIBLING SEAM IS DELIBERATELY NOT HERE, AND IT HAS SINCE BEEN RULED.
22+
// #14259 named a second one — `isCallerSuppliedValue`, behind the two
23+
// `readonlyWhen` strips — and maintainer ruling B kept it on VALUE EQUALITY:
24+
// the divergence from this seam is deliberate, not a port nobody got to.
25+
// ⛔ The argument is NOT restated here. It lives on `isCallerSuppliedValue`'s
26+
// docblock (`validation/rule-validator.ts`), and each face carries a pin:
27+
// `MEASURED: a lone self-assigning hook leaves the CALLER value on the key`
28+
// (this suite, insert side; `engine-readonly-strip-caller-values.test.ts`,
29+
// update side) against `LOCK 3b` in
30+
// `engine-readonly-when-derived-writes.test.ts`.
3131
//
3232
// ⛔ WHAT THIS SUITE IS NOT, and is written to fail if anyone reads it that
3333
// way: it is NOT a relaxation of #5503. The DISCRIMINATOR PAIRS are the
@@ -348,8 +348,9 @@ describe('seam 2 — the insert-side runtime-owned strip reads PROVENANCE (#1425
348348
// pinned rather than argued: it is the exact shape that forked the
349349
// `readonlyWhen` seam out of this PR, whose #9107 pin `LOCK 3b` pins the
350350
// OPPOSITE verdict for a STATE lock ("a hook that writes the caller value
351-
// BACK is the caller value, and goes"). #14259's fork clause sends that one
352-
// to the decision inbox; nothing here resolves it.
351+
// BACK is the caller value, and goes"). That fork was RULED (#14259,
352+
// maintainer ruling B): the two verdicts are one recorded asymmetry, and
353+
// `isCallerSuppliedValue`'s docblock carries the argument.
353354
//
354355
// Why the same mechanism ships on THIS seam: `stripRuntimeOwnedFields`
355356
// guards a runtime-owned COLUMN (#5503) — the same class of protection

0 commit comments

Comments
 (0)