Skip to content

v1.29.1

Choose a tag to compare

@pchalasani pchalasani released this 02 Oct 12:07
· 2 commits to main since this release

tmux-cli: remote sessions are created only when you actually need one

A patch release focused on the remote tmux-cli controller.

Fixed

Remote status and preflight no longer create a tmux session (#213).
Previously, any remote command — including read-only ones like status —
would bring a managed tmux session into existence as a side effect. Querying
the state of a remote host now leaves that host untouched: the managed session
is created only when launch genuinely needs a window to put a program in.
Explicit full targets continue to work with no managed session at all.

Stale cached targets after a window is killed (#213). Reviewing the change
above surfaced a related bug: when a long-lived controller killed the window
that launch had just returned, the cached target survived the kill and later
commands could resolve to the wrong window — or to a recycled tmux ID that
tmux had since handed to something else entirely. Window aliases (returned
target, window index, and pane ID) are now resolved before the cache is
cleared, and a cached ID is accepted as a default target only when it is still
a member of the exact managed session and still carries the ready marker. A
session whose name merely shares a prefix with the managed one is no longer
mistaken for it.

Covered by new real-tmux regression tests exercising lazy status, launch,
send, explicit and implicit capture, cleanup, server restart on a private
socket, and each alias form after window removal.

Credits

Thanks to @noho (Leo Liu) for the original contribution in #212, whose
commits are carried over in #213 with author credit preserved.

Full changelog: v1.29.0...v1.29.1