|
12 | 12 | | Posture | Personal / Hobby (Standard §5) | |
13 | 13 | | Standard | The Spacecraft Software Standard v1.12 | |
14 | 14 | | Document state | Draft v0.1 | |
15 | | -| Last updated | 2026-06-01 | |
| 15 | +| Last updated | 2026-06-16 | |
16 | 16 |
|
17 | 17 | ## 1. Summary |
18 | 18 |
|
@@ -251,24 +251,29 @@ vault/ |
251 | 251 |
|
252 | 252 | Vault is "v0.1 done" when: |
253 | 253 |
|
254 | | -1. A user can install (`cargo install vault`), `register`, `login`, `sync`, and reach `vault get` end-to-end against both bitwarden.com and a Vaultwarden test container. |
255 | | -2. The TUI sustains daily-driver use for the maintainer for two consecutive weeks without a blocker. |
256 | | -3. `cargo audit`, `cargo deny`, `cargo fmt --check`, `clippy -D warnings`, and the integration suite pass on every PR. |
257 | | -4. Fuzz harness for the EncString parser has run ≥ 24 h with no findings. |
258 | | -5. README, NOTICE, CONTRIBUTING, CREDITS, and CHANGELOG are present and accurate; §13.2 attribution block appears in `--version`, `--help` footer, README, and TUI About screen. |
| 254 | +1. A user can install (`cargo install vault`), `register`, `login`, `sync`, and reach `vault get` end-to-end against both bitwarden.com and a Vaultwarden test container. — **✅ capability complete** (CLI flow + `docs/m2-vaultwarden.md`); the final live confirmation against both servers is a maintainer step. |
| 255 | +2. The TUI sustains daily-driver use for the maintainer for two consecutive weeks without a blocker. — **⏳ operational** (maintainer attestation pending). |
| 256 | +3. `cargo audit`, `cargo deny`, `cargo fmt --check`, `clippy -D warnings`, and the integration suite pass on every PR. — **✅ done** (CI enforces all five on every PR). |
| 257 | +4. Fuzz harness for the EncString parser has run ≥ 24 h with no findings. — **⏳ harness built** (`fuzz/`, `docs/fuzzing.md`); the ≥ 24 h soak is pending. |
| 258 | +5. README, NOTICE, CONTRIBUTING, CREDITS, and CHANGELOG are present and accurate; §13.2 attribution block appears in `--version`, `--help` footer, README, and TUI About screen. — **✅ done**. |
| 259 | + |
| 260 | +**Status (2026-06-16): code complete.** Remaining for the `v0.1.0` tag are the |
| 261 | +operational gates above — the two-week daily-driver (2), the ≥ 24 h fuzz soak |
| 262 | +(4), and a live PQC handshake test (§12 M7) — after which the tag is cut per |
| 263 | +[`RELEASING.md`](RELEASING.md). |
259 | 264 |
|
260 | 265 | ## 12. Milestones |
261 | 266 |
|
262 | | -| Phase | Deliverable | Gate | |
263 | | -| ----- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | |
264 | | -| M0 | Workspace skeleton, posture files, CI (fmt/clippy/audit/deny), signed commits verified | Empty `vault --version` returns Standard §13.2 attribution block | |
265 | | -| M1 | `vault-core` + `vault-store`: parse Bitwarden export JSON, decrypt offline | Round-trip an exported vault locally | |
266 | | -| M2 | `vault-api`: login + sync against Vaultwarden in a test container | `vault sync` populates encrypted cache | |
267 | | -| M3 | `vault-agent` + IPC + `vault unlock` / `lock` / `get` / `list` | `rbw` parity for read paths | |
268 | | -| M4 | CLI write paths (`add` / `edit` / `remove` / `generate`) with `--json` on every command | Scripts drive Vault end-to-end | |
269 | | -| M5 | `vault-tui` MVP: list / detail / search / copy / generate | Daily-driver usable in a terminal | |
270 | | -| M6 | Vim layer, theme loader, accessibility toggles | §8 / §9.1 / §11 boxes ticked | |
271 | | -| M7 | PQC transport feature flag, hardening pass, EncString fuzz harness | `v0.1` tag | |
| 267 | +| Phase | Deliverable | Gate | Status | |
| 268 | +| ----- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ------ | |
| 269 | +| M0 | Workspace skeleton, posture files, CI (fmt/clippy/audit/deny), signed commits verified | Empty `vault --version` returns Standard §13.2 attribution block | ✅ | |
| 270 | +| M1 | `vault-core` + `vault-store`: parse Bitwarden export JSON, decrypt offline | Round-trip an exported vault locally | ✅ | |
| 271 | +| M2 | `vault-api`: login + sync against Vaultwarden in a test container | `vault sync` populates encrypted cache | ✅ | |
| 272 | +| M3 | `vault-agent` + IPC + `vault unlock` / `lock` / `get` / `list` | `rbw` parity for read paths | ✅ | |
| 273 | +| M4 | CLI write paths (`add` / `edit` / `remove` / `generate`) with `--json` on every command | Scripts drive Vault end-to-end | ✅ | |
| 274 | +| M5 | `vault-tui` MVP: list / detail / search / copy / generate | Daily-driver usable in a terminal | ✅ | |
| 275 | +| M6 | Vim layer, theme loader, accessibility toggles | §8 / §9.1 / §11 boxes ticked | ◑ vim + accessibility toggles done; runtime theme loader not implemented (out of scope for v0.1 — the palette ships as `vault-theme` tokens) | |
| 276 | +| M7 | PQC transport feature flag, hardening pass, EncString fuzz harness | `v0.1` tag | ◑ PQC flag ✅ / hardening (core dumps + ptrace + mlock) ✅ / fuzz harness ✅; `v0.1` tag pending the operational gates in §11 | |
272 | 277 |
|
273 | 278 | ## 13. Risks and open questions |
274 | 279 |
|
|
0 commit comments