M9c — PTY-host true zero-disruption agent survival
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- rust
- Ambito
- cli, operating-systems
Direzione di ricerca
Leggi prima docs/superpowers/specs/2026-08-02-clowder-m9-agent-survival-design.md §M9c, poi esamina crates/clowder-daemon/src/pane.rs e il substrate di Screen::snapshot() da #52. Definisci il protocollo PTY-host e fd-passing prima dell’implementazione. Il lavoro è completato quando un agent, il suo processo, lo scrollback e le shell companion sopravvivono all’arresto e al rilancio del daemon senza respawn.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
Agent survival shipped in two slices this cycle:
- M9a (#50) — durable
agents.jsonregistry, reconcile-on-startup, adapter session-resume (claude --continue). Agents re-spawn in their worktree after a daemon restart. - M9b (#51) — full split-layout restore (companion shells rebuilt in the same arrangement).
M9c is the deferred capstone: true zero-disruption survival. Today a restart re-spawns each agent (fresh process; the prior conversation is only recovered via the adapter's own resume, and scrollback/companion output is lost). M9c makes agents — and their scrollback and running processes — survive a daemon restart with no re-spawn at all.
Design (already written)
docs/superpowers/specs/2026-08-02-clowder-m9-agent-survival-design.md §M9c (DEFERRED — design only):
A persistent PTY-host process owns the agent PTYs + child processes + recent backlog and outlives the daemon. The daemon becomes a client of it: on restart the daemon re-attaches to the still-running agents (PTY master fds handed over via
SCM_RIGHTSfd-passing over a unix socket), so agents — and their scrollback — survive with zero disruption.
This splits today's daemon into a small, rarely-restarted PTY-server + the churny restartable control-daemon.
Scope (big — its own spec → plan → SDD cycle)
- New PTY-host component + an fd-passing protocol (
SCM_RIGHTSover a unix socket). - Backlog/scrollback ownership moves to the host (the daemon's current in-memory backlog becomes the host's).
- Child reaping in the host (not the daemon).
- Suppress the current triple-kill on the daemon side (SIGHUP-on-master-drop +
Drop for Pane+shutdown()explicit kill — seecrates/clowder-daemon/src/pane.rs), so agents aren't killed when the daemon exits. Screen::snapshot()(from the VT-grid milestone, #52) is a ready substrate for the recent-screen restore.
Acceptance
A running agent survives a daemon kill + relaunch with its process, scrollback, and companion shells intact — no re-spawn, no lost conversation — and the app reconnects to the still-live session.
- Lingua principale
- Rust
- Stelle
- 0
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di richardcase/clowder
-
documentation priority: medium
Difficoltà 2/5 Mezza giornata Idoneità per principianti 82/100
richardcase/clowder#143 ·
-
enhancement github_actions priority: medium rust
Difficoltà 4/5 3-5 giorni Idoneità per principianti 65/100
richardcase/clowder#142 ·
-
github_actions priority: medium
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
richardcase/clowder#141 ·
-
bug priority: medium
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
richardcase/clowder#140 ·
-
bug priority: medium
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
richardcase/clowder#139 ·
Tutte le issue di richardcase/clowder
Issue simili
-
An EXE started from the shell with MAXALLOC FFFFh leaves a 0-paragraph free block after its ownApertabug low-priority
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
dividebysandwich/rust-dos#629 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
eliasstravik/herdr-projects#758 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
enhancement needs:sonnet ready-for-agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno