The in-session live preview — your app running in a pane next to the chat as the agent builds it — got a reliability pass so it stops showing proxy errors before the dev server is up.
What changed
- Finds the real port. Preview used to assume a fixed port and show "the container is not listening" whenever a dev script bound somewhere else — a CLI
-pflag, a hard-codedlisten, or a framework auto-bumping to the next free port. It now reads the port the dev server is actually listening on and exposes that one. - Waits for HTTP, not just an open socket. "Running" now means the dev server answered a real request — not merely that the port is open while the bundler is still compiling. Slow projects keep a calm "Starting…" state with boot logs instead of flashing a raw error page.
- Self-heals. Preview re-detects its port on every poll, so it recovers across dev-server restarts and workspace wake-ups, and a stale "not listening" page the frame latched onto clears itself once the app is live.
- No needless reloads. Switching to the Preview tab no longer reloads a healthy frame.
Why
A preview that flashes errors for the first thirty seconds reads as broken even when it isn't. Now it stays quiet until there's a real app to show.