|
1 | 1 | # Progress |
2 | 2 |
|
| 3 | +## 2026-07-03: Phase 8, UI-0 foundation |
| 4 | + |
| 5 | +Done: |
| 6 | +- frontend/ workspace: Vite, React 19, TypeScript strict, Tailwind v4, |
| 7 | + ESLint flat config, Prettier, Vitest with Testing Library |
| 8 | +- Design tokens from UI_PLAN section 5 as CSS variables, dark mode via a |
| 9 | + .dark class with prefers-color-scheme default and a persisted toggle; |
| 10 | + Inter and JetBrains Mono self-hosted through fontsource |
| 11 | +- App shell: sidebar navigation for all planned screens, top bar with live |
| 12 | + project and store path, Runs page foundation card with designed loading, |
| 13 | + error, and ready states |
| 14 | +- FastAPI server in ragproof/ui/ behind the ragproof[ui] extra: /api/meta, |
| 15 | + CSP default-src 'self', nosniff and referrer headers, SPA fallback that |
| 16 | + never swallows unknown /api paths (404 JSON), static root path guard |
| 17 | +- ragproof ui command: binds 127.0.0.1 by default with a warning on other |
| 18 | + hosts, opens the browser, --no-browser and --dev flags, clear install |
| 19 | + hint when the extra is missing |
| 20 | +- Build pipeline: vite builds into ragproof/ui/static (committed so wheels |
| 21 | + and no-Node machines work); release workflow builds the frontend before |
| 22 | + uv build; ui.yml CI job runs typecheck, lint, format, tests, build, and |
| 23 | + an external-resource bundle scan; main CI installs the ui extra |
| 24 | +- Bundle: 77.5KB gzipped JS, fonts as woff2, zero external loads (tested) |
| 25 | +- Verified live: ragproof ui served /api/meta, the themed shell, CSP |
| 26 | + headers, and client-route fallback on this machine |
| 27 | + |
| 28 | +Decisions: |
| 29 | +- React 19 instead of the plan's React 18; it is the current stable line |
| 30 | + and Testing Library and Router support it fully. |
| 31 | +- lucide-react resolved to 1.x (the 0.x line graduated); API unchanged. |
| 32 | +- The built bundle is committed. Rationale: acceptance requires the UI to |
| 33 | + work from a checkout without Node, and wheels must build from any clone. |
| 34 | + Revisit if bundle churn becomes noisy in diffs. |
| 35 | + |
| 36 | +Next: UI-1 (runs table and run detail), interleaved with Phase 7 launch work. |
| 37 | + |
3 | 38 | ## 2026-07-02: Phase 6 |
4 | 39 |
|
5 | 40 | Done: |
|
0 commit comments