` (per-artifact stable URL), entry pick, `` + snapshot + bridge injection |
+| `src/server/preview/theme-snapshot.ts` | Cached `src/ui/app.css` token snapshot for standalone side-panel URLs |
| `src/server/preview/path-guard.ts` | Path-traversal defence (realpath-based) |
| `src/server/preview/mime.ts` | MIME-type lookup |
| `src/server/preview/events.ts` | Per-session `preview-changed` channel carrying mount identity payloads |
@@ -729,7 +810,10 @@ back the preview tree sees the same bytes the gateway just wrote.
| `src/server/auth/browser-cookie.ts` | Central browser bootstrap/renewal eligibility classifier |
| `src/server/server.ts` | `POST/GET /api/preview/mount`, SSE route, broadcast on success |
| `src/server/agent/docker-args.ts` | Sandbox bind mounts (`/bobbit/preview`, `/bobbit/preview-root`) |
-| `src/shared/preview-bridge-scripts.ts` | Theme/swipe bridge scripts injected into HTML responses |
+| `src/shared/preview-bridge-scripts.ts` | Canonical live theme bridge plus the side-panel-only swipe bridge |
+| `src/ui/tools/renderers/prepare-inline-html.ts` | Parser-backed, early theme-bridge preparation for inline `srcdoc` HTML |
+| `src/ui/tools/renderers/HtmlRenderer.ts` | Completed and streaming inline iframe lifecycle; original-source disclosure and themed chrome |
+| `src/ui/tools/renderers/WriteRenderer.ts`, `EditRenderer.ts` | `.html` / `.htm` write and successful-edit delegation into `HtmlRenderer` |
| `defaults/tools/html/extension.ts` | `preview_open` tool — POSTs to `/api/preview/mount`, stamps v3 marker with optional `contentHash` |
| `defaults/tools/html/snapshot.ts` | Marker constants, `buildPreviewSnapshotV3Block`, `parseSnapshot`, 250-byte v3 cap |
| `src/server/preview/artifacts.ts` | Immutable artifact store — capture, restore, hash-based dedupe, orphan sweep |
diff --git a/src/shared/preview-bridge-scripts.ts b/src/shared/preview-bridge-scripts.ts
index 938b9ddf1..35f267a76 100644
--- a/src/shared/preview-bridge-scripts.ts
+++ b/src/shared/preview-bridge-scripts.ts
@@ -21,57 +21,75 @@ export const PREVIEW_THEME_BRIDGE = `
+
+PACKAGED_INLINE_THEME_READY
+