Repository navigation
v0.1.9 - amd64(x64)
pmux v0.1.9 Release Notes
π― Highlights
- tmux-style multi-client viewport sizing β multiple clients attached to
the same session now keep their own window sizes without constantly
redrawing the terminal for everyone. - Git dashboard popup viewers with diff minimap β commit details and
per-file diffs open in dedicated popup windows with line-level syntax
highlighting and a minimap band for change navigation. - Open Work Folder β open the active pane's working directory in the OS
file manager from the workspace toolbar.
πͺ Multi-Client Terminal Sizing (tmux model)
Previously, every client resize request resized the single ConPTY, so when
clients with different window sizes attached to the same session, the
terminal was redrawn over and over based on whichever client was active.
This release implements tmux's window-size largest semantics:
- Each pane keeps one canonical terminal size = the largest attached
client. The ConPTY is resized only when the canonical size changes
(a larger client attaches/resizes, or the largest client leaves). - Each client reports its own viewport size and renders the shared
screen as a top-left anchored viewport when its window is smaller
than the canonical size (a badge showsviewport WxH / CxR). - Switching focus between clients of different sizes no longer triggers a
redraw; only genuine canonical-size changes repaint the terminal. - A newly attached client always propagates its real viewport size to the
server (with retries), and clients that have not reported a size yet can
never collapse the session's terminal size. - New
pane-sizecontrol frames are sent before history replay on attach
and broadcast to all clients whenever the canonical size changes.
π Bug Fixes
- ConPTY resize actually happens now β the canonical-size bookkeeping
previously short-circuited the debounced resize call, leaving the real
terminal stuck at its old size until a manual refresh. - Tests can no longer overwrite your real config β removed the global
config-directory cache inpkg/configso test runs can never write test
data into~/.pmux/config.json, regardless of test order. - Canonical size can no longer collapse to zero when a client that has not
reported its viewport yet is attached.
π§ͺ Testing
- New canonical-size policy tests: largest-client growth/shrink, detach
re-sizing, invalid-resize guards,pane-sizebroadcast ordering, and a
regression test asserting the real ConPTY is resized end-to-end.
Full Changelog: v0.1.8...v0.1.9