Use these documents first:
- Run repository commands from the repository root.
- Use
npm run setupfor first-time setup. - The root
package.jsonis a task runner, not a place for a rootnode_modulestree. - Frontend dependencies belong in
src/node_modules. - Rust types are the source of truth for generated frontend bindings.
- Keep generated output out of Git:
src-tauri/gen,src-tauri/target,src/dist,src/coverage, andsrc/.axelateare disposable.
- Use
nightlyfor active development. - Keep
mainrelease-ready. - Send dependency update work to
nightly. - Create release tags only from commits that are ready to ship.
- Use squash merge for pull requests. Merge commits and rebase merges are disabled in the repository settings.
- Run
npm run verify. - If you changed Rust types exported to the frontend, run
npm run bindings:sync. - Keep commit messages in Conventional Commits format.
npm run setupinstalls Git hooks that enforce this. - Expect GitHub
Strict CIand CodeRabbit on pull requests targetingmainornightly. - Expect
Dependency Reviewonly when npm or Cargo dependency files change. - The protected branches do not require a second human approval right now because the project is maintained by a solo owner.
Strict CIis the required merge gate for protected branches.CodeQL,Dependency Review, and scheduledSecurity Auditworkflows provide additional security coverage without blocking every normal PR.- CodeRabbit reviews pull requests against
nightlyandmain; its feedback is advisory unless a concrete bug or risk is confirmed. - Dependabot security and dependency update pull requests target
nightly. - Secret scanning and push protection are enabled in GitHub repository settings.
- Read Releases before tagging.
- Tags must start with
v. - Tag versions must match
package.json,src/package.json, andsrc-tauri/Cargo.toml. - Release tags must point to a commit that is already reachable from
main. - Release tags matching
v*are protected against deletion and non-fast-forward updates. - Pushing a matching
v*tag triggers the GitHub release workflow.
These files should describe the repository as it works today:
README.mddocs/localization/en/GETTING_STARTED.mddocs/localization/en/DEVELOPMENT_WORKFLOW.mddocs/localization/en/RELEASES.mddocs/localization/en/CURRENT_STATE.mddocs/localization/en/TRUST_MODEL.md
These files are planning documents and should not be used as current feature inventory:
docs/localization/en/VISION.mddocs/localization/en/ROADMAP.md
Move future ideas into the planning documents instead of mixing them into current onboarding docs.
When a change affects secrets, local API tokens, filesystem paths, shell-open, process lifecycle, archive extraction, runtime folders, or integration trust, update the trust and integration docs in the same change. The docs should explain the boundary the code enforces, including failure cases around the happy-path command.