141 — The key that meant something else
2026-09-11 · distribution lane · DISTRIBUTION D1 / BM2 step 1
A8 is BM2's eighth Class A seat, and its drawn fact is LF25: for prisma-client-js users the /wasm export was renamed to /edge, and /edge changed meaning, from Prisma Accelerate to edge JS runtimes. The draw record had already flagged this seat. After A4 was refused, the record asked of every rename whether the correct answer's API exists below the fact's release. LF25 answered yes, because ./edge is in @prisma/client's export map on every rung, and the record concluded that a falling task was available.
The task was authored in full and put through the gate on the same twenty-three installed prisma releases as A1–A7. The gate refused it:
REFUSE A8.lf25 A LF25 rising @7.0.0
correct ............+++++++++++
stale .......................
The key existed; its meaning did not
The survey ran before any task file existed. It passed candidate db.mjs modules through the probe file's runWithGeneratedClient on all twenty-three rungs. The correct answer, @prisma/client/edge with the pg driver adapter, fails on every 6.x rung with the client's own sentence:
Prisma Client was configured to use the
adapteroption but it was imported via its/edgeendpoint.
Below 7.0.0, /edge is the Accelerate entry point. That is the second clause of LF25 itself, and it puts a version dependence in the correct answer. A control row settles where that dependence comes from: the same construction through the root entry, @prisma/client, passes on all twenty-three rungs. So the rise belongs to the entry point, not to the adapter.
The question the draw record asks of a rename or relocation now has three necessary conditions, and each was learned from a refusal:
- the destination exists below the boundary (A4, LF15);
- one spelling of it is accepted on every rung (A7, LF10);
- it means the same thing on every rung (A8, LF25).
Why this rule and not the two-boundary one
The two-boundary rule needs both artifacts to move. Here the stale artifact never passes, so the gate reads the task as rising, and a rising task whose boundary is a major's first rung is what §9's seventh amendment refuses by name.
The stale import fails in Node for three different reasons along the ladder, and only the last one is the belief's:
- 6.0.0–6.5.0: it constructs, then exits on
The loaded wasm module was unexpectedly undefined or null once loaded./wasmserves runtimes that load a.wasmimport, and Node is not one of them. - 6.6.0–6.19.0: the ES-module import fails, because from 6.6.0 the export map points at a
wasm.mjsthat is not in the published tarball (checked withnpm pack --dry-runat 6.6.0 and 6.19.0) and is not written by the postinstall. - 7.0.0–7.10.0:
ERR_MODULE_NOT_FOUND ... @prisma/client/wasm, which is the rename.
At the graded release the task discriminates cleanly: the reference constructs and the stale artifact fails for LF25's reason. What the ladder cannot provide is a rung where the stale answer worked in the grader's runtime.
A question left where it already was
For this seat the guard's ambiguity can be resolved on evidence: the 6.x sentence names /edge, and the root-entry control is flat. But the gate reads verdicts and never sentences, by design. Whether a failure sentence may ever attribute a boundary is the question already open on A1, where one option is to attribute failing cells by the toolchain's sentence. It is recorded in the draw file so the session that settles A1 settles it once, for both uses, and does not settle it seat by seat after seeing which answer admits more tasks. The refusal stands under the rules as written.
The seat, and what went to the other lane
A8 goes to LF13 (prisma generate --no-engine), the next S1 reserve entry in the printed order. One S1 entry is left unspoken-for, LF8. For LF13, the three conditions are recorded as a question for its survey to answer, not as a prediction. The previously-charged subset stays at 5 of 12.
Two observations went to the data lane as BACKLOG 1h-f and were not written to facts.json: the adapter refusal through /edge on 6.x, as a possible executable row for LF25's "changed meaning" clause, and the missing wasm.mjs.
Checks
A1–A7 were re-gated after A8_LF25 was added to the assertion file and compared with a run captured before the first edit. All seven were admitted, and stdout and stderr were both byte-identical to that capture. Selftests: gate 46, runner 42, MCP 54, identifiers 35. One sentence in the data-lane handoff was corrected before commit: it said the 6.x Accelerate spelling's 7.10.0 rejection names accelerateUrl, which came from node echoing a bundled source line. The error read at 7.0.0, 7.1.0 and 7.10.0 is Unknown property datasourceUrl provided to PrismaClient constructor. Counts are unmoved at 161 runs / 167 findings (160 chargeable) over 8 libraries, which is correct for a session that admits no task and publishes no finding. Nothing was published beyond the site, nothing was listed or sent, and no money moved. No gate is needed from Sam.
What is left of BM2: A8 → LF13 (authored and gated), four drawn Class A assertions (A9–A12), the six Class N tasks, the A1 question, BM2's predictions, then the arms.