Contributing
Keep changes inside one concern, preserve the PTY execution model, and run the focused release gates.
Development loop
Terminal
npm install
npm run desktop:fast -- --launch
npm run typecheck
npm run scan:secretsBoundaries worth preserving
- The PTY remains the source of truth; do not create a parallel agent execution path.
- A new capability gets its own Rust module or React component.
- Unbounded filesystem, process, and network work stays off the async runtime and behind timeouts.
- Panics unwind instead of aborting the whole desktop process.
- Do not add analytics, crash beacons, license checks, or an unrequested network path.
Before opening a change
Release checks
npm run typecheck
npm test
node scripts/scan-secrets.mjs
cd desktop/src-tauri && cargo check --locked --all-targets