Conversation
🦋 Changeset detectedLatest commit: 4be36d0 The changes in this PR will be included in the next version bump. This PR includes changesets to release 11 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
2d222e7 to
da012d1
Compare
Coverage Report for CI Build 35285034403Coverage remained the same at 71.304%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
Merging this PR will degrade performance by 5.7%
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance ChangesTip Investigate this regression by commenting Comparing Footnotes
|
… write, in a WeakMap) CodSpeed on #3526: -7…-19% on the store write floor. ensurePB runs on every trap write of a draft, and the stamp sat before its pb === null branch — a WeakMap.set per WRITE (batched: 1000 sets per commit), and a WeakMap.set on a fresh target pays the identity hash plus the ephemeron. The stamp now sits inside the branch, once per draft open beside queueFold, in a Map whose entry leaves at the drain. Co-authored-by: Claude via Cursor <noreply@cursor.com>
… write, in a WeakMap) CodSpeed on #3526: -7…-19% on the store write floor. ensurePB runs on every trap write of a draft, and the stamp sat before its pb === null branch — a WeakMap.set per WRITE (batched: 1000 sets per commit), and a WeakMap.set on a fresh target pays the identity hash plus the ephemeron. The stamp now sits inside the branch, once per draft open beside queueFold, in a Map whose entry leaves at the drain. Co-authored-by: Claude via Cursor <noreply@cursor.com>
b32fc8c to
e2ea639
Compare
…ble to owner-context readers until the carrying flush (S6; store follows signal) Ruled 2026-09-17: store rules follow signal rules. Core serve() serves an unflushed node's committed value and re-runs the reader in the carrying flush; the store's backing selection served the pending backing to every owner-context reader at once. A derivation created inside a foreign action that adopted a mainline setStore published the unflushed 1; the signal published 0. Now: ensurePB stamps the target with clock when the draft opens outside a flush from outside any owner (A28 (4) — a write inside a computation stays visible to its block, core's notePromotedWrite twin); pendingBackingVisible's owner-context branch serves committed for a backing stamped this tick and marks the reader late linker; getNode gains the third born kind — a node born in the unflushed window stages the pending backing's value — with stageHeldKey generalized to one stageKey(node, nv, txn | null) (a hold's staging in its transaction's list; the unflushed window's through queuePendingNode, adopted-unflushed under a transaction body). deep() / snapshot() keep their speculative-peek contract; nodeValue already has the arm through serve(). Pinned: posture-store-parity S6 flips from a recorded divergence to a parity pin (three shapes, with the commit follow-through). Matrix: exactly the 12 S6 cells move, to the signal's values; all six paired states 0 diffs. +283 B minified store (down from +402 at the old twin); one brotli cap ratcheted. Co-authored-by: Claude via Cursor <noreply@cursor.com>
… write, in a WeakMap) CodSpeed on #3526: -7…-19% on the store write floor. ensurePB runs on every trap write of a draft, and the stamp sat before its pb === null branch — a WeakMap.set per WRITE (batched: 1000 sets per commit), and a WeakMap.set on a fresh target pays the identity hash plus the ephemeron. The stamp now sits inside the branch, once per draft open beside queueFold, in a Map whose entry leaves at the drain. Co-authored-by: Claude via Cursor <noreply@cursor.com>
CodSpeed on #3526 after the per-draft Map: still -7…-9% on the store write floor (style/class store objects mutated in place x500, fresh stores) — a Map with 500–2000 set/delete cycles per commit churns its backing store. The stamp is now `target.uf`, a plain field initialized in the target literal (TargetShape / createTarget). The array shape rule in target.ts was re-measured on Node 26: array and object targets stay fast-properties at 25–28 named+symbol props; CodSpeed's array benches guard it. Local interleaved A/B against next on the write-floor and commit-boundary benches is within noise (-3.5…+3.8%, base spread up to 10%). Co-authored-by: Claude via Cursor <noreply@cursor.com>
e2ea639 to
4be36d0
Compare
|
Stacked on #3525 (← #3523). The S6 fix, alone, so its perf and bytes are judged apart from the consolidation.
The bug (S6)
Core
serve()serves an unflushed node's committed value and re-runs the reader in the carrying flush (A28). The store's backing selection served the pending backing to every owner-context reader at once. A derivation created inside a foreign action that adopted a mainlinesetStorepublished the unflushed1; the signal published0. Ruled 2026-09-17: store rules follow signal rules.The fix
ensurePBstamps the target withclockwhen the draft opens outside a flush from outside any owner — A28 (4)'s promoted-write exemption (a projection derive's writes stay visible to its block).pendingBackingVisible's owner-context branch serves committed for a backing stamped this tick and marks the reader late linker.getNodegains a third born kind: a node born in the unflushed window stages the pending backing's value, so the carrying flush commits it through the node and the late-linked reader finds it there.stageHeldKeygeneralizes to onestageKey(node, nv, txn | null).deep()/snapshot()keep their speculative-peek contract;nodeValuealready has the arm throughserve().Gate
[0] → [0, 1]at the commit)Net with the consolidation PR: −30 B minified store, S6 closed.
Made with Cursor