fix(state): don't drop effects under render-phase convergence (v3.5.4)#51
Merged
Merged
Conversation
Regression in v3.5.3: the render-phase convergence loop cleared the fiber's effect list before each re-run. Combined with the deps-equality check (a stable-deps effect does not re-register when deps are unchanged), the effect ended up registered in no iteration and never ran. The loop no longer clears parseFiber.effects. Effects accumulate across convergence iterations (a stable effect appears once; a deps-changing effect once per iteration) and are de-duplicated afterwards by cleanup-index via dedupRenderPhaseEffects, keeping the last (final render's) effect per slot in declaration order. Each effect now runs exactly once with the converged state for both stable and changing deps; multiple effects run once each in order. Covered by TestRenderPhaseEffectRunsOnceStableDeps / ...ChangingDeps / TestRenderPhaseMultipleEffectsEachOnce. Full suite + native/wasm pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Regression fix for v3.5.3: render-phase convergence dropped a stable-deps effect (cleared per-iteration, never re-registered). Now effects accumulate and dedup by cleanup-index to the final render's effect, running once with the converged state. Full suite + native/wasm pass. Ships as v3.5.4.
🤖 Generated with Claude Code