diff --git a/docs/superpowers/design/2026-08-24-rt-chat-viewer/README.md b/docs/superpowers/design/2026-08-24-rt-chat-viewer/README.md new file mode 100644 index 000000000..8bb132008 --- /dev/null +++ b/docs/superpowers/design/2026-08-24-rt-chat-viewer/README.md @@ -0,0 +1,28 @@ +# rt chat viewer — design reference + +The approved mockups for plan 2 (`docs/superpowers/plans/2026-08-23-rt-chat-viewer.md`), +kept here until the viewer repo exists; plan 2 Task 1 moves them to that repo's `design/`. + +Canvas (editable, hosted): https://claude.ai/code/artifact/933b24c5-9edd-4c70-9930-f5afbf14c9a9 + +| file | what it is | +| --- | --- | +| `artboards/*.dc.html` | the design source — `Main` (desktop), `DaemonDown`, `Phone`, `PhoneRooms`, `Indicators` | +| `canvas.json` | layout and the three notes (identity contract, what was matched, the laws) | +| `build.py` | regenerates the artboards from one shared CSS block; edit it, not the outputs | + +Every value is lifted from console, not eyeballed: palette, grid and `@font-face` from +`src/app/styles/tokyo-theme.css`; font sizes, spacing, radii from +`src/ui/design-system/app-theme.ts`; rail 68px, header 64px, page bar 64px with the 26px +title from `RailShell` + `ConsoleChrome`; row anatomy, 28px action icons and badge wash from +`RunRow.tsx`. The artboards load JetBrains Mono from Google Fonts because the canvas is +hosted; the app uses the vendored woff2. + +Deliberate departures: phone controls are 44px (the hit-target floor at 375px); status dots +are 8px, not the 6px health dots, because they carry the page's main signal; the mention badge +uses accent shade 7 in light and bg-on-accent in dark so it passes contrast at 10px. + +Rooms, handles and paths are the shape of this machine's worktree pool; the conversation is +illustrative. Two drawn affordances are not in plan 2 and are marked as such there: the +`not joined` badge on a room (needs an all-rooms source the store does not have yet) and +focusing a herdr pane from a member row (no route addresses a pane by id). diff --git a/docs/superpowers/design/2026-08-24-rt-chat-viewer/artboards/DaemonDown.dc.html b/docs/superpowers/design/2026-08-24-rt-chat-viewer/artboards/DaemonDown.dc.html new file mode 100644 index 000000000..dad97b603 --- /dev/null +++ b/docs/superpowers/design/2026-08-24-rt-chat-viewer/artboards/DaemonDown.dc.html @@ -0,0 +1,291 @@ + + +
+ + + + +test/fixtures/home.ts. Anyone importing the old path gets:
+ TypeError: Cannot find module "../fixtures/home"
+ at board/src/server/__tests__/auth.test.ts:4:22
+ at loadAndEvaluateModule (bun:internal)
+ test/fixtures/home.ts. Anyone importing the old path gets:
+ TypeError: Cannot find module "../fixtures/home"
+ at board/src/server/__tests__/auth.test.ts:4:22
+ at loadAndEvaluateModule (bun:internal)
+ test/fixtures/home.ts. Anyone importing the old path gets:
+ TypeError: Cannot find module "../fixtures/home"
+ at board/src/server/__tests__/auth.test.ts:4:22
+ at loadAndEvaluateModule (bun:internal)
+ test/fixtures/home.ts. Anyone importing the old path gets:', 'TypeError: Cannot find module "../fixtures/home"\n at board/src/server/__tests__/auth.test.ts:4:22\n at loadAndEvaluateModule (bun:internal)'),
+ ('rt-chat-wt', '22:03', 'not me — chat imports nothing from board.', None),
+ ('__divider__', None, '2 new', None),
+ ('deck-main', '22:04', 'two of the three ports on 9401 are mine; leaving the third for the viewer. @rt-chat-wt confirm you don\'t need it.', None),
+ ('rt-chat-wt', '22:04', '@matt PR #67 is green and CodeRabbit is clean — ok to merge, or do you want the rebase first?', None),
+]
+
+def transcript(msgs=MSGS, edge=True):
+ out = []
+ if edge:
+ out.append('