Repository navigation
Releases: xseman/pando
Releases · xseman/pando
Release list
v0.9.0
0.9.0 (2026-11-01)
Features
- cli: session send and keys wake an asleep session (bc51e1b)
- daemon: a worktree's shells move among each other, whatever their parent (0844ecc)
- daemon: sessions sleep after an hour by default (c16104b)
- ui: a + after the editor tabs opens a file or a session (dfcb69f)
- ui: a click on any Spaces project's name switches to it (5cbeccc)
- ui: a Customizations tab beside Sessions (3c38b76)
- ui: a double click past the tabs shows the welcome screen (38cc6ac)
- ui: a Spaces project's chevron under the pointer is raised as a button (43a58f1)
- ui: a tab held at the bottom's middle opens a row under all groups (d0af04d)
- ui: a worktree's sessions share its Terminal panel's shells (92c6216)
- ui: alt+a goes to the next session waiting on you (3eab59f)
- ui: alt+n opens the + beside the tabs, and the palette has it (16c60d7)
- ui: ctrl+shift+d deletes the line in the editor (484ff9f)
- ui: Resume Session in the + menu (7f4bdd2)
- ui: Spaces is called Sessions (90fb580)
- ui: the drawers sit under a TOOLS strip, as NO SESSIONS in Spaces (73cc994)
- ui: the empty area has the +, alt+s starts a session anywhere (5f38a7f)
- ui: the focused group's content is framed on every side (f858819)
- ui: the focused group's frame is drawn heavy (7d6c151)
- ui: the panel is framed apart and moves into the sidebars (c36992d)
- ui: the sidebar strips read in title case (7aca2a9)
- ui: tree chevrons are VS Code's codicon twisties with Nerd Font icons (d1930b9)
Bug Fixes
- daemon: asleep sessions keep their name (f973339)
- daemon: only an agent sleeps on its own (482cb93)
- daemon: Updated moves on real work, not on a redraw's flip (4eb1a40)
- lsp: inserts at one position keep the server's order (4dc3d21)
- ui: a long session name no longer drops its tab off the strip (690df0d)
- ui: a selected folded header with whitespace marks keeps its ⋯ (c11e09d)
- ui: a session dropped on a session joins its strip (8278c1e)
- ui: a session in a group without the keyboard keeps drawing (783f524)
- ui: a terminal's screen no longer fetches the other terminals (dfa6354)
- ui: an esc with a mouse report behind it stays an esc under tmux (df69687)
- ui: dimmed text is a color, not SGR faint (7f87f8f)
- ui: key hints say alt+, not M- (c3467c1)
- ui: output no longer resizes a session between two TUIs (867981d)
Performance Improvements
- ui: a file's indent guides are counted once per text (702e85a)
- ui: a frame takes what the last frame drew (0abc389)
- ui: a gutter's line number styles are built once per color pair (86efe6b)
- ui: a modal measures its items once, not on every frame (0f10cd0)
- ui: a screen event fetches only the terminals of its session (864971f)
- ui: keys typed into a modal draw it over the frame drawn once (f22b788)
Documentation
- demo: hero shows two sessions at work (846528f)
- demo: re-record every GIF with panel borders (6c0e20f)
- demo: re-record the GIFs after a frame by frame review (6f6e709)
- demo: record the tapes with panel borders (8ffbc36)
- keys: alt+n's row names the resumed session too (2cc3db8)
Build System
- deps: bubbletea v2.1.1, its renderer's flush about a quarter faster (99a4039)
Maintenance
- ui: pickers of sessions build their rows in sessionItems (4d314c2)
Testing
v0.8.0
0.8.0 (2026-10-29)
Features
- daemon: a first config picks nerd icons when a Nerd Font is installed (1f9c17e)
- font: install Symbols Nerd Font Mono from the nerd-fonts release (6618195)
- ui: a file or a session dragged out carries its tab under the pointer (505093e)
- ui: a folded Spaces project counts its sessions (efa1b62)
- ui: a Spaces project folds on its chevron only, its name switches to it (6e911e5)
- ui: a title starting with the session name's issue key replaces the name (f0f3b28)
- ui: drag an Explorer file or a Spaces session into editor groups (e7ef84b)
- ui: session tabs move among the files' tabs (2e88b39)
- ui: the harness picker lists the newest sessions' harnesses first (819b398)
- ui: the status bar offers a Nerd Font when none is installed (c5f04f2)
Bug Fixes
- daemon: an agent's screen says blocked where /proc is missing (a5e5227)
- ui: a lit group divider no longer panics on an empty frame list (eb93b32)
Performance Improvements
- ui: a drag draws only its overlays over a frame drawn once (4be9186)
- ui: mouse motion draws a frame per 1/60 s, not per motion (ffa44e9)
- ui: wcSafe line by line, a line the last frame had reused (fbdd830)
Testing
- font: the offer test installs into the platform's own font directory (052e646)
v0.7.0
0.7.0 (2026-10-28)
Features
- config: Spaces docks on the right by default (b357326)
- daemon: list codex, agy and grok subagents too (d91649c)
- list a claude session's running subagents in Spaces (9260c9d)
- ui: a double click on a divider evens the two groups beside it (36744e7)
- ui: a group added or closed shares the room evenly (87acc79)
- ui: a linked worktree's ✕ in Spaces on hover deletes it (b227a87)
- ui: a rule over No Sessions folded too (5bc05fc)
- ui: a search button in Spaces' header (6b5c8fd)
- ui: a session's ✕ in Spaces on hover kills it (c1fc850)
- ui: carry a dragged tab under the pointer, as VS Code does (2c263d7)
- ui: collapse or fold the Source Control drawers at once (2ce0cb8)
- ui: compare HEAD with a picked branch, tag or typed revision (e1d4d26)
- ui: ctrl+p and ctrl+shift+p reach their palettes from anywhere (1c0d1b5)
- ui: ctrl+w or ctrl+d closes a split's group showing nothing (2ae6a0a)
- ui: discard a folder's changes in Source Control (da68dd5)
- ui: editor groups in place of the docked session column (bf85723)
- ui: frame the focused group, pulse one whose session needs you (c82a617)
- ui: light a diff's hidden-lines row under the mouse (4603941)
- ui: n on the welcome screen starts a session (74146ef)
- ui: No Sessions lists its projects a dimmed row each (4186e1b)
- ui: session tabs in their Spaces glyph color (4fd03de)
- ui: show a tab's close button while the mouse is on it (ec7dba8)
- ui: Spaces holds a lone checkout on its heading, groups by state (db9cdc2)
- ui: Split Sessions in Spaces opens a worktree's sessions side by side (59fe12e)
- ui: tint session tabs apart from file tabs (d63e08b)
- ui: toggle comments in every language chroma colours (501a7e5)
- ui: w, a and 3 on the welcome screen do what its text says (351d9f6)
Bug Fixes
- daemon: a redraw under claude's idle prompt is not running (21c313e)
- daemon: a restart keeps a session's Updated (eab0e3e)
- proto: start the daemon in a systemd scope of its own (eecc07d)
- ui: a click on the session on screen keeps its tab (0474ebc)
- ui: a darker green for ok in the light theme (0d08c4e)
- ui: a session shown without a tab keeps one when another opens (1ebd5d2)
- ui: ctrl+/ comments a whole selection and takes it back (18626c7)
- ui: keep the folder picker's path readable without focus (49b3c12)
- ui: offer no split for a group's only tab dragged over its own group (b5a0fe4)
- ui: put the status bar's border right on the bar (da66fd8)
Documentation
- bring the docs in line with the last week's changes (2fecdfe)
- demo: a hero still with Spaces on the right, tui.gif in the tour (2367e5f)
- demo: hero with a file and a session side by side, groups.gif (66c44ce)
- demo: hero with the activity bar (8be7869)
- demo: re-record every GIF and the hero (76013bc)
- editor groups replace the session column (a4af052)
- skill: name sessions after the house style, branch or task (27dcee9)
Testing
v0.6.0
0.6.0 (2026-10-20)
Features
- config: put the activity bar down the sidebar edge by default (8e4ea57)
- daemon: keep named databases in config.toml's [databases] (6db19f0)
- daemon: keep pinned Spaces sessions in state.json (38f2fdb)
- daemon: put sessions to sleep and wake them (924d119)
- daemon: tell a screen's width and the directory in front (bbe71e6)
- db: read and edit SQLite, Postgres and MariaDB through their clients (f6b0fd8)
- git: blame one line of the editor's text (f6cabb6)
- git: list files by name pattern, ignored ones too (ecb6f44)
- keep a scrolled-back session page on its text (db3ff64)
- lsp: ask for hover, signature help and formatting (5d41bd0)
- open FILE:LINE:COL from the command line (6312f31)
- refuse a nested TUI inside a pando session (e52b3c1)
- run separate pando instances with --instance (292eeb6)
- show language servers' diagnostics (7a2cdca)
- ui: a bottom panel with Problems and Output; references inline (855d48b)
- ui: a prompt header and streaming results in Search (89e2c62)
- ui: add a Databases view and a table grid (375047f)
- ui: add a tooltips setting to turn the button tips off (22e71c0)
- ui: add projects from a folder picker (efb7503)
- ui: blame the cursor's line in the status bar (dbc1339)
- ui: describe binary files instead of their bytes (faed33c)
- ui: dock a session beside an empty editor (62ca895)
- ui: draw a border over the bottom Terminal panel (cd1f220)
- ui: draw a rule over each open Spaces project (c58f316)
- ui: draw indent guides in every tree (f748829)
- ui: draw indent guides in the editor (9bb7152)
- ui: draw indent guides in the Explorer tree (351f079)
- ui: draw the status bar's rule through the middle of a row (0432679)
- ui: drop New Tab in Session and the Spaces tab count (f0491e4)
- ui: expand a diff's hidden lines in place (32e9cb4)
- ui: fold code, light the cursor line, finer scrollbars (c5628d3)
- ui: format with the language server when no tool is set (d2bd5fd)
- ui: frame Spaces' Pinned as a resizable pane, under its worktrees (638dff9)
- ui: group context menus, square corners at the pointer (8e501d2)
- ui: indent as .editorconfig and the file's own lines say (58d7592)
- ui: keep a worktree's maximized session, file or Terminal across restarts (2ec4565)
- ui: keep each project's GitHub lists and fetch them again when old (c6210cb)
- ui: keep each session's own maximized state (210669d)
- ui: lay a GitHub pull request or issue out as its conversation (c4978d6)
- ui: lay the activity bar and status bar out as VS Code's (3d3e357)
- ui: leave scrolling to a session app that takes the mouse (440e0b5)
- ui: light status bar items and dialog buttons under the pointer (d2ae7ca)
- ui: light the Explorer's active indent guide (3fdf529)
- ui: Light+ code colors on a light terminal (f37fe1f)
- ui: mark a diff's changes on its scrollbar (9c319b1)
- ui: mark a file's changes on its scrollbar (af14a09)
- ui: mark changed lines in the editor's gutter, VS Code's quick diff (d74a808)
- ui: mark the session on screen in Spaces, untinted rows (5de0977)
- ui: mark what a picker's query matched, and say when nothing does (9b03964)
- ui: name an icon button and its key when the pointer rests on it (da5e520)
- ui: open a terminal's links with ctrl+click (bb9171e)
- ui: open the GitHub view with only pull requests unfolded (37e3e87)
- ui: pick the indentation in one dialog (a1a9d90)
- ui: pin sessions on top of Spaces (021d8c4)
- ui: resume a conversation from a worktree in Spaces (888c6fe)
- ui: resume from Spaces' header (b0337a7)
- ui: reveal the editor's file in Explorer (5e5299c)
- ui: rule the inline References off the code around them (ab56491)
- ui: say in the merge dialog when a pull request's checks fail (651060e)
- ui: sessions as tabs in the editor strip, dragged out to dock (7c46580)
- ui: set Spaces' Pinned apart by one heavy border, no resize (d9d641a)
- ui: Settings as a tab, a Manage menu under the gear and F10 (98c4d27)
- ui: show a cut session name whole in a tip (2ce07e6)
- ui: show a GitHub page's button tips by the pointer (1fbdc4f)
- ui: show an agent's state on a tab or terminal that runs it (7231ea7)
- ui: show the language server's hover and parameter hints ([43f2532](43f2532bcd558cd1ca1f9dc300e5...
v0.5.0
0.5.0 (2026-10-09)
Features
- a new session runs a terminal or an agent profile (612cec7)
- a session running a shell command shows as shell (d544a00)
- daemon: session.screen reports the cursor style the app asked for (b5c170c)
- pando builds and runs on Windows (#16) (20368fb)
- ui: ↑ and ↓ in the message box walk the commit messages (6554c42)
- ui: a + after a project's or a worktree's name starts a session (b020a1a)
- ui: a click away closes an empty filter (88c3e3a)
- ui: a click on a session row opens its tab with the news (aac7c1c)
- ui: a drawer commit shows its whole message on hover and copies it (e74a32e)
- ui: a file clicked open takes the preview tab until it is kept (1784579)
- ui: a file's diff shows the whole file with z (e9111c5)
- ui: a new branch's name is sanitized as VS Code does (e270e88)
- ui: a new session runs an installed agent, never a bare shell (fd0a4ff)
- ui: a session's Spaces row counts its tabs (b2256af)
- ui: a Spaces drag marks the drop with a tinted row between rows (4740bfd)
- ui: a Spaces drag marks where the row lands, moves it on release (7a7ff17)
- ui: a tab under the mouse tints in hover_bg (b614371)
- ui: an unfolded space goes last among the open ones (3863ceb)
- ui: draw session and terminal tabs like the editor's (ea0476c)
- ui: give the session's tab strip the buttons and a rule, drop its header (a233865)
- ui: give the Terminal panel's strip the buttons and a rule (540e6c9)
- ui: group the Spaces and session context menus by action (628fffa)
- ui: label the Spaces hover buttons (374910f)
- ui: light the Terminal's sash on the rule under its strip (8b2577a)
- ui: list recently opened files first in quick open (41f8d8c)
- ui: maximize a session stretched over the editor (7f6c6fe)
- ui: maximize the session or the file over the editor area (d36a69d)
- ui: raise the active tab's close button under the mouse (b603443)
- ui: sort Explorer files by type, from its menu or explorer_sort (6571271)
- ui: Source Control drawers stack like Spaces' projects (0bdfb5b)
- ui: Source Control's context menu comes in groups (405010f)
- ui: Spaces sorts projects manually or by their last output (2a7b2b7)
- ui: text boxes framed in a thin line, the accent while typing (84d8f89)
- ui: the Commit button greys out until something is staged (d8f8ec1)
- ui: the Compare drawer lists the files a commit or a pull request changed (200ca0a)
- ui: the Compare drawer's ✕ drops the comparison (23e01fb)
- ui: the cursor is the terminal's, in text boxes and sessions too (7b26e8b)
- ui: the message scramble settles once, then only its dots pulse (6f14f98)
- ui: the Settings modal groups its toggles under headings (e61ea0c)
- ui: tint the + button of the session and terminal strips on hover (dacf6aa)
- ui: VS Code style editor tabs, breadcrumbs and buttons in the strip (3504339)
Bug Fixes
- daemon: wait for a shell to be listed before handling its exit (7a58287)
- ui: a drawer line's menu leaves out View as Tree and Collapse All (36d9c18)
- ui: a selected session row pulses for its tab's new state (a8485b1)
- ui: each project keeps its own Compare drawer comparison (449fa09)
- ui: key hint columns fit their widest key and description (4b71e64)
- ui: only an agent's tab shows a status glyph (438cb16)
- ui: the commit message keeps its color without focus (fbf9008)
Documentation
- demo: re-record the GIFs with the new tabs, strips and breadcrumbs (f7c29f7)
- demo: run the demo's claude in a config directory of its own (75cd179)
- readme: lay the tour out as a two-column table of GIFs (fa4c1c3)
- readme: move install section before features (bb53ef8)
Maintenance
Testing
- the e2e session picks a harness of its own (9c5d84a)
v0.4.0
0.4.0 (2026-10-02)
Features
- daemon: a shell command under an agent reads running (d5844e5)
- daemon: session.move reorders a session's tabs (15d5f21)
- scm: Untracked Changes discards, deleting the files after asking (f1a9103)
- ui: a faint border parts the activity bar from the view (04ccf0f)
- ui: a folded project tops the folded list and unfolds to its place (1a3c67d)
- ui: a GitHub view where gh is installed (e73cc6c)
- ui: a narrow screen gives the session the editor area and keeps Spaces (e9c6fe3)
- ui: a pane header that resizes lights as a sash (ea920b5)
- ui: a scrollbar's slider shades under the pointer (27d17de)
- ui: drag a tab along its strip, dropped where a mark shows (26f515c)
- ui: folded projects sit on the Spaces panel's bottom edge (c42ba1d)
- ui: folded Spaces projects stay folded across restarts (988afee)
- ui: Move Tab Left / Right, for editors, session tabs and shells (8bf7d52)
- ui: questions ask with a row of buttons, as VS Code's dialog (9a940f4)
- ui: Sort Lines Ascending sorts the selected lines, or the file (ae2fa3c)
- ui: the active tab stands out of its strip (8bf2ce6)
- ui: the branch picker groups its matches, the best one first (232a8fc)
- ui: the open view's icon hides its sidebar, leaving the activity bar (baaff89)
Bug Fixes
- daemon: a background shell under an attached claude job reads running (e3ff97e)
- daemon: a claude permission prompt in a narrow column reads blocked (37dd157)
- daemon: a claude session with a live subagent reads running (18a08d1)
- daemon: a worktree a gone claude locked can be deleted (0a8d1f3)
- daemon: an agent run as its session resumes in place of a fresh one (3358680)
- daemon: session input reaches the app in the order it was sent (8e93c3b)
- ui: a second click on a session in Spaces leaves no row selected (eaa9a22)
- ui: ctrl+v pastes into a find box and every other text box (c64ecfe)
- ui: pgup and pgdn page a terminal's scrollback (00c59df)
- ui: pgup and pgdn page the Spaces and Search lists (35528b2)
- ui: the help lists alt+, alt+. for back and forward (bd3b678)
- ui: the Spaces selection stays on its session when the list re-sorts (7b49a3f)
Documentation
- a shorter README and a user guide, every doc terse with diagrams (c3b0cd0)
- demo: re-record the GIFs with every panel on the left (73a8f10)
- demo: record the GIFs light in a blue gradient, with a README still (09bfdae)
- re-cut the demo GIFs around what pando is for (dd87f64)
- skill: pass a message to another session, after proving the target (71b8402)
- trim the README, fix what went stale in docs/ (e6fbfc8)
v0.3.0
0.3.0 (2026-09-27)
Features
- claude resumes as a background session, in its own config dir (569d3cd)
- config: word_wrap setting (fba3d7d)
- daemon: icons default to ascii (2079022)
- every worktree keeps its own session column (cff757b)
- ui: a margin left of a file's line numbers (d17300a)
- ui: a session column dragged nearly off the screen closes (f4a50ce)
- ui: cut, copy and paste files in Explorer (867df4f)
- ui: double click selects a word, triple click the line (b40ec20)
- ui: drag a session within its worktree (ff20cde)
- ui: drag a worktree within its project (a1e5701)
- ui: editor_limit closes the least recently used tab (a2b469b)
- ui: editor.changeIndentation opens the Tab Size menu (76ab8d8)
- ui: find in a session's or the Terminal's scrollback (2c45c10)
- ui: horizontal scrollbar and a word wrap toggle in the editor (f7a0e12)
- ui: light a divider under a resting pointer (3c96500)
- ui: markdown_width caps rendered Markdown at 80 cells (a470d5e)
- ui: render_whitespace draws spaces and tabs (69652bc)
- ui: rendered Markdown in glow's layout (95c6bec)
- ui: sidebar list scrollbars drag as the editor's does (28e25af)
- ui: source control tints only the status letter, folders get a dot (cdd322b)
- ui: subtler line numbers, the cursor's line lit (25e239d)
- ui: text effects for names, counts and busy labels (cc329a7)
- ui: the status bar shows Ln, Col and sets the tab size (7e62ba3)
- ui: VS Code's context menu in Explorer (46cda74)
Bug Fixes
- daemon: a restart attaches to a background job it read half written (03cf08c)
- daemon: an attached session is named after its conversation (a6a0c77)
- ui: a Commit button with nothing to do is grey, not tinted (ef4cc79)
- ui: keep a terminal selection on its text as it scrolls (cd374f4)
- ui: keep the Terminal panel open or shut per worktree (047e683)
- ui: leave ctrl+j to a session or a shell (dbcb503)
Documentation
- re-record the markdown, edit, vim and tui demos (bec15ef)
- the icons need only Nerd Font glyphs, not a patched font (e1e34cd)
Testing
- daemon: give waitFor 15 s on a slow runner (526f94b)
v0.2.0
0.2.0 (2026-09-23)
Features
- daemon: attach to background jobs and keep a session's claude config (7735b9a)
- daemon: resume each session's own conversation (fb550e1)
- give every session its own terminal tabs (b0aea6c)
- name new worktrees at random, as herdr does (7522571)
- open every terminal in one configurable shell, falling back on bash (da59ea7)
- scm: continue a merge with git's prepared message (d4c0920)
- ui: add VS Code's scrollbar to the editor and terminals (ee92c13)
- ui: filter, sort and group Spaces sessions from a view menu (b3aab72)
- ui: frame the tabs of every strip (4b99378)
- ui: give every session tabs of its own, as herdr does (87b4920)
- ui: keep session tabs inside their space (6e7062c)
- ui: let the focused part own its keys, as VS Code's when clauses do (4d49dec)
- ui: multi-line commit message box with generate menu (8488e53)
- ui: pulse a session's tint until it is clicked (3a98759)
- ui: select and copy text in terminals by dragging (f3be4cc)
- ui: split Commit button hover and match the message box's ∨ to it (50c7eef)
- ui: tell a project's checkout from its worktrees in Spaces (c983061)
- ui: tint sessions that wait or finished unseen (a391031)
Bug Fixes
- daemon: resolve session names in focus (325cc4d)
- daemon: send modified special keys to the session (080dff4)
- daemon: stop an agent that lost its terminal before resuming (0426bc7)
- leave the scrollbar and the wheel to an app on the alternate screen (8bc089b)
- ui: attach the terminal panel to its shell at start (9d68885)
- ui: copy to the desktop's clipboard, not only through OSC 52 (83a9bd9)
- ui: keep a tab's width when it becomes active (15c034e)
- ui: keep the active tab on a narrow session strip (6c629a6)
- ui: keep the hover under a menu where the right click left it (4713395)
- ui: paste into a session docked in its own column (e9d1d08)
- ui: space out Source Control row buttons and widen their hover (368485c)