diff --git a/apps/web/README.md b/apps/web/README.md
index 56ac012..e8e5f47 100644
--- a/apps/web/README.md
+++ b/apps/web/README.md
@@ -27,8 +27,10 @@ live iframe mounted so application state is preserved during ordinary use.
Fresh app-builder projects keep the animated Cheatcode mark visible while the internal starter
scaffold boots and the model generates the requested app. The persisted `app-preview-status`
stream part reveals the iframe only when generated content is ready, and an iframe-load guard keeps
-the same mark in place until the final document has loaded. Existing project edits remain visible
-and continue hot-reloading normally.
+the same mark in place until the final document has loaded. While that mark is visible, the hidden
+session exchange remains mounted so the one-minute URL handoff becomes a renewable ten-minute
+host cookie before long-running builds finish. Existing project edits remain visible and continue
+hot-reloading normally.
## Public exports
diff --git a/apps/web/src/components/preview/preview-side-panel.tsx b/apps/web/src/components/preview/preview-side-panel.tsx
index 92c0d11..d91832b 100644
--- a/apps/web/src/components/preview/preview-side-panel.tsx
+++ b/apps/web/src/components/preview/preview-side-panel.tsx
@@ -402,15 +402,18 @@ function AppTabContent({
}) {
if (previewPhase === "booting" || isGeneratedPreviewPending) {
return (
-
- }
- />
+ <>
+
+
+ }
+ />
+ >
);
}
if (previewPhase === "error") {