Edit on GitHub

Contributing

Thanks for looking. Diarist is a small project with a few firm rules.

The rules

Setting up

Prerequisites, build, test and run commands are in docs/DEV.md. In short, from the repository root:

cargo build --workspace
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
cd apps/desktop && bun install && bun run build && bun run check

All of these must pass on every commit. Tests that need a GPU, the runtime, models or audio devices are skipped unless their environment variables are set (docs/DEV.md, "Gated tests").

Run the app against a scratch data folder so you never touch your real transcripts:

set DIARIST_DATA_DIR=%TEMP%\diarist-dev
bun run tauri build --debug --no-bundle
target\debug\diarist.exe

Changing types the UI sees

TypeScript types in apps/desktop/src/lib/generated/ are generated from Rust by ts-rs when the diarist-core tests run. Change the Rust type, run cargo test -p diarist-core, commit both. Never edit the generated files.

Pull requests

Reporting problems

Open an issue with what you did, what happened and what you expected. Paste the output of Diagnostics, Copy diagnostics: it lists versions, the GPU and driver, the selected models with hashes, the checklist and the last engine errors, and no transcript text.

By contributing you agree that your contribution is licensed under the MIT licence of this repository.