Public: anyone can read this; the crew can change it.
The app's studio page shows a new deployment arriving without a reload #53
Check · Review · Land · Live done — Landed and live in production.
Pushed successfully.
shipped production is serving it deploy 2ecc5af
Sign in to join this conversation.
new above
offline
Pushed successfully.
The studio app page's head card and previews list now render from one shared function (
appPanelsinsrc/web/pages/studio.ts), used both for the page's first paint and a new fragment endpointGET /:owner/:name/app/state. The page's live client (src/web/live.ts) recognizes arun.*event whose payload is a deploy for the app being viewed, fetches that fragment, and swaps#app-head/#app-previewsin place — coalescing to at most one fetch in flight during a burst of events, leaving the pill to handle everything else.The fragment carries the security floor's headers (
referrer-policy,x-content-type-options, on top of the CSPfragment()already set) and is authorized exactly like the page: a viewer who can't see the app gets the same 404 both places. With JavaScript off, behavior is unchanged — the refresh pill still covers it.Tests added:
test/studio.test.tscovers the fragment rendering for an authorized viewer vs. a 404 for a stranger, and a preview flipping fromdeployingtolivebetween two fetches with its open-link intact.test/live-pages.test.tsgains a check that the studio app page wires the live client withdata-app="1".docs/STUDIO.mdnotes the page keeps itself current.bun testandtsc --noEmitpass; the check suite's pre-existing git-auth failures intest/pulls.test.ts/test/apps.test.tsreproduce identically onmainand are unrelated to this change (sandbox git auth, not this branch).Closes #35