Skip to content

psmux 3.3.8: attended console pass for the client-movement paths, then rebase switch_client's verdict source #659

Description

@dracic

Follow-up to #222, carrying its F8/F9 half per the closure proposal. The grammar half of every item below is already green on psmux 3.3.8 (66cf613) (smoke tables, §2/§8); what is unproven is only the client-movement half, because a detached probe registers no client (#{session_attached} stayed 0 through a backgrounded psmux attach). This needs a human at a real console on Windows 11, with the #658 floor bump in place.

F8 — the attended pass (blocks F9)

  • switch-client -t %N same-session lands on the originating pane, through our parked-window trailer end-to-end
  • the trailer's switch-client -l fallback actually returns the client
  • switch-client -l across psmux's per-session servers: does "last session" survive the server hop? (3.3.8 made -l per-client and rc-1-on-no-last-session — psmux#566 — but cross-server movement was never live-verified)
  • cross-session switch-client -t =bmad-loop-ctl:<win> lands on that window, not the session's active one
  • whichever return-target form Parked-window return target is a bare pane id — unresolvable cross-session on psmux (one server per session) #221 landed, verified live ctl-session → user session

F9 — switch_client's same-session residue (needs F8's measurements first)

With psmux#483 live, a same-session move is real but produces zero #{session_attached} delta, so TerminalMultiplexer.switch_client returns False deterministically — tui/launch.py then records ATTENDED for a client that did leave, and a later --repeat cycle calls input() in a window nobody is viewing.

Proposed shape, to confirm against F8's measurements before writing it: at ≥3.3.8 take switch-client -t's exit code as the verdict (meaningful in the failure direction since psmux#483/#555/#558; it is what the parked trailer already does), and keep the #{session_attached} delta probe for -l and detach-client, where rc still proves dispatch, not effect (test_premise_client_verbs_exit_zero_with_no_client_to_move is green on 3.3.8).

Out of scope

The headless removals and doc pass — #658. If the psmux/psmux#580 question opens the pane store to user @ keys in a future tag, retiring the @opt_@N substitute becomes a separate follow-up with its own tag gate, not part of this issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:psmuxpsmux terminal-multiplexer backendarea:tuiTextual TUIenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions