Skip to content

psmux pre-#483-fix rc-0 no-op: gate the version and document the fallback ceiling #228

Description

@dracic

What

Both parked-trailer replay paths — the POSIX trailer in src/bmad_loop/adapters/tmux_base.py (_parked_trailer, switch-client -t "$ret" || switch-client -l) and the pwsh override in src/bmad_loop/adapters/psmux_backend.py — use a nonzero exit code to trigger the switch-client -l fallback. The Python side (BaseTmuxBackend.switch_client) does the same.

Per psmux/psmux#483 (upstream-final), psmux builds without the #483 fix exit 0 as a no-op when switch-client gets an unresolvable window/pane target. On those builds the fallback is structurally unreachable: the client silently stays parked in the ctl window with no feedback. #225 made the recorded target session-qualified, which resolves correctly on fixed psmux releases — but on pre-fix releases the rc-0 no-op ceiling remains, and the knowledge currently lives only in a CHANGELOG entry.

Suggested follow-ups

  1. Version gate: the psmux support gate (_LAST_UNSUPPORTED in psmux_backend.py) currently guards only the PID-kill bug. Once the psmux release carrying the #483 fix is known, bump it (or add a dedicated check) so affected builds are refused or warned about instead of silently misbehaving.
  2. Ceiling comment: a one-line note next to the pwsh trailer (and/or switch_client) — "pre-#483-fix psmux exits 0 on an unresolvable target, so the -l fallback cannot fire there" — keeps the limitation next to the code that has it.

Surfaced by a silent-failure audit during review of #225; documented there but unenforced in code.

Metadata

Metadata

Assignees

Labels

area:psmuxpsmux terminal-multiplexer backendblocked:upstreamWaiting on a change in another repositorybugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions