CLAUDE.md@webui · git:20260607.3a2d86f · 2026-06-07 · sha256 722798501743ce0d
CLAUDE.md@webui git:20260607.3a2d86fA
Immutable. This exact content never changes and is served at /api/v1/blob/722798501743ce0d.
@AGENTS.md # Levara WebUI Next.js 15 (App Router) + TypeScript + Tailwind CSS. Backend API proxied via `next.config.ts` rewrites to `localhost:8080`. ## Dev ```bash npm run dev -- -p 3001 # start dev server npm run build # production build npx playwright test # run 61 E2E tests ``` ## Structure - `src/app/(dashboard)/` — all authenticated pages (sidebar layout) - `src/app/(auth)/login/` — login/register page (no sidebar) - `src/components/ui/` — reusable components (Button, Input, Badge, Toast, Modal, etc.) - `src/components/layout/` — Sidebar navigation - `src/hooks/use-levara.ts` — React Query hooks (shared cache, auto-invalidation) - `src/hooks/use-sse.ts` — SSE client with auto-reconnect - `src/lib/api.ts` — Levara API client (typed SDK, error handling, traceId) - `e2e/` — Playwright E2E tests ## Key patterns - ALL data fetching through React Query hooks (useDatasets, useCollections, etc.) - Mutations invalidate related queries automatically - Upload → auto-cognify → BM25 + vector indexed - Collection selector in Chat/Search (filter out internal Triplet_text, _community_summaries) - Theme/locale persist in localStorage