M9c — PTY-host true zero-disruption agent survival
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
- Área
- cli, operating-systems
Línea de trabajo
Lee primero docs/superpowers/specs/2026-08-02-clowder-m9-agent-survival-design.md §M9c y luego inspecciona crates/clowder-daemon/src/pane.rs y la infraestructura de Screen::snapshot() de #52. Define el protocolo de PTY-host y fd-passing antes de la implementación. Se considera terminado cuando un agente, su proceso, el scrollback y las shells auxiliares sobreviven al cierre y relanzamiento del daemon sin volver a generarse.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 0
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de richardcase/clowder
-
documentation priority: medium
Dificultad 2/5 Medio día Aptitud para principiantes 82/100
richardcase/clowder#143 ·
-
enhancement github_actions priority: medium rust
Dificultad 4/5 3-5 días Aptitud para principiantes 65/100
richardcase/clowder#142 ·
-
github_actions priority: medium
Dificultad 3/5 1-2 días Aptitud para principiantes 78/100
richardcase/clowder#141 ·
-
bug priority: medium
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
richardcase/clowder#140 ·
-
bug priority: medium
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
richardcase/clowder#139 ·
Todos los issues de richardcase/clowder
Issues similares
-
An EXE started from the shell with MAXALLOC FFFFh leaves a 0-paragraph free block after its ownAbiertobug low-priority
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
dividebysandwich/rust-dos#629 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
eliasstravik/herdr-projects#758 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
enhancement needs:sonnet ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día