Skip to content

Fleet Mission Control — fallback harness handoff

Verified 2026-07-19 at fleet-mission-control commit 8c365b1. This is the shared operational handoff for Codex/ChatGPT, Antigravity 2.0/agy, and Grok. Global identity, constitution, and house facts remain managed by fleet-constitution; volatile repository state belongs here.

Read this first

  • Andrew's highest-priority requirement was full phone parity before Claude usage ran out. FLT-152 is landed at 1c51526: installable PWA with complete iPhone and Pixel Fold folded/unfolded support.
  • Tailscale is the required access path. FLT-153 is landed at 44a0f1a: verified same-tailnet-user peers can establish cockpit sessions. Deployment API origin was corrected at 8c365b1.
  • FLT-150 attachments landed at 12aa73c; FLT-151 multi-repository discovery fix landed at 0ef9732.
  • The remaining failover work is operational: deploy the Mission Control API/startup launcher to the other three PCs, bind each service to that machine's Tailscale address, and give clients an ordered set of four Tailscale endpoints. Do not expose the API on the LAN or public internet.
  • One-brain constitution and facts are installed on greatroom. Propagation and verification on gaming, streaming, and bedroom remain pending unless newer evidence proves otherwise.
  • The autonomy substrate (FLT-113, FLT-132, FLT-133 in usage-governor) is inert. Do not enable it; it remains gated on nine proofs.

System map

Fleet Mission Control controls four Windows PCs over Tailscale and an SSH mesh:

Role Host
greatroom ANDYGREATROOMPC
gaming DESKTOP-D249KD4
streaming DESKTOP-SCDT9HI
bedroom ANDREWBEDROOMTV

This repository contains a .NET 10 API in src/FleetMissionControl.Api (port 5170) and an Angular cockpit in frontend (port 4200). Backend contracts generate openapi/FleetMissionControl.Api.json and frontend/src/app/api/fleet-api.generated.ts; npm run check:drift must remain clean.

Relevant sibling repositories are usage-governor, fleet-dispatch, fleet-memory, fleet-constitution, fleet-repo-sync, and fleet-harness. The fuller cross-fleet session memory is ~/.fleet/memory/HANDOFF.md, but it was stale at the time this document was verified; prefer this file for Mission Control landed state and verify both against git.

Safe work discipline

  1. Never build or edit reviewable files in the main checkout. Main may contain Andrew's or another harness's uncommitted changes. Create a dedicated worktree and branch from origin/master.
  2. Before committing backend work, run dotnet build -warnaserror and dotnet test. Before committing frontend work, run npx ng build, npx ng lint, npx vitest run, and npm run check:drift from frontend.
  3. After contract changes, run npm run generate:client and commit both generated artifacts.
  4. Stage explicit file paths only; broad or stage-all forms are blocked. Use one focused commit.
  5. Run the council-code-review gate before every commit and resolve findings.
  6. Land only vetted work by fast-forward or cherry-pick. A finished sibling worktree can retain an identity lease; remove that worktree after preserving its commit before landing.
  7. Push and fan out with C:/Users/fives/source/repos/fleet-repo-sync/sync-push.ps1 -RepoPath <repo>. Never filesystem-sync a live .git directory.

Harness entrypoints

  • Codex/ChatGPT: repo AGENTS.md + global ~/.codex/AGENTS.md. Headless CLI uses codex exec -m <model> and requires an external timeout; interactive mode needs a TTY. gpt-5.6-sol is the hard/Fable-class lane, gpt-5.6-terra the practical everyday coding lane, and gpt-5.6-luna the cheap bulk lane. The cockpit's CapabilityRouter.ConcreteModel maps ceiling/standard/mechanical onto exactly those three (FLT-194).
  • Antigravity 2.0/agy: repo GEMINI.md and AGENTS.md + global ~/.gemini/GEMINI.md. Both app and CLI discover both repo filenames. Use agy -p, --model "Label", and null stdin.
  • Grok harness/CLI: repo AGENTS.md + global ~/.grok/AGENTS.md. Never rely on GROK.md; current Grok does not load it. Use grok -p and --yolo or --always-approve only for authorized unattended work. Grok is primarily the adversarial/red-team seat, not the bulk builder.

Pending product lanes

  • FLT-148: limits/reset dashboard. Historical partial worktrees were ug-flt148 and fmc-flt148; inspect before trusting or deleting them.
  • FLT-149 cockpit model selectors. Historical partial worktree was fmc-flt149.
  • FLT-151: activate image generation with Auto plus explicit OpenAI/Gemini/Grok routing (follow-on to FLT-102).
  • FLT-152: unify attachment UX across smart command, direct launch, and follow-up composers.
  • FLT-153: add durable asynchronous OpenAI Sora, Gemini Veo, and Grok Imagine video generation.
  • FLT-154: research a governed Claude Projects integration aligned with Work Wingman.
  • FLT-155: research a governed NotebookLM integration aligned with Work Wingman.
  • Four-node Tailscale API failover and peer deployment.
  • One-brain propagation and drift verification across the remaining PCs.

Current phone endpoints on greatroom are cockpit http://100.69.90.95:4200 and API http://100.69.90.95:5170. Treat the IP as host-specific configuration, not a universal bind address.

Before resuming

Run read-only checks first: git status --short --branch, git log -10 --oneline, git worktree list, and service/endpoint probes. Do not overwrite dirty files or assume an old worktree is disposable. If a newer commit or live deployment contradicts this document, trust verified artifacts and update this handoff in the same reviewed change.

Boards: Jira FLT, Vikunja project 7 on greatroom, and fleet-harness/docs/BOARD.md.