Three browser-side fixes for the same 3.5-to-4.0.1 regression.
- Source-preview targets no longer source-inject per variant_progress
checkpoint. Immediate injection raced framework (React/Vue) ownership and
triggered removeChild errors, which surfaced as static previews. HMR now
owns reconciliation while variants stream in; source injection runs only on
the final done (its 750ms settle + retry ladder stays for non-HMR harnesses
like Cursor). Progress counts still advance from the variant observer, and
the svelte-component progressive path is unchanged.
- The agent-phase progress bar advances monotonically. A behind/resumed
checkpoint re-broadcasts an earlier phase (the server regresses the snapshot
phase to generating), which moved the visible bar backward; a phase rank
table now blocks a known-lower phase from overwriting a known-higher one.
- The server-lost toast now frames the drop as resumable (session saved,
reopen or restart live-poll.mjs) instead of "Session ended", which had led
agents to rationalize bailing to direct edits.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>