Skip to content

T-GXNH-migrate-launchers-to-app-harness

State: planning/proposed · Impact: medium · Complexity: large

Make @sksizer/app-harness the only launcher for every platform-server suite, and give hand-run web dev a scratch root by default.

LocationRole today
solutions/determined/tests/ui/serve-{smoke,notes,vaults,polish,fitness,polish-lint}.tsPer-suite launchers; each runs platform-server --port --dist --vault <tmp copy> --state-dir <tmp> (15090-15093, 15104, 15105)
solutions/determined/tests/ui/serve-sdf.tsA fake fixture server for SDF’s SPA (15094), not a real backend
solutions/determined/tests/ui/{notes,polish,mvux,fitness,vaults,sharing,graph}/32, 20, 18, 15, 3, 2 and 1 specs. 10 mvux specs ride the smoke server and the 8 *.vaults.e2e.ts run in vaults on 15092. graph runs in smoke and skips unless CAPTURE_SHOTS is set
solutions/determined/playwright.config.ts, playwright.sharing.config.tsProjects smoke, notes, vaults, mvux, fitness, polish, backup; sharing
solutions/determined/products/agent-pants/tests/serve*.tsSeven launchers (15095-15101) over a shared serve-harness.ts; specs read paths from .paths-<port>
solutions/determined/products/agent-pants/playwright.config.ts8 specs in tests/e2e; run by bun run test:e2e, no moon task
solutions/determined/scripts/dev-web.tsStarts or attaches to platform-server on :15070 for bun run proto; --vault picks a corpus; no state isolation

Every Determined and agent-pants suite launches through scratchPlatform. The specs read paths through the harness fixture, not tmp files. serve-sdf.ts is deleted once T-JPFC tests SDF on its real backend; until then it stays and is listed as the one exception. agent-pants gets a moon test-ui task. Each suite’s port comes from the harness’s nextFree lease, which closes T-2MBO. dev-web.ts runs in a scratch root by default; --real-state opts out.

  1. Migrate the determined serve-*.ts suites one by one; delete each launcher.
  2. Migrate the agent-pants launchers and delete serve-harness.ts; add the moon task.
  3. dev-web.ts: scratch root by default through withScratchApp, --real-state to opt out; print the root on start.
AreaNote
solutions/determined/tests/ui/Launchers removed
solutions/determined/products/agent-pants/tests/Launchers removed
solutions/determined/products/agent-pants/moon.ymlE2e task
solutions/determined/scripts/dev-web.tsScratch default
  • AC-1: The only serve-*.ts left under solutions/determined is serve-sdf.ts, and every other suite passes through the harness.
  • AC-2: No spec reads a .paths-<port> or other tmp handoff file.
  • AC-3: bun run proto with no flag leaves the real suite durable home unchanged.
  • AC-4: moon run product-agent-pants:test-ui runs the agent-pants suite.
  • AC-5: Two worktrees running the same suite at once start two servers on two ports.
  • Backup (T-VEK2), SDF (T-JPFC), the Tauri apps (T-UU4J, T-KOTJ, T-AAR2, T-TLET).
  • The template (T-GQ9Y).
  • T-4HBC for the harness.
  • T-2MBO plans per-worktree e2e ports for the launchers this task deletes. AC-5 covers it; close T-2MBO with this task.
  • T-E3S6 adds a stale-binary check to the same launchers. If it is still wanted, the check goes into scratchPlatform, not into a serve-*.ts script.
  • dev-web.ts is how people and agents explore the web build; today it writes to real state.
  • solutions/agent-pants (the Rust core and mockups) has no app or server; the agent-pants app is the Determined product.

T-4HBC


← Back to Tasks