fix(tmux): stop nested prefix keys and TUI Alt+digits from moving other clients

Docker and owned-remote tmux servers kept the stock prefix table, so Ctrl+Q
then )/(/s/w/L switch-client'd the inner client onto a sibling. Those create
chains now leave only C-q send-prefix.

codeman tui bound M-1..M-9 in the server-wide root table. The keys stay, but
switch-client runs only for the attaching client (tty plus a one-shot pid).
A browser tab's Esc-then-digit no longer jumps sessions, and a killed TUI
leaves a binding that matches no live client.

Co-authored-by: DDT <1786035110@qq.com>
This commit is contained in:
DDTandDDT committed 2026-10-23 07:41:46 +00:00
1 parent 002de32a08
commit daeea54495
14 files changed
+728 -62

No files matched your search

+6
View File
@@ -164,6 +164,12 @@ describe('COD-107 buildRemoteLaunchCommand — threads connection args', () => {
'set -s escape-time 0',
// COD-106 — shared/collaborative sizing, per-session scoped (never -g).
`set -t ${remoteName} window-size latest`,
// #671 — the nested server's prefix table is stock unless this chain
// reduces it. Ctrl+Q then ) would switch-client onto a sibling session.
// Before remain-on-exit: a remote tmux that rejects `failed` aborts the
// rest of the chain, and that option has to stay last.
'unbind-key -a -T prefix',
'bind-key -T prefix C-q send-prefix',
// #210 — keep a CRASHED pane for diagnosis. `failed` (not `on`, which would
// also strand a pane after a clean `exit`), and LAST because tmux aborts the
// remaining commands of a `\;` chain on error and `failed` needs tmux >= 3.2.