Thanks for your interest in contributing! This guide covers how to get from a clone to a merged pull request.
By participating, you agree to abide by our Code of Conduct. All documentation, code, comments, and commit messages in this repository are written in English.
csp is Rust-first (the workspace under crates/) with a thin JS toolchain for the npm wrapper and repo tooling. mise pins the tool versions (node, bun, and the hk git-hook manager); the Rust toolchain is pinned separately by rust-toolchain.toml.
git clone https://github.com/pleaseai/code-search.git
cd code-search
mise install # install pinned tool versions (node, bun, hk) and set up git hooks
bun install # install JS dependenciesIf you do not use mise, install the versions listed in mise.toml and rust-toolchain.toml manually, then run bun install. Rust builds use the standard cargo toolchain.
- Create a branch from
main(e.g.feat/short-descriptionorfix/issue-123). - Make focused changes — keep each pull request to one logical change.
- Run the checks below and make sure they pass.
- Open a pull request and fill out the template.
mise run lint # lint JS/TS (eslint)
mise run typecheck # type-check (tsc --noEmit)
mise run test # Rust tests (cargo test --workspace)
mise run check # full pre-commit gate: JS lint/typecheck + Rust fmt/clippy/testFor Rust changes, also run cargo fmt --all and cargo clippy --all-targets --all-features -- -D warnings (both are part of mise run check).
We follow Conventional Commits: type(scope): subject, where type is one of feat, fix, docs, refactor, test, chore, etc. Breaking changes include a BREAKING CHANGE: footer. Versioning and the changelog are generated automatically from these messages, so accurate types matter.
- Reference the issue your PR addresses (e.g.
Closes #123). - Use a Conventional-Commit-style PR title — it becomes the squash-merge commit.
- Make sure CI is green before requesting review.
Open an issue using the bug report or feature request template. For security vulnerabilities, do not open a public issue — follow SECURITY.md.