Voice. Text. One Watch Floor.
-Single-page watcher for live voice bridge and captured Discord messages, including stickers, embeds, replies, and uploaded image evidence inline.
-diff --git a/bun.lockb b/bun.lockb index 04ee2b7..aece00d 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/docs/superpowers/plans/2026-05-13-react-ssr-dashboard.md b/docs/superpowers/plans/2026-05-13-react-ssr-dashboard.md new file mode 100644 index 0000000..0a5bda3 --- /dev/null +++ b/docs/superpowers/plans/2026-05-13-react-ssr-dashboard.md @@ -0,0 +1,60 @@ +# React SSR Dashboard Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Replace static client-rendered homepage with React server-side rendering while keeping live WebSocket/voice behavior as progressive enhancement. + +**Architecture:** Express `GET /` builds dashboard data, renders React component to HTML with `react-dom/server`, injects bootstrap JSON for client script. CSS/JS move to static assets; React owns initial markup only, lightweight browser JS handles tab switching, voice bridge, WebSocket updates, and async thread discovery. + +**Tech Stack:** React, ReactDOM server, Bun, Express, TypeScript, vanilla browser JS for progressive enhancement. + +--- + +### Task 1: Add React dependencies + +**Files:** +- Modify: `package.json` +- Modify: `bun.lockb` + +- [ ] Run `bun add react react-dom`. +- [ ] Run `bun add -d @types/react @types/react-dom`. +- [ ] Verify `bun run typecheck`. + +### Task 2: Extract dashboard assets + +**Files:** +- Create: `public/dashboard.css` +- Create: `public/dashboard.js` +- Modify: `public/index.html` + +- [ ] Move current ` - -
-Single-page watcher for live voice bridge and captured Discord messages, including stickers, embeds, replies, and uploaded image evidence inline.
-