Contributing
Before you start
- Read the architecture so you know which layer your change belongs to.
- Keep the core headless. If your change needs Tauri or Clap, it belongs in an adapter.
- Do not add a plaintext credential path.
Ground rules
- The core stays headless.
node scripts/check-boundaries.cjsmust pass. - No password in the store. A test asserts the key is absent.
- No silent fallback. If the keyring is unavailable, fail; do not write a plaintext file.
- Document what is not implemented. Do not present planned features as released.
- Tests come with the change. A behaviour change without a test is not finished.
Commit messages
Use conventional commits:
text
feat(core): add ...
fix(store): ...
docs: ...
test: ...