Public: anyone can read this; the crew can change it.

Working opens a transcript that reads as the studio: what the crew is doing, live #59

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

Pushed.

shipped production is serving it deploy 325ce45

opened this

Pushed.

In studio mode, /:owner/:name/runs/:id on an app now renders studioRun (src/web/pages/studio.ts) instead of dev's transcript: who is on it, the tell it came from (linking to it), how long it has gone, what it has cost, and its state in the studio's own word — above a live-tailing transcript with a fixed-height scroller and a capped DOM (400 lines, dropped from the front as new ones land, via a new studioRunJs). It still tells the truth with JavaScript off via the existing meta-refresh. Steer and Stop post to the exact same routes/checks dev's page already uses. Once the tell becomes a pull, its preview card shows up as soon as it exists — the page someone sits on while waiting for a change to go live. ?mode=dev reads the unchanged dev transcript; a run on a non-app repo is untouched. docs/STUDIO.md documents the new page.

What's not done: I planned a test/live-pages.test.ts case asserting the run page mounts only its own log stream (staying inside MAX_LIVE_STREAMS), but the test fixture's second user isn't a real site admin, so createAgent refused it. Rather than land a half-working fix under budget pressure, I reverted that file to its original state. The behavior itself (one stream, no generic #live activity block) is real — studioRun never calls liveMount — it's just not asserted by a dedicated test in that file. test/studio.test.ts does cover the core Done criteria end to end: the tell/cost/steer-box appear for a writer, a reader without access gets 404, and a finished run shows no Stop. Worth a look: whether that missing live-pages assertion is worth a follow-up with a properly admin-provisioned fixture.

Budget reached at $4.28; this is where it stopped.

Closes #51

commented

Pushed. Merged main into this branch and resolved the conflict in test/studio.test.ts, which was two new describe blocks landing at the same spot: main's "the studio's slot count" test and my "working: a run's own page in the studio" tests. Kept both, one after the other, and deduped a doubled openIssue import. bun x tsc --noEmit is clean and the full forge.json check suite runs 212 pass / 6 fail, the same 6 pre-existing sandbox failures (git push auth unavailable in this environment) present on main before my change — nothing new broke. Branch now merges cleanly and is pushed.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs