Conversation
🦋 Changeset detectedLatest commit: fb08fe4 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 |
…uard (#3140) Companion to #3143 (stamps cleared when pending values commit): a dead _transition reference can still reach initTransition from outside the commit path — merged _done forwarding chains, async settles racing completion — and setSignal re-opens a node's stamped transaction before the value-equal bail, so re-activating the corpse spun the drain loop (dev threw the loop guard, production hung the tab). initTransition now refuses a transaction whose chased _done chain ends in true, as a bare return: redirecting to a fresh batch would re-arm the loop with a new identity each pass (measured by the reporter). The dev loop guard now reports what kept the loop alive — scheduled work vs an active transition, done-state, queue counts, last staged node. The corpse signature reads 'done=true, pending=0'. Dev-only, tree-shaken from prod. White-box pins for both layers; one size budget ratcheted 26.1 -> 26.15 KB (~25 B across this and #3141). Co-authored-by: Cursor <cursoragent@cursor.com>
ryansolid
force-pushed
the
fix/dead-transition-stamps
branch
from
August 31, 2026 07:56
5971afb to
fb08fe4
Compare
ryansolid
force-pushed
the
fix/ambient-transaction-capture
branch
from
August 31, 2026 07:56
7b61904 to
0d3e2d1
Compare
Member
Author
|
Landed directly on next as a cherry-pick (GitHub closed this PR instead of retargeting when its stacked base branch was deleted with #3145's merge). Content unchanged; signals suite green (1437 passed). |
3 tasks
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.
Summary
Companion to #3143 (merged — @snowfluke's clear of
_transitionstamps at commit), completing #3140. Stacked on #3145._transitionreference can still reachinitTransitionfrom outside the commit path — merged_doneforwarding chains, async settles racing completion — andsetSignalre-opens a node's stamped transaction before the value-equal bail, so re-activating the corpse spins the drain loop (dev threw the flush loop guard; production hung the tab).initTransitionnow refuses a transaction whose chased_donechain ends intrue, as a bare return — the reporter measured that redirecting to a fresh batch re-arms the loop with a new identity each pass.done=true, pending=0. Dev-only, tree-shaken from prod.activeTransitionnull (fails without the belt when a dead stamp survives by any path).Test plan