Skip to content

docs(adr): restart survival, shared panes and hook approvals (proposed) - #67

Open
chaodu-agent wants to merge 15 commits into
mainfrom
docs/adr-restart-survival
Open

chaodu-agent wants to merge 15 commits into
mainfrom
docs/adr-restart-survival

Conversation

@chaodu-agent

Copy link
Copy Markdown
Collaborator

Proposed ADR for restart survival (owner/front split), shared human/bot panes with arbitration, and hook-based approvals for Claude Code and Codex.

Refs #66 (related #4).

This is a proposed ADR awaiting the maintainer's decision on direction (open questions Q1-Q10 in section 11). It must not be merged yet.

Checks: docs only; cargo fmt --check on macmini passed.

Verification: docs only. Ran cargo fmt --check on macmini against a fresh rsync of the worktree: exit 0.
Ran: rsync of the worktree to macmini scratch, then cargo fmt --check (docs only): passed.
Drop owner-ctl.sock, managed-settings Claude recipe, no timer draft clear,
Linux-only dumpable scope, Codex guardrail caveat, capped screen-path refusal,
consistency and citation fixes.
Ran: cargo fmt --check on macmini (fresh rsync, docs only): rc=0.
Hook helper authenticates the server (SO_PEERCRED ancestor); full managed
settings sets for Claude and Codex; token/profile claims narrowed; exec-to-
prctl window stated as residual risk; draft clear, interrupt trade-off,
attach authn, coverage gaps, Q11/Q12, line numbers rechecked at 3aae51c.

Ran: rsync to macmini scratch, cargo fmt --check: pass (rc 0, docs only).
Bad reload no longer ends panes; exec-only front binary closes the pair-fd window; hook channel gets approval-capable pane check, 4 slots, pane-supplied summaries, owner-identity check and listener bounds; Claude enforcing set adds defaultMode, autoAllowBashIfSandboxed, disableAutoMode; attach authz via single authorize; proc_pid(5); front exec path and version skew.
Ran: cargo fmt --check on macmini (rsync'd worktree, docs only): OK.
Ran: rsync of the worktree to macmini scratch, then cargo fmt --check there (docs only): exit 0.
Merged origin/main (cd2e2cd) and refreshed cited lines. Single pair-fd
paragraph, Q4 left undecided with the invariant-preserving option, hooks
stated as pod-only, defaultMode citation corrected, subagent permissionMode
and argv allow-list noted, respawn rules split, Dockerfile 0711 added to P1.

Ran: cargo fmt --check on macmini (rsync'd scratch copy): exit 0.
Adds the operation-by-state table, one version-skew rule, escaped summary
rendering, owner-side screen-path refusal, non-blocking decision delivery,
Codex capped at advisory, Q1/Q4 reworded, citation fixes.
Ran: cargo fmt --check on macmini (rsync'd scratch dir): exit 0 (docs only).
Managed policy file ownership check (M1), SHA-256 digest, token retention in owner, remove_pane/start_pane rows, combined-state rule, 120 s cap in table, exit codes 3/4, SIGUSR2 blocked, allow-list attach re-render, audit ring backpressure, lease resume, citation labels.
Ran: cargo fmt --check on macmini (rsync scratch copy, docs only): exit 0.
… account

Rewrite to ~120 lines: herdr-style holder (PTYs, tail, meta) plus front (emulator, guard, #68, attach, lease, draft); hooks deferred; explicit non-goals; deletions with costs; open decisions Q1-Q6.
Checked: section refs (§1-§10, Q1-Q6) resolve; remaining mentions of owner/digest/receipts occur only in the deletion table; no other repo doc links the ADR. Docs only, nothing built.
…ed exit, restart paths, drop panes.json sweep)

Checked: gate findings 1-9 each mapped to an edit in sections 3, 3.1, 4, 7; no leftover panes.json sweep or turn-advance draft clear in the ADR; issues-draft updated to match. Docs only, nothing run.
…terim, geometry, query cost)

Checked: grep shows no leftover KillMode/AbandonProcessGroup guarantees in ADR or issues-draft; section refs (§3.1, §5, §8) unchanged and resolve. Docs only, nothing built.
…layed, turn_seq, exited kept in list, R3 partial, drop clients kind)

Checked: no leftover last_seq/kind/follow-up refs in ADR; issues-draft updated to match.
…s a human

Checked: edits confined to §3.1 Adoption; section refs unchanged; no same-account defenses added; issues-draft.md updated to match (outside repo).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant