aboutsummaryrefslogtreecommitdiff
path: root/ROADMAP.md
blob: 8d9895c905005e54ac35ae34718fc99012283acd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Roadmap

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),
   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.**~~ Gone: the tmux config turns on
   `extended-keys` (format `csi-u`), which is all pi checks for. dingger's
   snippet leaves it to the tmux config.
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.