feat(bolt-slides): replace the slides starter with slides v2 BOU-2538 - #126
feat(bolt-slides): replace the slides starter with slides v2 BOU-2538#126geotrev wants to merge 2 commits into
Conversation
|
|
b44b0a3 to
0411df4
Compare
Review follow-ups (five commits on top of
|
Author decks in deck.json with a studio, present tab, presenter console, and Bolt DS chrome. BOU-2538 / BOU-2539.
6104652 to
f23c164
Compare
Give the skill a typed per-layout contract instead of restating keys, so chart and insight no longer share an explained `points` shape.
Stable squash (2026-08-24):
0411df4b77467c6381efe1f59f85d13a0c47bbd1. Pair with boltf1e9b32a9d(#7075), which pins this SHA.Problem
The bolt-slides starter was JSX the agent rewrote on disk. Sharing and presenting also minted WebContainer URLs, which fail as visitor links and leak the preview origin.
Solution
Replace
bolt-slideswith a Pitch-style studio: decks are Postgres rows. The editor talks todeck-api; the agent writesdeck/slidesrows directly. Owner Present is in-place. The published origin is the audience deck (notes stripped). Share mints presenter-console and editor links on that origin. Host identity and published origin are injected by Bolt — stackblitz/bolt#7075.Implementation Details
@/kept. Skeleton chrome uses a Bolt DS token snapshot (BOU-2539) without depending on@blitz/design-system./), audience present (published/, notes stripped; leftover/present?k=still works), presenter console (share or/present?presenter=1). Audience present has no presenter control.X-Deck-OwnermatchingDECK_OWNER_SECRET→ no token ispresentonce the secret is set (local Vite with the secret unset stays owner). Opt-in via.bolt/config.jsonpreviewOwnerSecret. Owner proof is not stored inlocalStorage.BroadcastChannelis same-origin).deck-apicurls). Comments/profiles removed.