src/: React + TypeScript UI. Window entrypoints follow*-main.tsx(e.g.selector.html→src/selector-main.tsx).- Root
*.html: Vite multi-page entrypoints for Tauri windows (index.html,selector.html,overlay.html,settings.html,about.html,scroll-overlay.html). src-tauri/: Rust backend + Tauri config. Command handlers live insrc-tauri/src/commands/; shared state/config lives insrc-tauri/src/.public/: static assets bundled by Vite.assets/: screenshots/branding used by docs/README.- Generated output:
dist/,node_modules/,src-tauri/target/(do not commit).
pnpm install: install JS deps (pnpm is the expected package manager; lockfile ispnpm-lock.yaml).pnpm tauri dev: run the desktop app with hot reload (preferred).pnpm dev: run the frontend only onhttp://localhost:1420.pnpm build: TypeScript typecheck + web build (tsc && vite build).pnpm tauri build: produce native bundles.- From
src-tauri/:cargo fmt,cargo clippy,cargo test.
- TypeScript/React: follow existing formatting (2-space indent, double quotes, semicolons). Components use
PascalCase.tsx; window bootstraps usekebab-case-main.tsx. - IPC boundaries: Rust command names are
snake_case; keep JSON payload fieldssnake_caseto match Rust structs (e.g.frame_count). - UI theming: prefer CSS variables (see
src/App.css) to keep the “Warm Academic” palette; avoid introducing new hard-coded hex colors. - Rust: keep backend code modular (feature-focused modules under
src-tauri/src/commands/) and letrustfmtformat changes.
- No dedicated JS test runner currently; rely on
pnpm buildfor type safety and build correctness. - For Rust logic, add unit tests where practical and run
cargo testfromsrc-tauri/.
- Use Conventional Commits (as in Git history):
feat(scope): ...,fix(scope): ...,refactor(scope): ...,docs: ...,chore: ...with scopes likeselector,scroll,backend. - PRs should include: a short rationale, steps to verify (ideally
pnpm tauri dev), and screenshots/GIFs for UI changes. UpdateCHANGELOG.mdfor user-facing behavior changes.
- Tauri config lives in
src-tauri/tauri.conf.json; permissions/capabilities live insrc-tauri/capabilities/. - VS Code extension recommendations are in
.vscode/extensions.json(Tauri + Rust Analyzer).