~bigbes/lethe

ref: 3fbbfc8996f7197100b9780478d9810f480a510e lethe/web/package-lock.json -rw-r--r-- 223.7 KiB
c2f77421 — Eugene Blikh a month ago
web: session view with turn list and transcript

Phase 6: replace the placeholder session route with the real implementation.
Adds useSession hook (TanStack Query), TurnList aside, Transcript with
react-markdown rendering, session.css, and the updated session route with
SubBar breadcrumb, error/loading states, and turn selection/scroll.
f903c872 — Eugene Blikh a month ago
web: scaffold vite/react/ts project, port design tokens and primitives

- package.json with runtime (react, tanstack-query, tanstack-router) and
  dev deps (vite, typescript, vitest, eslint, prettier, testing-library)
- vite.config.ts: @vitejs/plugin-react + TanStack Router file-based plugin;
  dev proxy for /api/v1, /healthz, /readyz, /metrics with Remote-User header;
  build.outDir set to ../internal/server/web/dist (Go embed target)
- tsconfig.json (strict, ES2022, react-jsx, bundler resolution) + tsconfig.node.json
- .eslintrc.cjs (eslint 8 + @typescript-eslint + react-hooks), .prettierrc (single quotes, no semis)
- index.html: Inter + JetBrains Mono fonts, body.density-compact, #root mount
- src/main.tsx: React root with QueryClientProvider, temporary scaffold div
- src/styles/tokens.css: verbatim :root and [data-theme="dark"] blocks from prototype.css
- src/styles/primitives.css: .tag, .tooldot, .spark, .statusdot, .empty, .sub rules
- src/primitives/{Tag,ToolDot,Spark,StatusDot,EmptyState,Sub}.tsx with typed signatures
- src/primitives/index.ts re-exports all primitives
- web/.gitignore: node_modules/, coverage/
- root .gitignore: web/node_modules/, internal/server/web/dist/* with .gitkeep exception
- vitest.config.ts separate from vite to avoid router plugin scan error on empty routes dir
- src/routes/__root.tsx minimal root route to satisfy TanStack Router plugin at build time