React Daily: React Refresh Gets a Timing Overhaul
Two pull requests from Oskar Eichler tighten up React Refresh's handling of stale roots and renderer discovery, while a separate DOM fix addresses IntersectionObserver cleanup timing for fragments. Together they point to a broader focus on getting async cleanup and timing edge cases right.
Duration: PT2M23S
Episode overview
This episode is a short developer briefing from React Daily.
It explains recent repository work in plain language.
- Show: React Daily
- Published: 2026-08-30T06:00:32Z
- Audio duration: PT2M23S
Transcript excerpt
This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.
It's August 30th, 2026. This is React Daily.
The signal today is timing. Three separate pull requests are all about making sure React does the right thing when state changes happen out of order or asynchronously.
Start with React Refresh. Oskar Eichler opened two related fixes. PR 37411 stops the refresh system from rescheduling roots that failed, then recovered, after the refresh snapshot was already taken — and it also stops refreshing roots that were deliberately unmounted mid-pass. That's a classic stale-snapshot bug:…
The same timing theme shows up in Jack Pope's DOM work, PR 37408. Fragment IntersectionObserver targets used to stay observed after a child was removed, just so the exit record could still fire — but that left detached nodes lingering in memory. The fix now delays IntersectionObserver unobserve until after paint, so…
One more worth a mention: Noxtimo's ESLint fix, PR 37407, corrects exhaustive-deps checks for nested TypeScript type queries, so compile-time-only property accesses like a deep field path won't trigger bogus dependency warnings.
What to remember: if you're touching Refresh internals or observer-based DOM effects, assume snapshots and cleanup can race…
Nearby episodes from React Daily
- Test Infrastructure Overhaul and Two Sharp Bug Fixes
- Fixing Timing Bugs in Flight and Act
- Clearing the Path to Jest 30
- CI Speedups and Defensive Coding
- Compiler Memory Cuts and a Rust Bail-Out That Bounced Back
- Weekly Recap - Server Rendering Performance and Memory Hardening
- Fixing the Pipes
- Fixing Server Render Memory Leaks