- Rust via rustup; this repo pins the toolchain in
rust-toolchain.toml. - Node.js 20+ and npm 9+ (see
package.jsonengines). - For Lean: elan and Lake (used under
proof/lean/).
cargo fmt --all
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
cargo deny check # requires: cargo install cargo-deny
npm ci
npm run lint
npm run type-check
npm testOr run the aggregated script (POSIX shell):
./scripts/ci-lint.shOn Windows/PowerShell, use:
./scripts/ci-lint.ps1Next.js lives under platform/ui/. Root package.json scripts delegate there via scripts/run-in-platform-ui.mjs so npm run lint works from the repository root on Linux, macOS, and Windows.
cd proof/lean
lake buildRust integration tests under nlp/tests/ are gated behind --features legacy-integration-tests until they are refreshed for the current AWS SDK and fixtures:
cargo test -p nlp --features legacy-integration-testsIf cargo test fails on Windows with LINK : fatal error LNK1104 for a file under target/debug/deps/*.exe, this is typically a local file lock (antivirus/indexer/another process). Common mitigations:
- close running binaries and duplicate test processes
- add
target/to antivirus real-time scan exclusions - retry after
cargo clean - run tests in WSL if locks persist
For responsible disclosure of vulnerabilities, see SECURITY.md.
See docs/adr/ for decisions (Cargo workspace, CI layout, secrets, observability).
- Keep changes focused and tested (
cargo test --workspace,npm test). - Follow existing style; match formatting (
cargo fmt, Prettier/ESLint as configured). - For docs-only changes, still run at least
cargo clippy --workspace --all-targets -- -D warningsandnpm run lintbefore opening a PR.