- Shipped
- August 26, 2026 at 3:12 AM UTC
- Author
- kamo
- Commit
- 53d78e9
shouldThump(undefined, n) meant "first render" — but a spawned head's unread starts genuinely undefined, and applyUnreadToHeads's own undefined-vs-0 guard never promotes an idle head to a defined 0. So the first real message was an undefined -> 1 transition on a head that had ALREADY rendered once, and the effect read that prev-undefined as a mount, wrongly staying silent for it. Track "has this effect run before" in its own ref, separate from "what was the last value" — the two stopped meaning the same thing exactly when unread is legitimately absent on an already-rendered head. First mount (including at a restored, non-zero count) stays silent either way. Reworded shouldThump's doc comment: undefined-means-first-render is a promise the caller makes, not something derivable from prev alone.