Build out apps/web with Tailwind CSS v4, BetterAuth client, and the Mosaic
design system. Populate @mosaic/design-tokens with actual color palette
(deep blue-grays, blue/purple/teal accents), font definitions (Outfit/Fira Code),
and spacing scale per AD-13.
- Tailwind v4 CSS-first config with @theme tokens in globals.css
- next/font for self-hosted Outfit + Fira Code (no Google CDN)
- App shell with sidebar nav, topbar, and content area
- Route groups: (dashboard) with AppShell, (auth) with centered card
- Placeholder pages: /chat, /login, /register
- BetterAuth React client (useSession, signIn, signUp, signOut)
- Gateway API fetch wrapper with credentials
- cn() utility with clsx + tailwind-merge
- Dark theme default, WCAG-friendly contrast
Refs #26
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- #62: piSession.dispose() missing in destroySession
- #63: React anti-pattern in TUI agent:end handler
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mark P1-001, P1-007, P1-008, P2-001, P5-002, P6-005 as done (PR #61).
Add session 2 log entry for vertical slice delivery.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Jason directed: build Pi TUI → Gateway → Discord communication
spine before backfilling horizontal layers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Break PRD into 8 milestones (Phase 0–7) with 59 issues on Gitea.
Populate TASKS.md, update mission manifest, initialize scratchpad.
Repo created at git.mosaicstack.dev/mosaic/mosaic-stack.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>