refactor(signals): the store's backing visibility on the shared predicates — one holdVisible (move 3b, deletion half) - #3525
Merged
Conversation
…cates — one holdVisible for both hold kinds (move 3b, the deletion half) readSource (adoption hold) and pendingBackingVisible (fold) each restated Rule 1's hold arms for a CONTAINER — committed or staged — with their own helpers: heldFromReader, foreignHold, enterHeldBacking, staleReplay, inOwnerContext, inForbiddenScope. One holdVisible(txn, c) now, on core's ownsHold / recordStaleReplay / enterStagedRead: the pass owns the hold (or there is none) → staged; a foreign hold → a stale pass keeps committed and is recorded for replay, a deriving pass takes staged and enters (A29). Both callers serve context-free and children-forbidden readers the committed container themselves (A32), with the store-only contracts kept as written: the speculative peek, the projection's authoritative-elect backing, HELD truth on an optimistic family (heldTruthMasked), drafts and write-override. This is the twin serve() could not absorb: a container has no node to select on, so the arms stay at the store — once, on the shared predicates, instead of six times. Zero semantic change: the 851-cell posture matrix and both oracles are byte-identical; suite green. Store −313 B minified / −87 B brotli (the +createStore scenario −48 B, hydrating + stores −112 B). The size ceiling with the whole owner-context arm removed was −738 B; the remainder is the container choice itself. Co-authored-by: Claude via Cursor <noreply@cursor.com>
🦋 Changeset detectedLatest commit: 9db33cf 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #3523. Zero semantic change; −313 B minified store. Kept separate from the S6 fix (next PR) so CodSpeed judges each alone.
What
readSource(adoption hold) andpendingBackingVisible(fold) each restated Rule 1's hold arms for a container — committed or staged — with six store-local helpers:heldFromReader,foreignHold,enterHeldBacking,staleReplay,inOwnerContext,inForbiddenScope. OneholdVisible(txn, c)now, on core'sownsHold/recordStaleReplay/enterStagedRead:Both callers serve context-free and children-forbidden readers the committed container themselves (A32). The store-only contracts are kept as written: the speculative peek (
deep()/snapshot()), the projection's authoritative-elect backing, HELD truth on an optimistic family, drafts, write-override.This is the twin
serve()(#3523) could not absorb: a container has no node to select on, so the arms stay at the store — once, on the shared predicates, instead of six times.Gate
origin/nextin this worktree+createStorescenario −48 B, hydrating + stores −112 B; no caps exceededThe size ceiling with the entire owner-context arm removed (semantics broken) was −738 B; the remainder is the container choice itself, which no node path can replace.
Made with Cursor