feat(maestro): add daemon tmux/sidecar/worktree primitives
ci / rust (push) Failing after 3s

Local primitives for `maestrod`, no network code yet:

- `tmux`: subprocess wrapper around new-session, kill-session,
  list-sessions (filtered to maestro-*), send-keys -l, pipe-pane -o,
  resize-window, kill-server.
- `sidecar`: atomic JSON metadata store keyed by session UUID, with
  load_all for daemon restart recovery.
- `worktree`: `git worktree add -b` with collision-proof generated paths
  and `git worktree remove --force` for cleanup_on_kill.

Integration tests use real tmux (isolated via unique socket + temp
TMUX_TMPDIR) and real git (tmpdir repo).

Closes NAP-212.
This commit is contained in:
2026-05-24 13:02:41 +00:00
parent 777d246aab
commit 946aa384a0
11 changed files with 959 additions and 0 deletions
+3
View File
@@ -11,8 +11,11 @@ publish = false
[workspace.dependencies]
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
maestro-protocol = { path = "crates/maestro-protocol" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tempfile = "3"
thiserror = "1"
uuid = { version = "1", features = ["v4", "serde"] }
[profile.release]