This repository has been archived on 2026-10-08 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
d23ee6a8b2a3f2e835f4116a42fa97ccd014ccb1
`Tmux::pipe_pane` used `tmux pipe-pane -o`, which tmux documents as "only open a new pipe if no previous pipe exists." When `maestrod` restarts and `SessionManager::recover` re-issues `pipe-pane` against the adopted tmux session, the previous daemon process's pipe to a now-orphan FIFO is still active — so `-o` makes the call a no-op. The revived manager's PtyBridge reads from a fresh FIFO that tmux never feeds, and attach clients see input land in the pane but no output flow back. Drop the `-o`. tmux closes any existing pipe before opening the new one, which is what `pipe_pane` callers always wanted: `create` runs on a fresh session (nothing to clobber), `recover` actively needs the clobber. Test: `recover_re_pipes_pane_so_output_reaches_subscribers` creates a bash session under one manager, drops it, recovers under a second manager, sends keys, and asserts the echo bytes reach a fresh subscriber within 5s. Fails before the fix (stale pipe), passes after. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
No description provided
13 MiB
Languages
Rust
62.2%
TypeScript
22.6%
Kotlin
9.7%
CSS
4.4%
Nix
0.5%
Other
0.5%