a very good jj gui
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: update CLAUDE.md with Tauri project structure

+58 -8
+58 -8
CLAUDE.md
··· 4 4 5 5 ## Project Overview 6 6 7 - Tatami is a Rust application using GPUI (GPU-accelerated UI framework) and jj-lib (Jujutsu version control library). 7 + Tatami is a desktop GUI client for Jujutsu (jj) version control. It's a Tauri v2 + React application with a Rust backend integrating jj-lib. 8 + 9 + ## Monorepo Structure 10 + 11 + - `/apps/desktop` - Active Tauri + React application 12 + - `/apps/old-gui` - Legacy GPUI-based app (deprecated) 8 13 9 14 ## Build Commands 10 15 11 16 ```bash 12 - cargo build # Build the project 13 - cargo run # Run the application 14 - cargo test # Run tests 15 - cargo clippy # Run linter 16 - cargo fmt # Format code 17 + # Development (from root) 18 + bun run dev # Start Vite dev server (frontend only) 19 + bun run tauri dev # Run full Tauri app in dev mode 20 + 21 + # Build 22 + bun run build # Build frontend 23 + bun run tauri build # Build desktop app 24 + 25 + # Frontend (from apps/desktop) 26 + bun run typecheck # TypeScript type checking (tsgo) 27 + bun run lint # Biome linter 28 + bun run format # Biome formatter 29 + 30 + # Rust (from apps/desktop/src-tauri or root) 31 + cargo build # Build Rust backend 32 + cargo test # Run tests 33 + cargo clippy # Run linter 34 + cargo fmt # Format code 17 35 ``` 18 36 37 + ## Architecture 38 + 39 + **Data Flow**: 40 + ``` 41 + React Frontend → Tauri IPC Commands → Rust Backend → jj-lib → Repository 42 + → SQLite (projects, layout state) 43 + ``` 44 + 45 + **Frontend Stack** (`apps/desktop/src/`): 46 + - TanStack Router for routing 47 + - TanStack Query + TanStack DB for state management 48 + - effect-atom for reactive global state 49 + - shadcn/ui + Tailwind CSS v4 for styling 50 + 51 + **Backend** (`apps/desktop/src-tauri/src/`): 52 + - `lib.rs` - Tauri command definitions 53 + - `repo/` - jj-lib integration (jj.rs, log.rs, status.rs, diff.rs) 54 + - `storage.rs` - SQLite persistence layer 55 + - `watcher.rs` - File system watching for repo changes 56 + 57 + **Key Frontend Files**: 58 + - `components/RevisionGraph.tsx` - DAG visualization with lane allocation 59 + - `hooks/useKeyboard.ts` - Vim-style keyboard navigation 60 + - `db.ts` - TanStack DB collections with file watcher integration 61 + - `tauri-commands.ts` - Type-safe Tauri command wrappers 62 + 63 + ## Browser-Only Development 64 + 65 + The frontend supports running without Tauri via mocks in `src/mocks/`. Vite aliases Tauri imports when `TAURI_DEV_HOST` is not set, enabling UI development in a regular browser. 66 + 19 67 ## Dependencies 20 68 21 - - **gpui**: GPU-accelerated UI framework (from Zed editor) 22 - - **jj-lib**: Jujutsu version control library for repository operations 69 + - **jj-lib** (0.35.0) - Jujutsu version control library 70 + - **Tauri** (2.1) - Desktop application framework 71 + - **SQLx** - SQLite database access 72 + - **notify** - File system watching