Commit a790a7c
committed
feat: session and tree browsers
Browse sessions and conversation trees in dedicated Emacs buffers,
replacing the old completing-read session picker. Both buffers stay
open alongside chat — no modal overlays.
Requires the dnouri/rpc-browsing-surface branch in pi-mono (not yet
on main). Adds magit-section as a package dependency.
Session browser (C-c C-r):
Find and switch sessions. Sort modes: threaded (shows fork
lineage with tree connectors), recent, relevance. Filter to
named-only, toggle current/all project scope, search with /.
Rename the active session with r (upstream only supports renaming
the current session). Right margin shows message count and age.
Tree browser (C-c C-p then w):
See the full branch structure of the current conversation. The
active path is highlighted; abandoned branches are dimmed. Five
filter modes cycle with f: no-tools (default), default, user-only,
labeled-only, all. RET navigates without summarizing; S prompts
for summary instructions then navigates with summarization.
C-c C-k aborts an in-flight summarization (sends
abort_branch_summary to the server). Label nodes with l,
search with /. Right margin shows labels.
Both buffers use magit-section for point-centric navigation and
action dispatch. ?/h opens a transient help menu in each buffer.
g refreshes from the server. q buries the buffer.
Other changes:
- render.el: display branchSummary messages in session history
(separator + full markdown, same pattern as compactionSummary);
scroll all chat windows to end after history reload.
- menu.el: remove resume-session and its disk-based helpers
(session-dir-name, list-sessions, format-session-choice).
- core.el: normalize-string-or-null now treats empty strings as nil.
- ui.el: C-c C-r rebound to session-browser; startup header updated.
- Tests moved from menu/input to browse-test.el where they belong.
119 browse-specific tests; 779 total, all green.1 parent 46677ca commit a790a7c
File tree
16 files changed
+3581
-339
lines changed- test
- fixtures
16 files changed
+3581
-339
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
| 65 | + | |
64 | 66 | | |
65 | 67 | | |
66 | 68 | | |
| |||
88 | 90 | | |
89 | 91 | | |
90 | 92 | | |
| 93 | + | |
91 | 94 | | |
92 | 95 | | |
93 | 96 | | |
| |||
117 | 120 | | |
118 | 121 | | |
119 | 122 | | |
| 123 | + | |
| 124 | + | |
120 | 125 | | |
121 | 126 | | |
122 | 127 | | |
| |||
229 | 234 | | |
230 | 235 | | |
231 | 236 | | |
232 | | - | |
| 237 | + | |
233 | 238 | | |
234 | 239 | | |
235 | 240 | | |
| |||
241 | 246 | | |
242 | 247 | | |
243 | 248 | | |
244 | | - | |
| 249 | + | |
245 | 250 | | |
246 | 251 | | |
247 | 252 | | |
| |||
255 | 260 | | |
256 | 261 | | |
257 | 262 | | |
| 263 | + | |
258 | 264 | | |
259 | 265 | | |
260 | 266 | | |
| |||
270 | 276 | | |
271 | 277 | | |
272 | 278 | | |
273 | | - | |
| 279 | + | |
274 | 280 | | |
275 | 281 | | |
276 | 282 | | |
| |||
0 commit comments