Git hooks and commits
Pre-commit hooks
.pre-commit-config.yaml runs the same checks CI runs. It works with both prek (the Rust drop-in) and pre-commit. Install the hooks once per clone:
sh
prek install # or: pre-commit installThe config installs both the pre-commit and the commit-msg hook. To run every hook against the whole tree:
sh
prek run --all-files| Hook | What it runs |
|---|---|
cargo-fmt | cargo fmt --all --check |
cargo-clippy | cargo clippy --all-targets --all-features -- -D warnings |
cargo-nextest | cargo nextest run --workspace --all-features |
cargo-check-wasm | cargo check of the core for wasm32-unknown-unknown with rt-wasm |
ruff, ruff-format, pyright | the Python crate |
oxlint, oxfmt, tsc | TypeScript (oxfmt also JSON, TOML, YAML) |
markdownlint | all Markdown |
commitlint | the commit message (commit-msg stage) |
The hooks expect the local development prerequisites, bun install at the root and uv sync in crates/rusty-harness-py/.
Commit messages
Commits follow Conventional Commits, enforced by commitlint with @commitlint/config-conventional:
text
feat(core): add the agent loop
fix(py): release the GIL in hello_sync
chore: bump wasm-bindgenThe type matters: release-plz derives the next version and the changelog from it (feat bumps the minor version, fix the patch, a ! or BREAKING CHANGE: the major).