aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-25 06:43:25 +0200
committerIgor Soarez <igor@soarez.org>2026-10-25 06:43:25 +0200
commit5fe10900102bb2e083f41ccafff25c4b3e378cd8 (patch)
tree0ac0b569875b35d0893e691e7c402495d8ecb3d1
parentb77427190408cbe3ebea5677cd67bce53e73f313 (diff)
roadmap: pi's status reports, dialogs, cancelled and failed runs, extended-keys
items from pi 1.0.4 to 1.4.0 worth using, and from testing pi 1.4. preview in agent search moves last.
-rw-r--r--ROADMAP.md47
1 files changed, 43 insertions, 4 deletions
diff --git a/ROADMAP.md b/ROADMAP.md
index 52bc837..835e6c1 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -5,7 +5,46 @@ In priority order.
1. ~~**Restore after a crash or shutdown.**~~ Done for pi and Claude Code
(see the README). Next, when used: other agents' session references
(codex, ...).
-2. ~~**Raise the right window.**~~ Done for Ghostty (see the README).
- Next, when used: Alacritty with several windows in one process.
-3. **Preview in agent search.** Show the last lines of the selected agent's
- pane (`tmux capture-pane`) beside the results.
+2. ~~**Raise the right window.**~~ Done for Ghostty (see the README),
+ tested live with several windows, one of them full screen on its own
+ Space, and from other apps. Next, when used: Alacritty with several
+ windows in one process.
+3. **pi's own status reports (OSC 7501, pi 1.1+).** pi reports `working`,
+ `blocked` (a dialog or login, with its kind and title), `done`, `error`
+ (with the error's first line) and `idle`, with the session name. tmux
+ drops these, but `tmux pipe-pane -O` sees them when pi runs with
+ `PI_PROGRAM_STATUS=1`. A first try showed every report, including a
+ confirm dialog's `state=blocked:kind=permission:msg=<base64 title>`. It
+ would fix item 4 and could replace the extension's state reports. It is
+ not specific to pi, so any agent that adopts the protocol would work
+ too. Open questions:
+ - A pipe for each agent pane is one process each, and tmux allows only
+ one pipe per pane.
+ - A pipe started after pi misses the reports sent before it.
+ - How to set `PI_PROGRAM_STATUS=1` for pi: the tmux global environment,
+ or the shell profile.
+4. **Blocked on a pi dialog.** While a pi confirm or select dialog waits
+ for you, dingger shows the agent as done, not blocked: pi tells
+ extensions nothing about its dialogs. Item 3 fixes this. Without it,
+ screen detection could match the dialog's key hint line ("enter select
+ ยท escape cancel").
+5. **Cancelled runs are not done.** Since pi 1.1, `agent_settled` says
+ whether the run was `aborted`. A run you cancel and then leave shows
+ as done, and dingger notifies you. The extension could report idle
+ for it, as pi's own reports do.
+6. **Failed runs.** pi 1.1 tells a run that ended with an error from one
+ that finished, and gives the error's first line. dingger shows both as
+ done. Design question: herdr has no such status; should a failure get
+ its own mark, its own sound, and the error in the panel and
+ notification?
+7. **The extended-keys warning.** pi warns at every start because tmux has
+ `extended-keys` off. Decide whether dingger's tmux snippet should turn
+ it on, or leave it to your tmux config: it changes how tmux passes
+ modified keys to every program.
+8. **Preview in agent search.** Show the last lines of the selected agent's
+ pane (`tmux capture-pane`) beside the results. Not yet.
+
+The rest of pi 1.0.4 to 1.4.0 (models, codemode, configuration schemas,
+clipboard, `/share`) does not touch dingger. pi 1.3's resumed sessions
+keep their active tools, so a restore brings those back too.
+`tests/pi-live.sh <pi>` checks a new pi release against dingger.