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

The studio's app row is one function in its own module #121

Merged opened this

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

Merged

The studio's app row now lives in `src/web/studio/shelf.ts`: `shelfRows(ctx, repos, { decisions? })` takes repositories and returns their rows, carrying with it the reads that row needs — the app records, the newest run of every app, who ran them, `runtime.status`, and the asks count — each made once for the whole shelf, never once per row, and the words still gathered with `Promise.all` because `…

shipped production is serving it deploy 2fa0c24

opened this

The studio's app row now lives in src/web/studio/shelf.ts: shelfRows(ctx, repos, { decisions? }) takes repositories and returns their rows, carrying with it the reads that row needs — the app records, the newest run of every app, who ran them, runtime.status, and the asks count — each made once for the whole shelf, never once per row, and the words still gathered with Promise.all because runWord reads git. The ownerFacts check that hides who ran it travelled with the row; the home keeps its own copy of that check for Happening now, now asked only of the apps with a run in flight rather than of every app. studioHome lost sixty lines and keeps the Your apps card, its head, its buttons and its empty state exactly where they were; it reads the asks once and hands them to the shelf so the panel and the pills cannot disagree or double the query.

Worth looking at: the new characterization test in test/studio.test.ts pins the rendered row byte for byte — it was written against the old code, passes against it, and passes unchanged against the new module, which is the proof that / renders the same bytes. docs/STUDIO.md and the map in CLAUDE.md name the new module. No dependency added, no behaviour changed, no feature added — the /apps shelf (#71) is deliberately not in this branch; it can now call this function.

bun x tsc --noEmit is clean and the forge.json check suite passes except for six git-push-over-HTTP tests (web, pulls, cross-repo-pull, apps, apps-adversarial) that fail identically on this branch with my changes stashed — they are this sandbox's blocked push auth, not this change. Boot smoke-tested: /healthz and / both answer 200, / in 23 ms.

🤖 Generated with Claude Code

Closes #111

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs