|
1 | | -# openconcho |
2 | | - |
3 | | -Frontend UI for self-hosted Honcho instances — browse memories, peers, sessions, conclusions, and chat with memory context. Ships as a web app (`@openconcho/web`) and a Tauri desktop wrapper (`@openconcho/desktop`). |
4 | | - |
5 | | -## Commands |
6 | | - |
7 | | -`make` is the canonical interface; it shells out to pnpm scripts which shell out to turborepo. CI calls the same targets — `make help` lists everything. |
8 | | - |
9 | | -| Command | Purpose | |
10 | | -|---------|---------| |
11 | | -| `make bootstrap` | Install deps + Playwright Chromium (run once after clone) | |
12 | | -| `make dev-web` | Vite dev server on http://localhost:5173 | |
13 | | -| `make dev-desktop` (or `make dev`) | Tauri desktop app | |
14 | | -| `make build` | Turbo: build web + desktop | |
15 | | -| `make lint` | Biome check | |
16 | | -| `make typecheck` | tsc --noEmit | |
17 | | -| `make test` | Vitest (unit + integration), excludes `e2e/` | |
18 | | -| `make test-e2e` | Playwright e2e (uncached) | |
19 | | -| `make check` | lint + typecheck + test | |
20 | | -| `pnpm --filter @openconcho/desktop cargo-check` | Local Rust/Tauri compile check before pushing desktop changes | |
21 | | -| `pnpm --filter @openconcho/web generate:api` | Regen `src/api/schema.d.ts` from `openapi.json` | |
22 | | - |
23 | | -## Structure |
24 | | - |
25 | | -| Path | Purpose | |
26 | | -|------|---------| |
27 | | -| `packages/web/` | Vite + React 19 + TanStack Router/Query SPA | |
28 | | -| `packages/web/src/routes/` | TanStack Router file-based routes (flat-route syntax) | |
29 | | -| `packages/web/src/components/` | Feature components grouped by domain | |
30 | | -| `packages/web/src/api/` | openapi-fetch client + TanStack Query hooks | |
31 | | -| `packages/web/src/lib/` | Config (localStorage) + theme utilities | |
32 | | -| `packages/web/src/hooks/` | Custom React hooks | |
33 | | -| `packages/web/src/test/` | Vitest unit/integration tests + setup | |
34 | | -| `packages/web/e2e/` | Playwright e2e specs | |
35 | | -| `packages/desktop/` | Tauri shell that bundles the built web app | |
36 | | -| `.claude/rules/` | Coding conventions (auto-loaded) | |
37 | | -| `docs/` | Architecture and references | |
38 | | - |
39 | | -## Code Style |
40 | | - |
41 | | -Read `.claude/rules/coding-standards.md` when writing or reviewing any code file. |
42 | | - |
43 | | -## Workflows |
44 | | - |
45 | | -Read `.claude/rules/workflows.md` for recurring task patterns. |
46 | | - |
47 | | -## Architecture |
48 | | - |
49 | | -Read `docs/architecture.md` for component overview, data flow, and design decisions. |
50 | | - |
51 | | -## Key Constraints |
52 | | - |
53 | | -- **No hardcoded URLs** — all connection config lives in `localStorage` under `openconcho:config` |
54 | | -- **TanStack Router flat-route params** — always cast `params` as `as never` at `navigate()` and `<Link>` callsites |
55 | | -- **`framer-motion` Variants typing** — import `type Variants` and annotate objects; never use `as const` on variant objects |
56 | | -- **Auth is optional** — token header only sent when non-empty; `checkConnection()` detects if auth is required |
57 | | -- **CSS variables only** — no Tailwind color utilities for theme-aware colors; use `var(--text-1)` etc. |
58 | | -- **Shared deps via pnpm catalog** — version-pinned in `pnpm-workspace.yaml`; reference as `"catalog:"` in package.json |
59 | | -- **Conventional commits enforced** — commitlint runs in husky `commit-msg`; body lines must be ≤100 chars |
60 | | -- **Releases via semantic-release** — `.releaserc.json`; commits land on `main`, no manual version bumps |
61 | | -- **GitHub account** — push under `offendingcommit` (`gh auth switch` if needed) |
62 | | -- **Desktop preflight is local** — Rust/Tauri compile-check no longer runs in PR CI; run `pnpm --filter @openconcho/desktop cargo-check` before pushing any `packages/desktop/**` or `packages/desktop/src-tauri/**` change |
| 1 | +@AGENTS.md |
0 commit comments