Skip to content

Commit 98217de

Browse files
docs (development.md): fix outdated instructions, add worktree setup
- Replace `npm install` with `task deno:install` in initial setup - Add worktree setup section for Conductor and Superset orchestrators - Replace NPM Commands section with Deno Commands (`deno:*` namespace) - Fix build pipeline to reference `deno:install` instead of `npm:install` - Fix cargo check path (`src-tauri/` -> `crates/mt-tauri/`) - Add `tauri:dev:mcp` and `tauri:doctor` to Tauri Commands - Add missing frontend deps (Deno, Vitest, fast-check) - Add missing backend deps (souvlaki, lofty, r2d2, rayon, tracing) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 9cc1188 commit 98217de

1 file changed

Lines changed: 100 additions & 7 deletions

File tree

docs/development.md

Lines changed: 100 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,83 @@ mise install
1212
cp .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
55131
task tauri:dev # Run Tauri in development mode
132+
task tauri:dev:mcp # Run Tauri dev with MCP bridge for AI agent debugging
56133
task tauri:build # Build Tauri app for current architecture
57134
task tauri:build:arm64 # Build Tauri app for Apple Silicon
58135
task tauri:build:x64 # Build Tauri app for Intel
59136
task tauri:info # Show Tauri build configuration
137+
task tauri:doctor # Check Tauri environment
60138
task 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

72156
When 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
82167
cargo 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
86171
cargo 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

Comments
 (0)