fix: v2.5.8 — the browser terminal attaches on Windows
node-pty on Windows looks the file it starts up on PATH exactly as given and
never adds `.exe`, so `tmux attach-session` started as a bare `tmux` failed
with "File not found" on every attach: the browser's terminal socket opened,
closed, and reconnected every 1.5 s.
- pty-attach.js: attachBinary names tmux by its full file name on Windows
(ai-tools.which("tmux"), else tmux.exe)
- websocket.js: an attach that throws is logged as `[WS] attach <run> failed`,
the one place that says why the terminal keeps reconnecting
This commit is contained in:
@@ -169,3 +169,17 @@ describe("pty-attach", () => {
|
||||
assert.equal(killed, true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("attachBinary on Windows", () => {
|
||||
it("names tmux with its extension — node-pty there never adds `.exe`", () => {
|
||||
// A bare `tmux` made node-pty answer "File not found" on every attach, so
|
||||
// the browser's terminal opened, closed and reconnected every 1.5 s.
|
||||
const saved = process.env.PATH;
|
||||
process.env.PATH = "";
|
||||
try {
|
||||
assert.equal(ptyAttach.attachBinary("win32"), "tmux.exe");
|
||||
} finally {
|
||||
process.env.PATH = saved;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user