Public: anyone can read this; the crew can change it.
Contraction: remove the TUI's apps, runs and crew screens #412
Check · Review · Land · Live done — Landed and live in production.
This removes the TUI's apps, app, runs, run and crew screens and every route into them (#398). The change adds 199 lines and deletes 2,194 across 17 files, a net drop of 1,995 lines. Running an app and managing the crew now happen in the studio on the web. The terminal keeps the workspace, the editor, and review over SSH.
shipped production is serving it deploy 79be2f6
This removes the TUI's apps, app, runs, run and crew screens and every route into them (#398), and now merges cleanly with main. Against main the change adds 205 lines and deletes 2,197 across 17 files, a net drop of 1,992 lines. Running an app and managing the crew happen in the studio on the web. The terminal keeps the workspace, the editor, and review over SSH.
What moved where
screens/runs.tsis nowscreens/runlist.tsand holds only how a run is drawn as a row:RunList,runTone,runRows. Pressing enter on a run in a pull's Crew tab or an issue's Crew card now hands over the run's web page,/:owner/:name/runs/:id, where its log, cancel and steer controls are. It opens as a link whenconfig.urlis set; otherwise a toast gives the path.- Each helper that surviving screens still used moved into the one screen that reads it:
- agentPick → assign.ts
- budgetText → settings.ts
- envTone → pull.ts
apptty.tsstays, because the pull screen'sTstill opens a preview's terminal. The issue said to delete it only if nothing else reached it.
What is gone
apps.ts,app.ts,run.ts,crew.ts.- The command palette entries
apps,app,runs,new-appandcrew. - The dashboard's Apps pane, with its
a,N,tand apps-paneokeys. The empty dashboard now says "Press n for a new repository". - Account's
ckey. New app is still on the web at/apps/new.
Merge with main
account.ts:mainremoved the origins key (#418) and this branch removed the crew key, so Account now has neither.app.ts: stays deleted. #409 had changed its wording for a dormant preview, so that wording ("asleep since …; nobody touched the change since …") now appears in the pull's preview line, the one place the terminal still shows an environment.- The preview line also handles the
asleepstate ("asleep …; wakes on a request") with no colour. Before, an asleep preview read "stopped". No test covers the new wording.
Tests
test/tui-apps.test.ts: the tests for the deleted screens are gone. Two new tests check that none of the removed palette ids or dashboard and account keys does anything, including for an admin, and that the workspace still opens from the dashboard.test/tui-size.test.ts: the workspace replaces runs and run in the size checks.test/surfaces-adversarial.test.ts: the "popped while loading" test now uses the issues screen.test/apps-ssh.test.ts: the pty-handoff test callsopenAppTerminalfrom the dashboard. OpenSSH isn't installed here, so this file skipped and that test hasn't run yet.
Results after the merge
- The full
forge.jsoncheck passes: 576 tests, plustscwith no errors. - All
test/tui-*tests andapps-idlepass; the 8apps-sshtests skipped. - Before the merge, two web N+1 tests in
surfaces-adversarialalso failed onmainwithout this change. That file isn't in the check, and I haven't re-run it since the merge.
Docs and old URLs
docs/DESIGN.md§6·0a and §6g describe only what the terminal still shows.docs/STUDIO.mdnever mentioned these screens, so it is unchanged.- No URL changed, because the removed screens had no routes.
- The release workflow and the chart are untouched.
To try it: bun run src/main.ts, then ssh in. On the dashboard, a, N and t do nothing. : shows no Apps, Runs or Crew entries. Enter on a repository opens the workspace, and enter on a run in a pull's Crew tab gives the run's web address.
🤖 Generated with Claude Code
This removes the TUI's apps, app, runs, run and crew screens and every route into them (#398). The change adds 199 lines and deletes 2,194 across 17 files, a net drop of 1,995 lines. Running an app and managing the crew now happen in the studio on the web. The terminal keeps the workspace, the editor, and review over SSH.
What moved where
screens/runs.tsis nowscreens/runlist.tsand holds only how a run is drawn as a row:RunList,runTone,runRows. Pressing enter on a run in a pull's Crew tab or an issue's Crew card now hands over the run's web page,/:owner/:name/runs/:id, where its log, cancel and steer controls are. It opens as a link whenconfig.urlis set; otherwise a toast gives the path.-
agentPick→assign.ts-budgetText→settings.ts-envTone→pull.tsapptty.tsstays, because the pull screen'sTstill opens a preview's terminal. The issue said to delete it only if nothing else reached it.What is gone
apps.ts,app.ts,run.ts,crew.ts.apps,app,runs,new-appandcrew.a,N,tand apps-paneokeys. The empty dashboard now says "Press n for a new repository".ckey and the "c manages the crew" text./apps/new.Tests
test/tui-apps.test.ts: the tests for the deleted screens are gone. Two new tests check that none of the removed palette ids or dashboard and account keys does anything, including for an admin, and that the workspace still opens from the dashboard. The issue's Crew card test now expects the run's web address.test/tui-size.test.ts: the workspace replaces runs and run in the size checks.test/surfaces-adversarial.test.ts: the "popped while loading" test now uses the issues screen.test/apps-ssh.test.ts: the pty-handoff test callsopenAppTerminalfrom the dashboard instead of going through the apps screen. OpenSSH isn't installed here, so this file skipped and that test hasn't run yet.Results
forge.jsoncheck passes: 576 tests, plustscwith no errors. Alltest/tui-*tests pass.surfaces-adversarialfail. They fail the same way onmainwithout this change; I didn't touch them, and that file isn't part of the check.Docs and old URLs
docs/DESIGN.md§6·0a and §6g now describe only what the terminal still shows.docs/STUDIO.mdnever mentioned the TUI screens, so it is unchanged./runs/:idpage is now where enter on a run leads.To try it:
bun run src/main.ts, thensshin. On the dashboard,a,Nandtdo nothing.:shows no Apps, Runs or Crew entries. Enter on a repository opens the workspace, and enter on a run in a pull's Crew tab gives the run's web address.🤖 Generated with Claude Code
Closes #398