@@ -10,6 +10,35 @@ range may break in any release.
1010
1111### Added
1212
13+ - ** M5 (slice 5) — CLI agent auto-spawn + headless feature gate.** The two
14+ non-TUI M5 items, closing out the milestone.
15+ - ** Auto-spawn (PRD §7.3).** Any ` vault ` verb now starts ` vault-agent `
16+ itself when the socket is dead (missing file or stale, connection-refused
17+ socket — other errors, e.g. permissions, still surface directly). The CLI
18+ locates the agent via ` $VAULT_AGENT_BIN ` , then a ` vault-agent ` sibling of
19+ the ` vault ` binary, then ` $PATH ` ; starts it in its own process group
20+ (` --socket ` passed explicitly, stdin/stdout null, stderr appended to
21+ ` agent.log ` beside the socket in the 0700 runtime dir); and poll-connects
22+ until the agent accepts (2 s deadline, 25 ms interval), reusing the first
23+ accepted stream. Opt out per-call with the global ` --no-auto-spawn ` ;
24+ ` stop-agent ` never spawns (stopping a dead agent shouldn't start one).
25+ New ` vault-cli/src/spawn.rs ` module; the old "start the daemon with
26+ ` vault-agent & ` " hint remains only on the no-spawn paths.
27+ - ** Headless gate (PRD G6).** The ` vault ` bin now carries
28+ ` required-features = ["cli"] ` , making the documented server install
29+ literal: `cargo install --path crates/vault-cli --no-default-features
30+ --features cli` (pair with ` cargo install --path crates/vault-agent
31+ --no-default-features` to drop the clipboard's X11/Wayland tree). A new
32+ CI ` headless ` job builds both combos so the gate can't rot. README's
33+ Status and headless sections updated to match reality.
34+ - Known limitation: two racing CLI invocations can each spawn an agent; the
35+ second bind steals the socket path (the listener removes a pre-existing
36+ socket file) and the first agent is orphaned until its idle lock. Benign
37+ for the single-user posture; a flock around spawn is a possible follow-up.
38+ - Tests: binary-resolution precedence (override > sibling > ` $PATH ` ,
39+ empty override ignored), dead-socket error classification, and poll-loop
40+ behavior (picks up a late listener; gives up at the deadline).
41+
1342- ** M5 (slice 4) — TUI mutations: ` a ` add, ` e ` edit, ` d ` delete (confirm).**
1443 PRD §7.2's Mutation row goes live, completing the daily-driver loop (browse
1544 → search → reveal/copy → mutate) without falling back to the CLI. Pure TUI
0 commit comments