Skip to content

v0.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Jul 21:19

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 -q handling, 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 -M border-resize pipeline, including realistic binding-command paths.
  • #71 — Fixed #{client_name} in attached binding/run-shell contexts and corrected show -gqv @option user-option filtering.
  • #72 — Implemented multi-client resize behavior, stale-client pruning, window-size / aggressive-resize behavior, and detach/resize hook coverage.
  • #73 — Fixed chained overlay rendering such as command-prompt -> choose-tree on 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-shell handling for classic powershell.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-file diagnostics and multiple missing paths.
  • Fixed queued/source-file parsing for compact flag clusters such as display-message -pt, set-hook -ga, and show-hooks -gpR.
  • Matched tmux pane-transfer defaults for join-pane, move-pane, and swap-pane, including {marked} fallback, same-window sizing, and swap-pane -d active-pane behavior.
  • Matched tmux resize-pane precedence for repeated directions, compact flags, trailing adjustment operands, and -x / -y composition 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.