dsh-ssh-tui 0.5.10 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.en.md +27 -4
  2. package/README.md +71 -6
  3. package/lib/attach.js +156 -0
  4. package/lib/attach.js.map +1 -0
  5. package/lib/commands.js +73 -0
  6. package/lib/commands.js.map +1 -0
  7. package/lib/diag.js +292 -0
  8. package/lib/diag.js.map +1 -0
  9. package/lib/dialogs.js +82 -0
  10. package/lib/dialogs.js.map +1 -0
  11. package/lib/display-sock.js +276 -96
  12. package/lib/display-sock.js.map +1 -1
  13. package/lib/dsh-compat.js +25 -4
  14. package/lib/dsh-compat.js.map +1 -1
  15. package/lib/i18n/en.js +55 -0
  16. package/lib/i18n/en.js.map +1 -1
  17. package/lib/i18n/index.js +2 -0
  18. package/lib/i18n/index.js.map +1 -1
  19. package/lib/i18n/zh.js +55 -0
  20. package/lib/i18n/zh.js.map +1 -1
  21. package/lib/index.js +75 -85
  22. package/lib/index.js.map +1 -1
  23. package/lib/paint.js +20 -56
  24. package/lib/paint.js.map +1 -1
  25. package/lib/picker.js +152 -37
  26. package/lib/picker.js.map +1 -1
  27. package/lib/rows.js +120 -0
  28. package/lib/rows.js.map +1 -0
  29. package/lib/session-index.js +4 -1
  30. package/lib/session-index.js.map +1 -1
  31. package/lib/session-list.js +372 -167
  32. package/lib/session-list.js.map +1 -1
  33. package/lib/session-lock.js +20 -9
  34. package/lib/session-lock.js.map +1 -1
  35. package/lib/stats.js +136 -0
  36. package/lib/stats.js.map +1 -0
  37. package/lib/terminal-input.js +470 -0
  38. package/lib/terminal-input.js.map +1 -0
  39. package/lib/tui.js +252 -311
  40. package/lib/tui.js.map +1 -1
  41. package/lib/types/attach.d.ts +106 -0
  42. package/lib/types/commands.d.ts +103 -0
  43. package/lib/types/diag.d.ts +78 -0
  44. package/lib/types/dialogs.d.ts +79 -0
  45. package/lib/types/display-sock.d.ts +49 -3
  46. package/lib/types/dsh-compat.d.ts +7 -0
  47. package/lib/types/i18n/index.d.ts +4 -0
  48. package/lib/types/index.d.ts +8 -4
  49. package/lib/types/paint.d.ts +6 -5
  50. package/lib/types/picker.d.ts +27 -7
  51. package/lib/types/rows.d.ts +69 -0
  52. package/lib/types/session-list.d.ts +43 -3
  53. package/lib/types/stats.d.ts +98 -0
  54. package/lib/types/terminal-input.d.ts +164 -0
  55. package/lib/types/tui.d.ts +33 -8
  56. package/package.json +11 -5
@@ -15,14 +15,16 @@
15
15
  * 4 hello — either side, payload ignored
16
16
  * 5 goodbye — host → relay, then close (user /exit)
17
17
  * 6 rtt — relay → host (u32be milliseconds; 0xffffffff = unknown)
18
+ * 7 replaced — host → relay, then close (a newer Display took the session)
18
19
  */
19
20
  import { spawn } from 'node:child_process';
21
+ import { StringDecoder } from 'node:string_decoder';
20
22
  import { createHash } from 'node:crypto';
21
23
  import { createConnection, createServer } from 'node:net';
22
24
  import { mkdir, readFile, unlink } from 'node:fs/promises';
23
25
  import { closeSync, mkdirSync, openSync } from 'node:fs';
24
26
  import { homedir } from 'node:os';
25
- import { findCursorPositionReply, probeRttWithRetry } from './paint.js';
27
+ import { TerminalInputFilter, TerminalInputPump } from './terminal-input.js';
26
28
  import { dirname, join, resolve } from 'node:path';
27
29
  export const FRAME_STDIN = 1;
28
30
  export const FRAME_STDOUT = 2;
@@ -30,59 +32,27 @@ export const FRAME_RESIZE = 3;
30
32
  export const FRAME_HELLO = 4;
31
33
  export const FRAME_GOODBYE = 5;
32
34
  export const FRAME_RTT = 6;
35
+ export const FRAME_REPLACED = 7;
33
36
  const MAX_FRAME = 1024 * 1024;
34
- const DSR_PROBE_TIMEOUT_MS = 800;
35
- /** How many times the relay asks the terminal for its cursor position. */
36
- const RTT_PROBE_ATTEMPTS = 2;
37
- /** Pause before asking again; the reattach repaint has usually settled by then. */
38
- const RTT_PROBE_RETRY_MS = 250;
39
37
  /**
40
- * CSI 6n round-trip on this TTY. Must run before stdin is forwarded to the Host.
41
- * Retries once: a reattach paints the whole screen immediately, and a terminal
42
- * busy with that flood can miss the first 800 ms window the Host would then be
43
- * told "unknown" and the footer chip sat on four hollow circles for the session.
38
+ * Grace period for a kicked relay to read FRAME_REPLACED before its socket is
39
+ * torn down. Without the frame the relay only saw `close`, read it as "the
40
+ * Host is going away", and re-attachedtwo SSH windows then kicked each
41
+ * other off the display forever, repainting the whole screen on every lap.
44
42
  */
45
- async function probeLocalRttMs(stdin = process.stdin, stdout = process.stdout, timeoutMs = DSR_PROBE_TIMEOUT_MS) {
46
- if (!stdin.isTTY || !stdout.isTTY)
47
- return undefined;
48
- return await probeRttWithRetry(() => probeLocalRttOnce(stdin, stdout, timeoutMs), RTT_PROBE_ATTEMPTS, RTT_PROBE_RETRY_MS);
49
- }
50
- function probeLocalRttOnce(stdin, stdout, timeoutMs) {
51
- return new Promise(resolve => {
52
- let buffer = '';
53
- let settled = false;
54
- const started = Date.now();
55
- const finish = (value) => {
56
- if (settled)
57
- return;
58
- settled = true;
59
- clearTimeout(timer);
60
- stdin.removeListener('data', onData);
61
- resolve(value);
62
- };
63
- const onData = (chunk) => {
64
- buffer += chunk.toString('utf8');
65
- if (findCursorPositionReply(buffer) !== undefined) {
66
- finish(Math.max(0, Date.now() - started));
67
- return;
68
- }
69
- // The reply can share a chunk with focus/mouse/keystroke noise, so scan
70
- // the buffer instead of requiring it to be the entire read.
71
- if (buffer.length > 64)
72
- buffer = buffer.slice(-64);
73
- if (buffer.length > 32 && !buffer.includes('\x1b'))
74
- finish(undefined);
75
- };
76
- const timer = setTimeout(() => finish(undefined), timeoutMs);
77
- stdin.on('data', onData);
78
- try {
79
- stdout.write('\x1b[6n');
80
- }
81
- catch {
82
- finish(undefined);
83
- }
84
- });
85
- }
43
+ const REPLACED_GRACE_MS = 250;
44
+ /**
45
+ * How long a connection may stay silent before the Host treats it as a
46
+ * liveness probe and drops it.
47
+ *
48
+ * A relay measures the terminal round-trip *before* its HELLO (see
49
+ * `runDisplayRelay`), and the slow-link path is long: the probe's budget is
50
+ * RTT_MEASURE_BUDGET_MS (2.5 s) plus one widened 800 ms answer window, so a
51
+ * ~600 ms link measured 3.1 s end to end. At 3 s the Host reaped such a relay
52
+ * as a silent probe, the launcher saw `host-closed`, and a slow link could not
53
+ * attach at all — hence the wider grace.
54
+ */
55
+ const DISPLAY_HELLO_GRACE_MS = 6_000;
86
56
  /**
87
57
  * Drop launcher SIGTERM/SIGINT/SIGHUP so closing SSH cannot dispose the tree
88
58
  * before hangup handling. Leaving the session with setsid() is best-effort:
@@ -265,13 +235,17 @@ function wrapListenError(error, path, pipe) {
265
235
  export class DisplayHost {
266
236
  path;
267
237
  handlers;
238
+ options;
268
239
  server;
269
240
  socket;
270
241
  reader = new FrameReader();
271
242
  attached = false;
272
- constructor(path, handlers) {
243
+ constructor(path, handlers,
244
+ /** Test seam: how long a silent connection may wait for its HELLO. */
245
+ options = {}) {
273
246
  this.path = path;
274
247
  this.handlers = handlers;
248
+ this.options = options;
275
249
  }
276
250
  async listen() {
277
251
  const pipe = isPipePath(this.path);
@@ -318,11 +292,43 @@ export class DisplayHost {
318
292
  const previous = this.socket;
319
293
  this.socket = undefined;
320
294
  this.attached = false;
295
+ // Tell the old relay *why* it is being dropped before the socket goes
296
+ // away. It used to see a bare `close`, report `host-closed`, and retry
297
+ // the attach — so two SSH windows kicked each other off the display in
298
+ // a loop, each lap repainting the full screen and leaving the TTY in
299
+ // cooked mode long enough to echo the replies still in flight.
300
+ // Flush before reaping: if the relay is slow to read (a stalled event
301
+ // loop, a paused process) the frame would still be in this socket's
302
+ // buffer when the backstop below destroys it, and the kicked relay
303
+ // would see a bare close — the retry this frame exists to prevent.
304
+ const reap = setTimeout(() => {
305
+ try {
306
+ previous.destroy();
307
+ }
308
+ catch {
309
+ // already gone
310
+ }
311
+ }, REPLACED_GRACE_MS);
312
+ reap.unref?.();
321
313
  try {
322
- previous.destroy();
314
+ previous.end(encodeFrame(FRAME_REPLACED), () => {
315
+ clearTimeout(reap);
316
+ try {
317
+ previous.destroy();
318
+ }
319
+ catch {
320
+ // already gone
321
+ }
322
+ });
323
323
  }
324
324
  catch {
325
- // ignore
325
+ clearTimeout(reap);
326
+ try {
327
+ previous.destroy();
328
+ }
329
+ catch {
330
+ // already gone
331
+ }
326
332
  }
327
333
  // Replacing a Display is not an SSH hangup. The previous socket's
328
334
  // `close` handler must not fire onDetach after we already claimed
@@ -387,7 +393,8 @@ export class DisplayHost {
387
393
  dropProbe();
388
394
  });
389
395
  // A connect() with no HELLO is a liveness probe; do not steal the display.
390
- setTimeout(dropProbe, 400);
396
+ const probeGrace = setTimeout(dropProbe, this.options.helloGraceMs ?? DISPLAY_HELLO_GRACE_MS);
397
+ probeGrace.unref?.();
391
398
  }
392
399
  sendStdout(bytes) {
393
400
  const socket = this.socket;
@@ -551,6 +558,61 @@ export function hostArgvForSession(sessionId, argv = process.argv.slice(1), exec
551
558
  filtered.push(`--resume=${sessionId}`);
552
559
  return filtered;
553
560
  }
561
+ /**
562
+ * Keep what the user types while no display exists yet.
563
+ *
564
+ * A fresh Host takes a moment to boot; the launcher used to leave stdin flowing
565
+ * with nobody listening, so every key pressed in that window was dropped. The
566
+ * capture strips cursor replies (it is the same stream the relay will probe)
567
+ * and hands the rest to the relay as its `seed`.
568
+ */
569
+ export function captureTerminalInput(stdin = process.stdin) {
570
+ const filter = new TerminalInputFilter();
571
+ const decoder = new StringDecoder('utf8');
572
+ let kept = '';
573
+ const onData = (chunk) => {
574
+ const text = filter.push(decoder.write(chunk)).forward;
575
+ if (text === '')
576
+ return;
577
+ kept += text;
578
+ if (kept.length > MAX_CAPTURED_INPUT)
579
+ kept = kept.slice(-MAX_CAPTURED_INPUT);
580
+ };
581
+ try {
582
+ stdin.setRawMode?.(true);
583
+ stdin.resume();
584
+ stdin.on('data', onData);
585
+ }
586
+ catch {
587
+ // A dying TTY cannot be captured; the seed stays empty.
588
+ }
589
+ return {
590
+ stop() {
591
+ try {
592
+ stdin.removeListener('data', onData);
593
+ // Pause rather than leave the stream flowing with no listener: bytes
594
+ // typed between here and the relay's own `resume()` would otherwise be
595
+ // discarded instead of waiting for it.
596
+ stdin.pause();
597
+ }
598
+ catch {
599
+ // ignore
600
+ }
601
+ const tail = (() => {
602
+ try {
603
+ return decoder.end();
604
+ }
605
+ catch {
606
+ return '';
607
+ }
608
+ })();
609
+ const text = filter.flush() + tail;
610
+ return text === '' ? kept : kept + text;
611
+ },
612
+ };
613
+ }
614
+ /** Longest typing burst carried across a Host boot. */
615
+ const MAX_CAPTURED_INPUT = 8 * 1024;
554
616
  /**
555
617
  * Keep the terminal quiet while the launcher retries or waits for a Host.
556
618
  *
@@ -577,6 +639,31 @@ export function quietTerminalInput(stdin = process.stdin) {
577
639
  }
578
640
  return dropped;
579
641
  }
642
+ /**
643
+ * Hand the TTY back to the shell: cooked mode, echo back, input paused.
644
+ *
645
+ * `quietTerminalInput` deliberately leaves raw mode on while a relay is about
646
+ * to take the terminal, and the relay restores it on its way out — but every
647
+ * exit path then calls `quiet()` once more to drain a cursor reply still owed,
648
+ * which turns raw mode back on. Without this the shell comes back with no line
649
+ * discipline and no echo: the user cannot type, and the only recovery is
650
+ * dropping the SSH connection. Only local termios calls here — nothing is
651
+ * written into a link that may already be dead.
652
+ */
653
+ export function restoreTerminalInput(stdin = process.stdin) {
654
+ try {
655
+ stdin.setRawMode?.(false);
656
+ }
657
+ catch {
658
+ // A dead TTY cannot be restored; the kernel will not keep it either.
659
+ }
660
+ try {
661
+ stdin.pause();
662
+ }
663
+ catch {
664
+ // ignore
665
+ }
666
+ }
580
667
  /** Spawn a detached Host copy of this `dsh` invocation and return its sock path. */
581
668
  export function spawnDetachedHost(sessionId) {
582
669
  const sock = sessionSockPath(sessionId);
@@ -637,17 +724,37 @@ export async function probeDisplaySock(path, timeoutMs = 400) {
637
724
  });
638
725
  });
639
726
  }
727
+ /** Typing that arrives while the relay is still measuring is kept, then sent. */
728
+ const MAX_PENDING_INPUT = 64 * 1024;
640
729
  /**
641
730
  * Turn this process into a Display relay until the Host hangs up or the
642
731
  * local TTY dies. Restores the terminal before resolving.
643
732
  */
644
- export async function runDisplayRelay(path) {
733
+ export async function runDisplayRelay(path, options = {}) {
734
+ const stdin = options.stdin ?? process.stdin;
735
+ const stdout = options.stdout ?? process.stdout;
736
+ const signals = options.signals ?? process;
645
737
  const useAltScreen = process.env.DSH_TUI_NO_ALT_SCREEN !== '1'
646
738
  && process.env.DSH_TUI_NO_ALT_SCREEN !== 'true';
647
739
  return await new Promise((resolve, reject) => {
648
740
  const socket = createConnection(path);
649
741
  const reader = new FrameReader();
650
742
  let settled = false;
743
+ let live = false;
744
+ // Set when the Host tells us a newer Display took this session over. The
745
+ // terminal restore below is the one write that must NOT happen then: this
746
+ // relay no longer owns any screen, and if the link is dead (window killed,
747
+ // laptop asleep, network dropped) those escape bytes sit in the connection
748
+ // and are flushed onto that user's terminal the moment it comes back — the
749
+ // "character leak on entry" line, exactly when they resumed in a new window.
750
+ let replaced = false;
751
+ const pending = [];
752
+ let pendingBytes = 0;
753
+ if (options.seed !== undefined && options.seed !== '') {
754
+ const seed = Buffer.from(options.seed, 'utf8');
755
+ pending.push(seed);
756
+ pendingBytes += seed.length;
757
+ }
651
758
  const finish = (reason) => {
652
759
  if (settled)
653
760
  return;
@@ -664,14 +771,15 @@ export async function runDisplayRelay(path) {
664
771
  reject(error);
665
772
  };
666
773
  const cleanup = () => {
667
- process.stdin.removeListener('data', onStdin);
668
- process.stdout.removeListener('resize', onResize);
669
- process.stdin.removeListener('end', onLocalHangup);
670
- process.stdin.removeListener('close', onLocalHangup);
671
- process.removeListener('SIGHUP', onLocalHangup);
672
- process.removeListener('SIGTERM', onLocalHangup);
774
+ pump.stop();
775
+ stdout.removeListener('resize', onResize);
776
+ stdin.removeListener('end', onLocalHangup);
777
+ stdin.removeListener('close', onLocalHangup);
778
+ stdin.removeListener('error', onLocalHangup);
779
+ signals.removeListener('SIGHUP', onLocalHangup);
780
+ signals.removeListener('SIGTERM', onLocalHangup);
673
781
  try {
674
- process.stdin.setRawMode(false);
782
+ stdin.setRawMode(false);
675
783
  }
676
784
  catch {
677
785
  // ignore
@@ -680,38 +788,72 @@ export async function runDisplayRelay(path) {
680
788
  clearTimeout(resizeTimer);
681
789
  resizeTimer = undefined;
682
790
  }
683
- process.stdout.off('resize', onResize);
791
+ stdout.off('resize', onResize);
684
792
  if (process.platform !== 'win32') {
685
- process.off('SIGWINCH', onResize);
793
+ signals.off('SIGWINCH', onResize);
686
794
  }
687
795
  try {
688
- process.stdin.pause();
796
+ stdin.pause();
689
797
  }
690
798
  catch {
691
799
  // ignore
692
800
  }
693
- try {
694
- process.stdout.write('\x1b]0;\x07');
695
- process.stdout.write('\x1b[0m\x1b[2J\x1b[3J\x1b[H');
696
- process.stdout.write(`\x1b[?1000l\x1b[?1006l\x1b[?2004l\x1b[?25h${useAltScreen ? '\x1b[?1049l' : ''}`);
697
- }
698
- catch {
699
- // TTY may already be gone
801
+ // A replaced relay still has to release its end of the display link: the
802
+ // terminal restore below is what must be skipped (the link is usually
803
+ // dead and those bytes would surface later), not the close. Leaving the
804
+ // socket open keeps a live handle on a finished relay — an embedder that
805
+ // awaits the relay then waits forever for the event loop to drain.
806
+ if (!replaced) {
807
+ try {
808
+ stdout.write('\x1b]0;\x07');
809
+ stdout.write('\x1b[0m\x1b[2J\x1b[3J\x1b[H');
810
+ stdout.write(`\x1b[?1000l\x1b[?1006l\x1b[?2004l\x1b[?25h${useAltScreen ? '\x1b[?1049l' : ''}`);
811
+ }
812
+ catch {
813
+ // TTY may already be gone
814
+ }
700
815
  }
701
816
  socket.destroy();
702
817
  };
703
- const onStdin = (chunk) => {
818
+ /**
819
+ * Keystrokes typed while the relay was still measuring used to be dropped
820
+ * on the floor: the probe owned the only stdin listener and the forwarder
821
+ * was attached afterwards. Hold them (bounded) and flush on HELLO.
822
+ */
823
+ const deliver = (text) => {
824
+ if (text === '')
825
+ return;
826
+ const bytes = Buffer.from(text, 'utf8');
827
+ if (!live) {
828
+ pending.push(bytes);
829
+ pendingBytes += bytes.length;
830
+ while (pendingBytes > MAX_PENDING_INPUT && pending.length > 1) {
831
+ pendingBytes -= pending.shift()?.length ?? 0;
832
+ }
833
+ return;
834
+ }
704
835
  try {
705
- socket.write(encodeFrame(FRAME_STDIN, chunk));
836
+ socket.write(encodeFrame(FRAME_STDIN, bytes));
706
837
  }
707
838
  catch {
708
839
  finish('host-closed');
709
840
  }
710
841
  };
842
+ const pump = new TerminalInputPump({
843
+ stdin,
844
+ stdout,
845
+ onInput: deliver,
846
+ ...(options.ssh === undefined ? {} : { ssh: options.ssh }),
847
+ // Only while the boot splash is up: the TUI is not painted yet, so a
848
+ // diagnostic line cannot garble a live screen.
849
+ ...(process.env.DSH_TUI_DEBUG === '1'
850
+ ? { debug: (message) => { process.stderr.write(`dsh-ssh-tui: ${message}\n`); } }
851
+ : {}),
852
+ });
711
853
  let resizeTimer;
712
854
  const sendResize = () => {
713
855
  try {
714
- socket.write(encodeResize(process.stdout.columns || 80, process.stdout.rows || 24));
856
+ socket.write(encodeResize(stdout.columns || 80, stdout.rows || 24));
715
857
  }
716
858
  catch {
717
859
  finish('host-closed');
@@ -734,33 +876,63 @@ export async function runDisplayRelay(path) {
734
876
  socket.on('connect', () => {
735
877
  void (async () => {
736
878
  try {
737
- process.stdin.setRawMode(true);
738
- process.stdin.resume();
739
- const columns = process.stdout.columns || 80;
740
- const rows = process.stdout.rows || 24;
879
+ stdin.setRawMode(true);
880
+ stdin.resume();
881
+ // Subscribed before the first await: an EOF that lands during the
882
+ // probe (SSH dropped while the TTY was quiet) used to be missed
883
+ // entirely, and the launcher then stayed alive with a dead TTY —
884
+ // the zombie that fought the next window for the display.
885
+ stdin.on('end', onLocalHangup);
886
+ stdin.on('close', onLocalHangup);
887
+ // A PTY can report EIO instead of a clean EOF; without this the
888
+ // launcher dies on an unhandled 'error' event instead of resolving.
889
+ stdin.on('error', onLocalHangup);
890
+ signals.on('SIGHUP', onLocalHangup);
891
+ signals.on('SIGTERM', onLocalHangup);
892
+ // A TTY that is already gone (this launcher started after the SSH
893
+ // session ended) never fires `end` again; without this the relay
894
+ // would sit on a dead channel as another zombie.
895
+ if (stdin.readableEnded === true || stdin.destroyed === true) {
896
+ finish('signal');
897
+ return;
898
+ }
899
+ pump.start();
900
+ // Measure *before* HELLO: the Host answers a HELLO with a full
901
+ // repaint, and a request queued behind that burst measures the
902
+ // repaint (1900 ms) instead of the link (50 ms).
903
+ const rtt = await pump.measure();
904
+ if (settled)
905
+ return;
906
+ const columns = stdout.columns || 80;
907
+ const rows = stdout.rows || 24;
741
908
  socket.write(Buffer.concat([
742
909
  encodeFrame(FRAME_HELLO),
743
910
  encodeResize(columns, rows),
911
+ encodeRtt(rtt),
744
912
  ]));
745
- const rtt = await probeLocalRttMs();
746
- if (settled)
747
- return;
748
- try {
749
- socket.write(encodeRtt(rtt));
913
+ live = true;
914
+ if (options.announce === true) {
915
+ try {
916
+ stdout.write('\r\x1b[2K');
917
+ }
918
+ catch {
919
+ // The TTY may already be gone.
920
+ }
750
921
  }
751
- catch {
752
- finish('host-closed');
753
- return;
922
+ for (const chunk of pending.splice(0)) {
923
+ try {
924
+ socket.write(encodeFrame(FRAME_STDIN, chunk));
925
+ }
926
+ catch {
927
+ finish('host-closed');
928
+ return;
929
+ }
754
930
  }
755
- process.stdin.on('data', onStdin);
756
- process.stdin.on('end', onLocalHangup);
757
- process.stdin.on('close', onLocalHangup);
758
- process.stdout.on('resize', onResize);
931
+ pendingBytes = 0;
932
+ stdout.on('resize', onResize);
759
933
  if (process.platform !== 'win32') {
760
- process.on('SIGWINCH', onResize);
934
+ signals.on('SIGWINCH', onResize);
761
935
  }
762
- process.on('SIGHUP', onLocalHangup);
763
- process.on('SIGTERM', onLocalHangup);
764
936
  }
765
937
  catch (error) {
766
938
  fail(error);
@@ -779,7 +951,7 @@ export async function runDisplayRelay(path) {
779
951
  for (const frame of frames) {
780
952
  if (frame.type === FRAME_STDOUT) {
781
953
  try {
782
- process.stdout.write(frame.payload);
954
+ stdout.write(frame.payload);
783
955
  }
784
956
  catch {
785
957
  finish('signal');
@@ -790,6 +962,14 @@ export async function runDisplayRelay(path) {
790
962
  finish('goodbye');
791
963
  return;
792
964
  }
965
+ else if (frame.type === FRAME_REPLACED) {
966
+ // A newer Display owns this session now. Caller exits quietly; the
967
+ // retry it used to trigger is what made two windows fight. Nothing is
968
+ // written back to this link either — see `replaced`.
969
+ replaced = true;
970
+ finish('replaced');
971
+ return;
972
+ }
793
973
  }
794
974
  });
795
975
  socket.on('close', () => finish('host-closed'));
@@ -1 +1 @@
1
- {"version":3,"file":"display-sock.js","sourceRoot":"","sources":["../src/display-sock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display-sock.js","sourceRoot":"","sources":["../src/display-sock.ts"],"names":[],"mappings":"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"}