RMUX 0.8.0
RMUX 0.8.0 is a compatibility and reliability release focused on tmux behavior, Windows attach stability, real-world config loading, SDK wait cancellation, mouse/input handling, and release-gate hardening.
Highlights
- Major tmux-compatibility pass across
source-file, pane/window commands, hooks, formats, resize behavior, mouse bindings, and queued commands. - Big Windows stability push: Ctrl-C/Ctrl-D, ConPTY, PowerShell/cmd shells, attach backpressure, mouse border resize, overlay chains, and portable package startup.
- SDK wait cancellation is now capability-gated and no longer blocks the shared transport when a wait is dropped.
- Config compatibility is much stronger for real public configs, including symlinked tmux config paths and oh-my-tmux/gpakosz-style fallback loading.
- Release gates now cover more of the previously-missed red tests:
rmux-server --lib, SDK wait tests, package smokes, Windows attach probes, and source/config matrices.
Upgrade notes
- The detached RPC frame envelope is bumped to wire version 3. After upgrading from 0.7.x, restart old daemons before using 0.8 clients or SDKs.
- RMUX does not ship a checked-in
.claude/project directory. The Claude skill is distributed through RMUX resources/install flow instead, by product decision.
Fixed / improved issues
- #56 — Windows Ctrl-C / Ctrl-D handling was hardened across attached clients,
send-keys, cmd, PowerShell, pwsh, Python, and ConPTY paths. - #65 — Added official Claude Code skill support through RMUX-managed resources/install flow, without committing
.claude/into the OSS tree. - #66 — Restored tmux-compatible root mouse behavior and improved macOS/Ghostty-adjacent mouse/render handling.
- #67 — Fixed symlinked tmux config fallback,
set -qhandling, gpakosz/oh-my-tmux startup compatibility, and source-file diagnostics. - #69 — Moved blocking Windows console writes behind a dedicated output queue and hardened attach backpressure so input/resize remain live.
- #70 — Fixed Windows
MouseDrag1Border/resize-pane -Mborder-resize pipeline, including realistic binding-command paths. - #71 — Fixed
#{client_name}in attached binding/run-shell contexts and correctedshow -gqv @optionuser-option filtering. - #72 — Implemented multi-client resize behavior, stale-client pruning,
window-size/aggressive-resizebehavior, and detach/resize hook coverage. - #73 — Fixed chained overlay rendering such as
command-prompt -> choose-treeon Windows. - #74 — Added/fixed
C-;/ Ctrl+Semicolon parsing and Windows console input handling. - #75 — Improved oh-my-tmux usage by fixing config fallback, nested source behavior, and tmux-compatible diagnostics.
- #76 — Fixed Windows
default-shellhandling for classicpowershell.exe, including unquoted Windows paths. - #77 — Hardened Windows helper/client shell handoff and CLI startup paths used by opencode-style interactive CLIs.
- #78 — Fixed cursor visibility/state restoration during attach repaint to avoid cursor flicker/jumps, especially in Ghostty-like redraw-heavy workflows.
Compatibility
- Matched tmux behavior for missing-path
source-filediagnostics and multiple missing paths. - Fixed queued/source-file parsing for compact flag clusters such as
display-message -pt,set-hook -ga, andshow-hooks -gpR. - Matched tmux pane-transfer defaults for
join-pane,move-pane, andswap-pane, including{marked}fallback, same-window sizing, andswap-pane -dactive-pane behavior. - Matched tmux
resize-paneprecedence for repeated directions, compact flags, trailing adjustment operands, and-x/-ycomposition across CLI, tiny, and source-file paths. - Fixed
split-window,new-window, and queued command precedence so CLI, source-file, bindings, hooks, and background shell paths agree. - Fixed
pane-exited,pane-died,pane-title-changed, and related lifecycle hook behavior. - Fixed copy-mode and mouse selection edge cases, including double-click dispatch races and quick drag-copy regressions.
- Improved format compatibility for tmux-style expressions, substitutions, quoting, boolean formats, and control-mode escaping.
- Consumed bracketed paste while in copy-mode instead of leaking pasted bytes into the underlying PTY.
Windows
- Hardened native Ctrl-C and Ctrl-D delivery for cmd, PowerShell, pwsh, Python, WSL, and synchronized panes.
- Improved ConPTY control-event handling and reduced host-dependent flakes in Ctrl-D probes.
- Fixed PowerShell default shell lifetime, including classic Windows PowerShell paths.
- Fixed attach output backpressure by isolating blocking console writes.
- Hardened Windows mouse input, mouse border resize, overlay chains, prompt cursor behavior, and terminal feature detection.
- Added package smokes for portable alias fallback, WinGet-like Links layouts, daemon startup, SDK smoke, and mouse-border smoke.
SDK / protocol
- SDK wait cancellation no longer keeps the transport blocked after a dropped wait.
- Two-phase armed wait acknowledgements are gated behind
sdk.waits.armed. - Detached RPC wire version is now v3 with explicit stale v1/v2 rejection.
- SDK daemon candidate resolution now prefers installed RMUX binaries before PATH fallback.
Packaging / CI
- Bumped release-facing versions to
0.8.0. - Added release gate coverage for
rmux-server --lib. - Added SDK wait-cancellation regression coverage.
- Strengthened Windows release/package gates, Unix archive install verification, package-manager smokes, and tiny/full helper layout checks.
- Added a Claude Code skill installer via
rmux claude install-skill, including backup protection for existing user skills, while keeping.claude/out of the repository and release package.