@@ -10,6 +10,41 @@ range may break in any release.
1010
1111### Added
1212
13+ - ** M5 (slice 4) — TUI mutations: ` a ` add, ` e ` edit, ` d ` delete (confirm).**
14+ PRD §7.2's Mutation row goes live, completing the daily-driver loop (browse
15+ → search → reveal/copy → mutate) without falling back to the CLI. Pure TUI
16+ slice: the agent's M4 write paths (` Request::Add ` / ` Edit ` / ` Remove ` ) are
17+ driven as-is — no protocol changes, no agent changes, no new dependencies.
18+ - ** Add (` a ` ).** A centered form overlay with a Type row (login ⇄ secure
19+ note, toggled with Space/←/→) over Name / User / Pass / URI / Folder /
20+ Notes (notes expose only Name / Folder / Notes). Tab/↓ and Shift-Tab/↑
21+ cycle fields (wrapping); Enter validates (name required) and submits;
22+ Esc discards. ** Ctrl+G in the Pass field** fills it with a fresh
23+ default-options password (PRD's "generate into the active field" story).
24+ Values typed under one type survive a toggle, but hidden login fields
25+ never leak into a secure-note submit.
26+ - ** Edit (` e ` ).** Same form, prefilled with the metadata the list already
27+ has (name / username / folder); type is fixed. Submit diffs against the
28+ prefill: untouched fields ride as "unchanged" on the wire (so an edit
29+ never re-encrypts a password it didn't see), a cleared field submits
30+ empty. The selected row's exact cipher id is the selector, so duplicate
31+ names can't mislead it. An edit with no changes is rejected in-form.
32+ - ** Delete (` d ` ).** A small confirm overlay (` Delete 'name'? y/N ` );
33+ ` y ` /Enter sends ` Request::Remove ` with the exact id, ` n ` /Esc backs out.
34+ - On success the vault reloads and a toast reports ` saved '…' ` /
35+ ` deleted '…' ` ; on any error the form stays open so nothing typed is lost.
36+ Opening any mutation overlay re-masks a revealed secret. The unfocused
37+ Pass field renders masked; form secrets are redacted in ` Debug `
38+ (` FormState ` / ` FormSubmit ` ).
39+ - Known deviation (tracked): PRD §7.2's full CUA bindings
40+ (Ctrl+C/X/V/Z/S/F) and bracketed paste in text inputs are deferred —
41+ fields accept typed input only this slice.
42+ - Tests: 11 new ` vault-tui ` units (form open/prefill/gating, focus wrap,
43+ type-toggle value preservation, Ctrl+G targeting, submit diff/validation,
44+ note-residue exclusion, confirm gating/take/cancel, overlay re-masking,
45+ ` Debug ` redaction) plus ` TestBackend ` smokes for the form overlay
46+ (masked unfocused Pass) and the confirm overlay.
47+
1348- ** M5 (slice 3) — TUI search, generator overlay, and ` : ` command line.** The
1449 three previewed keys go live: ` / ` filters the item list as you type, ` g `
1550 opens a password-generator overlay, and ` : ` opens a small vim-style command
0 commit comments