diff options
| author | Igor Soarez <igor@soarez.org> | 2026-10-23 13:20:11 +0300 |
|---|---|---|
| committer | Igor Soarez <igor@soarez.org> | 2026-10-23 13:20:11 +0300 |
| commit | c082f5044eedd2294d72f920d1018e40d73aab33 (patch) | |
| tree | 54420e9c0fcb366e8db776c9463c4530737704d7 /packaging | |
| parent | 0f06b0b15d6b064703fa1166fb8e7ceda209aaa8 (diff) | |
restore, step 2: resume agents, retype command lines
- the pi extension reports its session file; the daemon keeps it in the
pane option @agent_session, and snapshots carry it. restore runs
`pi --session <file>` in the rebuilt pane, one agent every 0.5s, then
reports which agents run and which were interrupted mid-turn.
- other panes: the command line running in them is typed at the new
prompt but not run. exactly as typed with the zsh hook (dingger install
zsh: preexec/precmd keep @dingger_cmd), else the foreground program's
exact argv from the kernel (KERN_PROCARGS2), shell-quoted.
- "at a prompt" is the pane's own shell owning the terminal's foreground
process group, not a name check: `sh -c ...` is a running program.
- an agent or command that exits keeps its place in snapshots for 60s, so
a shutdown that stops programs before tmux still restores them.
- typing waits for each new prompt (text typed earlier echoes twice).
e2e step 16 covers resume with a session path containing a space, the
interrupted report, an agent that exits just before the server dies, a
quoted command retyped not run, and the hook's text; dropping the grace
period, judging prompts by name, running retyped commands, or not storing
the session reference each fail it. the test's fake pi is guarded so a
real pi never starts.
Diffstat (limited to 'packaging')
0 files changed, 0 insertions, 0 deletions
