Skip to content

how to contribute development workflow

factory-droid[bot] edited this page Jul 5, 2026 · 1 revision

Development workflow

The local loop uses Bun for scripts, Cargo for Rust, Vite for the renderer, and Tauri for the desktop shell. Commands are declared in package.json.

Common loop

bun install --cwd frontend
bun run dev
bun run verify:fast

bun run dev enters src-tauri and runs cargo tauri dev. bun run verify:fast runs the checks most useful before a small commit: frontend typecheck, frontend lint, frontend tests, frontend dist guard, cargo fmt --all --check, and cargo clippy --workspace --all-targets -- -D warnings.

Data model changes

For a change to Session, Entry, Draft, Finding, Attachment, AI Run, or settings data:

  1. Update the relevant file under crates/qa-scribe-core/src/domain.
  2. Update persistence in crates/qa-scribe-core/src/storage/mod.rs or crates/qa-scribe-core/src/services/session_service.
  3. Update command registration or DTO exports in src-tauri/src/specta_bindings.rs if the bridge changes.
  4. Regenerate or check frontend/src/bindings.ts with bun run bindings:generate or bun run bindings:check.
  5. Update frontend wrappers in frontend/src/tauri.ts and frontend/src/tauriCommands.ts when command signatures change.

UI changes

Most UI changes start in frontend/src/app/AppShell.tsx, a view under frontend/src/views, or an action factory under frontend/src/app. Shared rich-record behavior lives in frontend/src/views/RichRecordView.tsx and frontend/src/views/RecordCollectionView.tsx.

See Patterns and conventions for naming, validation, and bridge patterns.

Clone this wiki locally