Architecture decision records
Each record states the context, the decision and its consequences. Records are numbered in the order they were accepted and are not rewritten once accepted; a later record supersedes an earlier one explicitly.
| # | Decision | Status | Date |
|---|---|---|---|
| 0001 | The Rust core owns all secret-management semantics | accepted | 2026-10-20 |
| 0002 | Encrypted SQLite vault with the key in the OS credential store | accepted | 2026-10-20 |
| 0003 | XChaCha20-Poly1305, Argon2id, random nonces | accepted | 2026-10-20 |
| 0004 | get_secret without a version returns the newest accessible version | accepted | 2026-10-20 |
| 0005 | Language SDKs only read | accepted | 2026-10-20 |
| 0006 | One binding technology per language | accepted | 2026-10-20 |
The records live in docs/adr/ in the repository.