You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Session browser — C-c C-r, /resume, or M-x pi-coding-agent-session-browser opens a persistent, disk-backed browser for recorded Pi sessions: grouped by time, searchable (/), sortable (s: threaded, recent, or relevance), scoped to the current project or all projects (t), filtered to named sessions (f), and renamable (r); RET switches to the session at point through the guarded resume flow. Browsing needs no running Pi process (#266)
Conversation tree browser — w in the main menu opens the conversation tree as persisted in the session file: every branch, where the live conversation currently sits, branch labels (l), tool filters (f), search (/), and refresh (g). Reading and labeling need no live process either (#266)
Branch navigation — RET on a tree node makes that branch the live conversation: a byte-preserving local rewrite of the session file followed by the normal resume flow. Changed-on-disk files, unversioned formats, and in-flight switches refuse with a message instead of half-working; over TRAMP the atomic rewrite is best-effort (#266)
Branch summaries in resumed histories — fork points in a resumed session render as their own Markdown sections instead of disappearing (#266)
Performance
No end-of-turn freeze from old tool output — finishing a turn no longer rewrites every completed tool block inside the process filter; older blocks are queued and cooled one at a time by short deferred callbacks that yield to pending input, keeping the chat responsive in tool-heavy sessions (#265)
Fast branch reordering on large histories — vector-indexed lines reorder a 100k-entry session in under a second where it previously took sixteen (#266)
Fixes
Consistent session-file parsing — every reader now applies one rule: the first nonblank line is the session header, matching Pi's own reader; files with stray blank lines or a byte-order mark before the header read consistently everywhere instead of failing navigation with a false "unreadable" error (#266)
Interruptible session scans — C-g during a disk scan reports the interruption instead of leaving the browser stuck on its loading screen, and switching refuses to start while another switch is in flight (#266)