feat(dashboard): add family dashboard SPA (Vite + React)#1
Merged
kevinten10 merged 22 commits intomainfrom Mar 21, 2026
Merged
Conversation
Initialize the @openoctopus/dashboard package as a Vite 6 + React 19 SPA with Tailwind CSS v4, React Router v7, Zustand, i18next, React Flow, and Recharts. Adds placeholder routes for home, route view, members, entities, and settings pages. Integrates into the monorepo with root tsconfig references, vitest alias, and convenience scripts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add static file serving for the built dashboard SPA at /dashboard/ with SPA fallback for client-side routing. Also fix tsconfig.node.json composite setting for project references. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add use-gateway hook for WebSocket connection management - Migrate to @tailwindcss/vite plugin (Tailwind v4 requirement) - Replace postcss.config.js + tailwind.config.ts with CSS @theme - Add dashboard workspace to knip config - Dashboard builds successfully to packages/ink/public/dashboard/ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…e addEventListener
…tus banner, update .gitignore
…llbacks RealmGrid, Timeline, RouteView, Members, and Entities now read live data from their respective Zustand stores and fall back to placeholder data when the gateway is disconnected. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ve unused deps - Fix setStatus to preserve existing error instead of clearing with undefined - Wire Settings page to show live gateway status and data counts - Remove unused recharts, @tailwindcss/postcss, autoprefixer, postcss deps - Add tests for error preservation behavior Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Auto-fix 52 curly brace violations (if/for without braces) - Fix 5 unused variables (prefix with _ or remove) - Fix 2 consistent-function-scoping issues (hoist mockEmbed) - Replace 2 new Array() with Array.from() - Downgrade no-explicit-any and no-await-in-loop to warn (67+12 pre-existing violations, all in test mocks and intentional sequential processing) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Extract NAV_ITEMS to shared nav-items.ts (eliminates duplication between Sidebar and MobileNav) - Add ErrorBoundary component to catch rendering errors gracefully - Wire ErrorBoundary at App root level Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ndling BrowserRouter's basename prop doesn't strip the path correctly in React Router v7.13. Using createBrowserRouter with basename option in the router config fixes route matching under /dashboard/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@openoctopus/dashboard— Vite 6 + React 19 SPA with Tailwind CSS v4, Zustand 5, React Router 7, React Flow, i18next/dashboard/on HTTP port 19790Architecture
Build output:
packages/ink/public/dashboard/(475KB JS + 31KB CSS gzipped to ~160KB)Key Decisions
@xyflow/reactinstead of@reactflow/core(package renamed in v12)@tailwindcss/viteplugin instead of PostCSS (Tailwind v4 requirement)@themefor brand colors/tokens instead oftailwind.config.tsTest plan
pnpm dashboard:build)chat-pipeline.tserror)http://localhost:19790/dashboard/🤖 Generated with Claude Code