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

In the studio, /apps is the shelf, not dev's table #112

shipped production is serving it opened this has it
opened this

The studio home's All 15 apps link and the top bar's Apps land on appsPage (src/web/pages/apps.ts:546) — dev's table of repositories that run, with its own header and its own words. It is the one list the studio's own home links to, and the last forge-level page with no studio side.

This is #71 rewritten smaller. The first attempt was parked after main moved under it eight times and the rebase could not be finished, conflicting in src/web/studio/home.ts: it was trying to extract the shared shelf row and add a studio branch to /apps in one change. #111 does the extraction; this issue is only the page, and touches apps.ts, which nothing else is moving.

Done looks like

  • [ ] In studio mode, /apps renders every app the viewer can land as the studio's shelf, from the function #111 extracted — never a second copy of those rows.
  • [ ] It says how many there are and filters by whether they are live, as a link carrying a query parameter rather than a form; New app is on it.
  • [ ] An app the viewer can read but not write shows what a stranger sees, not the owner's numbers — the same rule the app page keeps.
  • [ ] ?mode=dev still renders today's table, unchanged, and every dev-only control on it stays there.
  • [ ] Authorization is appsPage's, unchanged; a signed-out viewer in studio mode gets the public shelf and nothing else.
  • [ ] test/studio.test.ts: /apps in studio mode lists an app the viewer can land, omits one they cannot, and carries no dev table markup; ?mode=dev is today's page.
  • [ ] docs/STUDIO.md says where the whole shelf lives.

Files I expect to change

src/web/pages/apps.ts (the branch, mirroring the one in repo.ts), src/web/studio/shelf.ts (call it, do not change it), docs/STUDIO.md, test/studio.test.ts.

Risks

  • Scope. This is a list, not a new dashboard: no new numbers, no new actions. If the shelf function needs an argument it does not have, add the argument — do not fork the row.
  • The race that parked #71. Keep the diff inside apps.ts; if you find yourself editing home.ts, the change has grown past this issue.

Suggested: Scout.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs