Can Paseo preserve an in-flight Pi RPC turn across a daemon crash, and what mechanism would make that possible? Establish Pi RPC process and session ownership, stdin/stdout reconnect limits, event replay or buffering capabilities, and which state must survive outside the daemon. Distinguish direct reattachment from resuming the persisted conversation after losing the active turn.
Part of #1
## Question
Can Paseo preserve an in-flight Pi RPC turn across a daemon crash, and what mechanism would make that possible? Establish Pi RPC process and session ownership, stdin/stdout reconnect limits, event replay or buffering capabilities, and which state must survive outside the daemon. Distinguish direct reattachment from resuming the persisted conversation after losing the active turn.
Direct reattachment to an existing pi --mode rpc process is unsupported. Pi has one stdin/stdout owner, no attach endpoint, and no replay or acknowledgment protocol; native --session resume restores completed conversation history but cannot continue an in-flight provider request or tool execution.
Preserving an active turn across a Paseo daemon crash therefore requires a supervisor-owned reconnectable bridge that:
keeps Pi and both pipe directions alive while the daemon is absent;
sequences and buffers every Pi frame with cursor-based replay and acknowledgments;
fences command writers and daemon generations;
persists bridge identity separately from Pi's native session handle;
preserves active turn identity and pending extension UI requests;
distinguishes daemon disconnect from explicit close/archive; and
reports Pi or supervisor loss once as turn failure before allowing native conversation resume.
Research asset: Pi active-turn reattachment
Branch: research/pi-active-turn-reattachment
Commit: 30e7127aed0fbbd987e12fbe41a9238a93ebd1af
## Resolution
Direct reattachment to an existing `pi --mode rpc` process is unsupported. Pi has one stdin/stdout owner, no attach endpoint, and no replay or acknowledgment protocol; native `--session` resume restores completed conversation history but cannot continue an in-flight provider request or tool execution.
Preserving an active turn across a Paseo daemon crash therefore requires a supervisor-owned reconnectable bridge that:
- keeps Pi and both pipe directions alive while the daemon is absent;
- sequences and buffers every Pi frame with cursor-based replay and acknowledgments;
- fences command writers and daemon generations;
- persists bridge identity separately from Pi's native session handle;
- preserves active turn identity and pending extension UI requests;
- distinguishes daemon disconnect from explicit close/archive; and
- reports Pi or supervisor loss once as turn failure before allowing native conversation resume.
Research asset: [Pi active-turn reattachment](https://git.jb.codes/jb/paseo/src/branch/research/pi-active-turn-reattachment/goals/research/pi-active-turn-reattachment.md)
Branch: `research/pi-active-turn-reattachment`
Commit: `30e7127aed0fbbd987e12fbe41a9238a93ebd1af`
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #1
Question
Can Paseo preserve an in-flight Pi RPC turn across a daemon crash, and what mechanism would make that possible? Establish Pi RPC process and session ownership, stdin/stdout reconnect limits, event replay or buffering capabilities, and which state must survive outside the daemon. Distinguish direct reattachment from resuming the persisted conversation after losing the active turn.
Resolution
Direct reattachment to an existing
pi --mode rpcprocess is unsupported. Pi has one stdin/stdout owner, no attach endpoint, and no replay or acknowledgment protocol; native--sessionresume restores completed conversation history but cannot continue an in-flight provider request or tool execution.Preserving an active turn across a Paseo daemon crash therefore requires a supervisor-owned reconnectable bridge that:
Research asset: Pi active-turn reattachment
Branch:
research/pi-active-turn-reattachmentCommit:
30e7127aed0fbbd987e12fbe41a9238a93ebd1af