@@ -12,7 +12,83 @@ mise install
1212cp .env.example .env
1313
1414# Install dependencies
15- npm install
15+ task deno:install
16+ ```
17+
18+ ## Worktree Setup (Agent Orchestrators)
19+
20+ When using agent orchestrators like [ Conductor] ( https://conductor.build ) or
21+ [ Superset] ( https://superset.sh ) , each agent works in an isolated git worktree.
22+ Git-untracked files (` .env ` , ` node_modules/ ` ) are not copied into new worktrees
23+ and must be restored via a setup script.
24+
25+ ### Standard git worktree
26+
27+ ``` bash
28+ # Create a worktree on a new branch
29+ git worktree add ../mt-feature -b feature-branch
30+
31+ # Enter the worktree
32+ cd ../mt-feature
33+
34+ # Symlink .env from the parent repo (single source of truth)
35+ ln -sf /path/to/mt/.env .env
36+
37+ # Install dependencies
38+ task deno:install
39+ ```
40+
41+ ### Conductor
42+
43+ Conductor exposes ` $CONDUCTOR_ROOT_PATH ` pointing to the parent repo.
44+ Add a ` conductor.json ` at the repo root:
45+
46+ ``` json
47+ {
48+ "scripts" : {
49+ "setup" : " ln -sf \" $CONDUCTOR_ROOT_PATH/.env\" .env && deno install --node-modules-dir=auto --frozen" ,
50+ "run" : " deno run -A npm:@tauri-apps/cli dev" ,
51+ "archive" : " "
52+ }
53+ }
54+ ```
55+
56+ Or for more control, create ` bin/conductor-setup ` :
57+
58+ ``` bash
59+ #! /bin/sh
60+ set -e
61+ cd " $( dirname " $0 " ) " /..
62+
63+ if [ -z " $CONDUCTOR_ROOT_PATH " ]; then
64+ echo " Not running in Conductor, skipping workspace setup."
65+ exit 0
66+ fi
67+
68+ # Symlink .env from parent repo
69+ if [ -f " $CONDUCTOR_ROOT_PATH /.env" ]; then
70+ ln -sf " $CONDUCTOR_ROOT_PATH /.env" .env
71+ else
72+ echo " Warning: $CONDUCTOR_ROOT_PATH /.env not found."
73+ echo " Create it from .env.example: cp .env.example $CONDUCTOR_ROOT_PATH /.env"
74+ fi
75+
76+ # Install frontend dependencies
77+ deno install --node-modules-dir=auto --frozen
78+ ```
79+
80+ ### Superset
81+
82+ Superset exposes ` $SUPERSET_ROOT_PATH ` pointing to the parent repo.
83+ It creates a ` config.json ` at the repo root:
84+
85+ ``` json
86+ {
87+ "setup" : [
88+ " ln -sf \" $SUPERSET_ROOT_PATH/.env\" .env && deno install --node-modules-dir=auto --frozen"
89+ ],
90+ "teardown" : []
91+ }
1692```
1793
1894## Running the Application
@@ -53,26 +129,35 @@ task install # Install project dependencies via devbox
53129
54130``` bash
55131task tauri:dev # Run Tauri in development mode
132+ task tauri:dev:mcp # Run Tauri dev with MCP bridge for AI agent debugging
56133task tauri:build # Build Tauri app for current architecture
57134task tauri:build:arm64 # Build Tauri app for Apple Silicon
58135task tauri:build:x64 # Build Tauri app for Intel
59136task tauri:info # Show Tauri build configuration
137+ task tauri:doctor # Check Tauri environment
60138task tauri:clean # Clean Tauri build artifacts
61139```
62140
63- ### NPM Commands (` npm :` )
141+ ### Deno Commands (` deno :` )
64142
65143``` bash
66- task npm:install # Install npm dependencies
67- task npm:clean # Clean npm cache and node_modules
144+ task deno:install # Install dependencies via Deno (8x faster than npm ci)
145+ task deno:lint # Run Deno linter
146+ task deno:format # Format JS/TS code
147+ task deno:test # Run Vitest unit/property tests
148+ task deno:test:e2e # Run Playwright E2E tests
149+ task deno:dev # Run Vite dev server via Deno
150+ task deno:build # Build frontend via Deno (2.2x faster than npm)
151+ task deno:clean # Clean deno artifacts
68152```
69153
70154### Build Pipeline
71155
72156When running ` task build ` , the following happens automatically:
73157
74- 1 . ` npm:install ` - Install frontend dependencies
75- 2 . ` tauri:build ` - Build Rust backend and bundle with frontend
158+ 1 . ` deno:install ` - Install frontend dependencies
159+ 2 . ` cargo:install-sccache ` - Ensure sccache is available for build caching
160+ 3 . ` tauri:build ` - Build Rust backend and bundle with frontend
76161
77162## Raw Commands (Without Task Runner)
78163
@@ -82,7 +167,7 @@ deno install --node-modules-dir=auto --frozen # Frontend (8x faster than npm ci
82167cargo build # Rust backend
83168
84169# Fast syntax/type checking (no binary output, 2-3x faster than build)
85- cargo check --manifest-path src -tauri/Cargo.toml
170+ cargo check --manifest-path crates/mt -tauri/Cargo.toml
86171cargo check --all-features
87172
88173# Linting
@@ -130,9 +215,12 @@ rm -rf node_modules dist
130215| Package | Purpose |
131216| ---------| ---------|
132217| Tauri | Desktop application framework |
218+ | Deno | Package manager and runtime |
133219| basecoat | Design system (Tailwind CSS) |
134220| Alpine.js | Lightweight reactive framework |
135221| Tailwind CSS | Utility-first CSS |
222+ | Vitest | Unit and property testing |
223+ | fast-check | Property-based testing |
136224| Playwright | E2E testing |
137225| Vite | Build tool and dev server |
138226
@@ -142,9 +230,14 @@ rm -rf node_modules dist
142230| -------| ---------|
143231| tauri | Native system integration |
144232| rodio/symphonia | Audio playback |
233+ | souvlaki | Media key integration |
234+ | lofty | Audio metadata parsing |
145235| rusqlite | SQLite database |
236+ | r2d2 | Database connection pooling |
146237| serde | Serialization |
147238| tokio | Async runtime |
239+ | rayon | Parallel iteration |
240+ | tracing | Structured logging |
148241
149242### Adding Dependencies
150243
0 commit comments