# Console v2 — Acceptance Demo

The manual acceptance gate for Phase 22. JT walks through every numbered step
end-to-end; every step must PASS before the V1 server (port 8430) can be
considered for sunset.

This is the operational corollary to `verify-laws` — automated checks confirm
the contract surface; this checklist confirms the lived experience on real
hardware over Tailscale.

---

## Desktop on MacBook Pro

1. Open http://localhost:5173 (after `pnpm dev:desktop`).
2. See HierarchyNavigator load Tartarus + recoil-otf-demo.
3. Click Tartarus → Ep01 → Sc01 → b5 — TakesBrowser renders 9:16 cards.
4. Click recoil-otf-demo → otf_demo_ep1 → s1 → b1 — TakesBrowser renders 16:9 cards.
5. Open a take from grid → TakeInspector opens; ←/→ navigates; Esc returns to grid.
6. Switch to Lineage → DAG renders; drag a node → position persists across reload.
7. Open Tweaks panel → change density to "dense" → grid spacing shrinks; reload → density preserved.
8. Press ⌘\ → Events drawer slides up; failure/warning/fallback chips filter correctly.
9. Press ? → Commands cheat-sheet slides in.
10. Press ⌘K → palette opens.

## Desktop on Studio (over Tailscale)

11. Open http://100.105.59.118:5173 from MacBook → same Tartarus, same focused beat
    (workspace state proves cross-machine).

## Mobile on iPhone (over Tailscale)

12. Open http://100.105.59.118:5174 → Mobile shell loads.
13. Bottom tabs: Dashboard / Queue / Activity / Review all switch.
14. Dashboard → tap a beat → Review enters.
15. Swipe up → mark primary; swipe down → reject; swipe left/right → navigate.
16. Open Queue tab → all 8 ProposalCard kinds render; approve from mobile → desktop reflects via SSE.

## Live engine integration

17. From chat, type `/morning` → dispatches; SSE event arrives; statusbar pulse confirms.
18. Approve a real PromptRewriteProposal from desktop → engine `dispatch()` runs → receipt
    lands in event drawer.

## Cross-platform contract test

19. `pnpm cross-platform-test` — same fixture renders on both surfaces with the same data.

## Cleanup gates

20. `pnpm verify-laws` → all 7 checks passing.
21. `pytest recoil/` → ~1280 tests still passing.
22. `pnpm -r typecheck` → all packages clean.
