@thenewlabs/entangle-serve 2.10.0 → 2.11.1

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.
@@ -3,6 +3,13 @@ const MIN_COLS = 20;
3
3
  const MIN_ROWS = 6;
4
4
  /** Repaint cadence for the status bar: coalesce shell output into ~30ms frames. */
5
5
  const FRAME_MS = 30;
6
+ /**
7
+ * How long a shell-repaint waits for a fresh `refresh` frame before falling back
8
+ * to the synchronous getReplay() cache. A NEW daemon answers a local-socket
9
+ * round-trip well under this; the fallback only fires against an OLD daemon
10
+ * (pre-`refresh`, surviving a `serve` upgrade) that never answers requestFrame.
11
+ */
12
+ const FRAME_FALLBACK_MS = 250;
6
13
  /** Host window-management prefix (Ctrl-B), tmux-style. */
7
14
  const PREFIX = 0x02;
8
15
  /** Status-bar palette (tmux-style blue). */
@@ -106,10 +113,18 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
106
113
  let barDirty = false;
107
114
  // Which surface fills the shell area (rows 1..rows-1). 'shell' is the raw
108
115
  // pass-through; 'debug' is the welcome/log view (pinned banner + event-log
109
- // tail). We DEFAULT to 'debug' so the first thing the host sees on go-live is
110
- // the welcome screen with the shareable URL; a window tab/Ctrl-B digit or n
111
- // reveals the shell.
116
+ // tail); 'scroll' is the tmux-style copy-mode pager over the active window's
117
+ // emulator buffer (see enterScroll/renderScroll below). We DEFAULT to 'debug'
118
+ // so the first thing the host sees on go-live is the welcome screen with the
119
+ // shareable URL; a window tab/Ctrl-B digit or n reveals the shell.
112
120
  let viewMode = 'debug';
121
+ // Copy-mode pager state. `scrollLines` is the PLAIN-TEXT snapshot of the active
122
+ // window's emulator buffer (scrollback history + current screen, oldest first)
123
+ // fetched on entry via session.requestScrollback(); `scrollOffset` is the index
124
+ // of the TOP visible line. SGR/colour reconstruction is a non-goal — the pager
125
+ // renders history text only.
126
+ let scrollLines = [];
127
+ let scrollOffset = 0;
113
128
  // The captured agent logs live in the session's ring buffer (the session owns
114
129
  // the OutputHandler sink); the welcome/log view renders the tail of that
115
130
  // buffer and marks itself dirty when a new line arrives while it's showing.
@@ -136,6 +151,31 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
136
151
  appMouseModes.delete(m[1]);
137
152
  }
138
153
  };
154
+ // Which DEC ALTERNATE-SCREEN modes (1049/1047/47) the SHELL app has enabled,
155
+ // scanned from its output. On a real terminal, when a full-screen app QUITS it
156
+ // emits the alt-off toggle (`\x1b[?1049l`), and the terminal restores its own
157
+ // saved PRIMARY buffer — which is stale under entangle's reserved scroll region
158
+ // + bar. So on a transition to alt-inactive (while we're on the shell view) we
159
+ // schedule a coalesced repaint from the emulator's correct primary viewport
160
+ // (Bug 2). Detection is per-chunk (like the mouse scan); the coalescing timer
161
+ // absorbs rapid/split toggles into a single repaint on the next frame.
162
+ const appAltModes = new Set();
163
+ const appAltOn = () => appAltModes.has('1049') || appAltModes.has('1047') || appAltModes.has('47');
164
+ const ALT_MODE_RE = /\x1b\[\?(1049|1047|47)(h|l)/g;
165
+ let altExitDirty = false;
166
+ const scanAppAlt = (buf) => {
167
+ const s = Buffer.from(buf).toString('latin1');
168
+ ALT_MODE_RE.lastIndex = 0;
169
+ let m;
170
+ while ((m = ALT_MODE_RE.exec(s)) !== null) {
171
+ if (m[2] === 'h')
172
+ appAltModes.add(m[1]);
173
+ // Only a transition OUT of an alt mode we saw enter needs a forced repaint;
174
+ // entering alt is left to the app (it paints its own frame). Off in debug.
175
+ else if (appAltModes.delete(m[1]) && viewMode === 'shell')
176
+ altExitDirty = true;
177
+ }
178
+ };
139
179
  // Local mirror of the session's window set, kept in sync via onWindowState
140
180
  // and rendered as the tab row of the bar. Seeded with the current state.
141
181
  const initialState = session.windowState();
@@ -193,6 +233,12 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
193
233
  const drawBar = () => {
194
234
  if (!live)
195
235
  return;
236
+ // While the copy-mode pager is up it owns the bottom row (its own
237
+ // `⧉ scrollback …` bar via renderScroll); async triggers (onViewersChange /
238
+ // onWindowState) must not paint the blue `⧉ entangle` bar over it. The pager
239
+ // repaints its bar itself on the next keypress, so just suppress here.
240
+ if (viewMode === 'scroll')
241
+ return;
196
242
  barDirty = false;
197
243
  write(`\x1b7\x1b[${rows};1H\x1b[2K${buildBar()}\x1b8`);
198
244
  };
@@ -205,7 +251,7 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
205
251
  `Share this live session:`,
206
252
  ` ${BAR_FG}${link ?? 'connecting…'}${RESET}`,
207
253
  ``,
208
- `Ctrl-B d=detach l=logs c=new n/p=win 1-9=select x=close · or click the bar`,
254
+ `Ctrl-B [=scroll d=detach l=logs c=new n/p=win 1-9=select x=close`,
209
255
  ];
210
256
  // Render the welcome/log view: a PINNED HEADER (brand, intro, share URL, key
211
257
  // hint) at the top so the URL is always findable, a "Recent activity:"
@@ -240,9 +286,14 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
240
286
  write(out);
241
287
  drawBar();
242
288
  };
243
- // Repaint the live shell area from the workspace replay (used when leaving the
244
- // debug view). Clears rows 1..rows-1, re-writes the active window's screen.
245
- const repaintShell = () => {
289
+ // Paint the live shell area from a FRESH serialized `frame` over rows
290
+ // 1..rows-1, WITHOUT touching the host's scrollback (no \x1b[3J). Clears just
291
+ // the reserved shell rows, homes, then writes the frame; the frame may itself
292
+ // carry \x1b[?1049h + alt content, which correctly reproduces a full-screen
293
+ // app's current screen (Bug 1 / Bug 2 host repaint). The frame source is the
294
+ // session's onFrame callback (a fresh serialize), NOT the synchronous
295
+ // getReplay() cache — which is stale in daemon mode (Bug 2).
296
+ const paintShellFrame = (frame) => {
246
297
  if (!live)
247
298
  return;
248
299
  const shellRows = Math.max(1, rows - 1);
@@ -251,14 +302,61 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
251
302
  out += `\x1b[${r};1H\x1b[2K`;
252
303
  out += '\x1b[H';
253
304
  write(out);
254
- const replay = session.getReplay();
255
- if (replay.length > 0)
256
- writeRaw(replay);
305
+ if (frame.length > 0)
306
+ writeRaw(frame);
257
307
  drawBar();
258
- // The replay may have re-disabled mouse (e.g. it ends after a full-screen
259
- // app quit); re-assert our bar-click reporting so the bar stays clickable.
308
+ // The frame may have re-disabled mouse (e.g. it serializes a primary screen
309
+ // after a full-screen app quit); re-assert our bar-click reporting so the bar
310
+ // stays clickable.
260
311
  write(MOUSE_ENABLE);
261
312
  };
313
+ // Cross-version fallback for a shell repaint. A NEW foreground client can attach
314
+ // to an OLD long-lived daemon (the detach/reattach daemon survives a `serve`
315
+ // upgrade) that predates the `refresh` frame channel and so never answers
316
+ // requestFrame — leaving alt-exit / window-switch / leave-debug repaints blank.
317
+ // So on each repaint we arm a short timer: if onFrame delivers first it cancels
318
+ // the timer and paints the fresh frame; if the timer wins (old daemon silent)
319
+ // we paint from the synchronous getReplay() cache — stale in daemon mode but
320
+ // non-empty (the pre-fix behavior), which beats a blank/stale screen.
321
+ let pendingFrameTimer;
322
+ const clearFrameFallback = () => {
323
+ if (pendingFrameTimer) {
324
+ clearTimeout(pendingFrameTimer);
325
+ pendingFrameTimer = undefined;
326
+ }
327
+ };
328
+ // Ask for a fresh frame and arm the old-daemon fallback. The timer is armed
329
+ // BEFORE requestFrame so the in-process (synchronous) onFrame cancels it inline
330
+ // — no double paint. Against a NEW daemon the fresh frame arrives well under
331
+ // FRAME_FALLBACK_MS, cancelling the timer before it can fire (no flicker).
332
+ const requestFrameWithFallback = () => {
333
+ clearFrameFallback();
334
+ pendingFrameTimer = setTimeout(() => {
335
+ pendingFrameTimer = undefined;
336
+ if (!live || viewMode !== 'shell')
337
+ return;
338
+ paintShellFrame(session.getReplay({ scrollback: 0 }));
339
+ }, FRAME_FALLBACK_MS);
340
+ pendingFrameTimer.unref?.();
341
+ session.requestFrame({ scrollback: 0 });
342
+ };
343
+ // Request a fresh frame for the alt-screen-exit repaint. The actual paint
344
+ // happens asynchronously in the onFrame handler with the FRESH frame (a
345
+ // daemon round-trip in daemon mode, synchronous in-process). `scrollback:0`
346
+ // keeps the host's real terminal from being flooded with window history.
347
+ const repaintShellFromFrame = () => {
348
+ if (!live)
349
+ return;
350
+ altExitDirty = false; // any pending alt-exit repaint is subsumed by this one
351
+ requestFrameWithFallback();
352
+ };
353
+ // Repaint the live shell area when leaving the debug view or switching windows:
354
+ // request a fresh frame; the onFrame handler paints it.
355
+ const repaintShell = () => {
356
+ if (!live)
357
+ return;
358
+ requestFrameWithFallback();
359
+ };
262
360
  const enterDebug = () => {
263
361
  if (viewMode === 'debug')
264
362
  return;
@@ -273,13 +371,191 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
273
371
  if (wasDebug)
274
372
  repaintShell();
275
373
  };
374
+ // --- copy-mode / scrollback pager ----------------------------------------
375
+ // A tmux-style pager over the active window's emulator buffer. On entry we
376
+ // switch the host's REAL terminal to the alternate screen (so the live shell
377
+ // view is saved and restored verbatim on exit), drop our reserved scroll
378
+ // region, and render a scrollable window of PLAIN-TEXT buffer lines with a
379
+ // distinct bottom bar. Keystrokes drive the pager and are NOT sent to the
380
+ // shell; `q`/Esc returns to the live shell.
381
+ /** Largest valid top-line index: the last full page starts here. */
382
+ const maxScrollOffset = () => Math.max(0, scrollLines.length - (rows - 1));
383
+ const clampScrollOffset = () => {
384
+ scrollOffset = Math.max(0, Math.min(maxScrollOffset(), scrollOffset));
385
+ };
386
+ // The pager's bottom bar: brand + position readout + key legend, styled like
387
+ // the status bar (blue) and padded/truncated to exactly `cols`.
388
+ const buildScrollBar = () => {
389
+ const total = scrollLines.length;
390
+ const top = total === 0 ? 0 : scrollOffset + 1;
391
+ const bottom = Math.min(total, scrollOffset + Math.max(1, rows - 1));
392
+ let label = ` ⧉ scrollback [${top}-${bottom}/${total}] ↑↓ PgUp/PgDn Home/End q:live `;
393
+ if (label.length > cols)
394
+ label = label.slice(0, cols);
395
+ const fill = ' '.repeat(Math.max(0, cols - label.length));
396
+ return `${BAR_BG}${BAR_FG}${label}${fill}${RESET}`;
397
+ };
398
+ // Draw the pager: rows 1..(rows-1) show scrollLines[scrollOffset ..], each
399
+ // cleared then truncated to `cols`; rows past the end are left blank; the
400
+ // pager bar owns the bottom row.
401
+ const renderScroll = () => {
402
+ if (!live || viewMode !== 'scroll')
403
+ return;
404
+ const bodyRows = Math.max(1, rows - 1);
405
+ let out = '';
406
+ for (let r = 0; r < bodyRows; r++) {
407
+ out += `\x1b[${r + 1};1H\x1b[2K`;
408
+ const line = scrollLines[scrollOffset + r];
409
+ if (line)
410
+ out += line.length > cols ? line.slice(0, cols) : line;
411
+ }
412
+ out += `\x1b[${rows};1H\x1b[2K${buildScrollBar()}`;
413
+ write(out);
414
+ };
415
+ // Enter the pager (only from the live shell view). Switch the real terminal to
416
+ // the alt screen (saves the shell view for exit), drop the scroll region, hide
417
+ // the cursor, then ask for a fresh scrollback snapshot; the onScrollback
418
+ // handler renders it starting at the bottom (newest).
419
+ const enterScroll = () => {
420
+ if (!live || viewMode !== 'shell')
421
+ return;
422
+ viewMode = 'scroll';
423
+ write('\x1b[?1049h'); // enter alt screen on the host's REAL terminal
424
+ write('\x1b[r'); // drop our reserved scroll region while paging
425
+ write('\x1b[?25l'); // hide the cursor for a clean pager
426
+ // NOTE: against an OLD daemon (pre-`refresh`, surviving a `serve` upgrade)
427
+ // requestScrollback goes unanswered and the pager shows empty — an accepted
428
+ // limitation of this brand-new feature; we deliberately don't add a second
429
+ // fallback path for it (unlike the shell-repaint fallback above).
430
+ session.requestScrollback();
431
+ };
432
+ // Leave the pager: return the real terminal to the primary screen (which
433
+ // restores the saved live shell view), re-arm our scroll region, re-assert
434
+ // mouse reporting, then request a FRESH frame so the shell repaints its
435
+ // CURRENT state (it may have advanced while we were paused).
436
+ const exitScroll = () => {
437
+ if (viewMode !== 'scroll')
438
+ return;
439
+ viewMode = 'shell';
440
+ scrollLines = [];
441
+ scrollOffset = 0;
442
+ write('\x1b[?1049l'); // leave alt screen → restores the live shell view
443
+ write('\x1b[?25h'); // show the cursor again
444
+ write(`\x1b[1;${Math.max(1, rows - 1)}r`); // re-arm the shell's scroll region
445
+ write(MOUSE_ENABLE); // keep bar-click / wheel reporting alive
446
+ session.requestFrame({ scrollback: 0 }); // repaint the CURRENT live shell
447
+ };
448
+ // Drive the pager from a raw input chunk (called only while in 'scroll'). Keys
449
+ // move the viewport; `q`/lone-Esc exits. Mouse wheel (SGR button 64/65) scrolls
450
+ // by 3. Anything unrecognized is ignored (never forwarded to the shell). A lone
451
+ // trailing ESC is treated as exit; a split ESC/CSI across chunks can mis-fire
452
+ // exit, which is an acceptable edge for a pager.
453
+ const handleScrollInput = (d) => {
454
+ const s = d.toString('latin1');
455
+ const page = Math.max(1, rows - 1);
456
+ let changed = false;
457
+ for (let i = 0; i < s.length;) {
458
+ const mouse = matchMouse(d, i);
459
+ if (mouse) {
460
+ if (mouse.press && mouse.button === 64) {
461
+ scrollOffset -= 3;
462
+ changed = true;
463
+ }
464
+ else if (mouse.press && mouse.button === 65) {
465
+ scrollOffset += 3;
466
+ changed = true;
467
+ }
468
+ i += mouse.length;
469
+ continue;
470
+ }
471
+ if (s[i] === '\x1b') {
472
+ const rest = s.slice(i);
473
+ let consumed = 1;
474
+ if (rest.startsWith('\x1b[A')) {
475
+ scrollOffset -= 1;
476
+ consumed = 3;
477
+ }
478
+ else if (rest.startsWith('\x1b[B')) {
479
+ scrollOffset += 1;
480
+ consumed = 3;
481
+ }
482
+ else if (rest.startsWith('\x1b[5~')) {
483
+ scrollOffset -= page;
484
+ consumed = 4;
485
+ }
486
+ else if (rest.startsWith('\x1b[6~')) {
487
+ scrollOffset += page;
488
+ consumed = 4;
489
+ }
490
+ else if (rest.startsWith('\x1b[1~')) {
491
+ scrollOffset = 0;
492
+ consumed = 4;
493
+ }
494
+ else if (rest.startsWith('\x1b[4~')) {
495
+ scrollOffset = maxScrollOffset();
496
+ consumed = 4;
497
+ }
498
+ else if (rest.startsWith('\x1b[H')) {
499
+ scrollOffset = 0;
500
+ consumed = 3;
501
+ }
502
+ else if (rest.startsWith('\x1b[F')) {
503
+ scrollOffset = maxScrollOffset();
504
+ consumed = 3;
505
+ }
506
+ else if (i === s.length - 1) {
507
+ exitScroll();
508
+ return;
509
+ } // lone Esc = exit
510
+ // else: an unrecognized CSI — skip just the ESC and resync on the next byte.
511
+ i += consumed;
512
+ changed = true;
513
+ continue;
514
+ }
515
+ const ch = s[i];
516
+ if (ch === 'k') {
517
+ scrollOffset -= 1;
518
+ changed = true;
519
+ }
520
+ else if (ch === 'j') {
521
+ scrollOffset += 1;
522
+ changed = true;
523
+ }
524
+ else if (ch === 'g') {
525
+ scrollOffset = 0;
526
+ changed = true;
527
+ }
528
+ else if (ch === 'G') {
529
+ scrollOffset = maxScrollOffset();
530
+ changed = true;
531
+ }
532
+ else if (ch === 'q') {
533
+ exitScroll();
534
+ return;
535
+ }
536
+ i++;
537
+ }
538
+ if (changed) {
539
+ clampScrollOffset();
540
+ renderScroll();
541
+ }
542
+ };
276
543
  // Coalesce shell output into throttled bar redraws so a full-screen app or a
277
544
  // `clear` can't leave the bar blank; in debug view, coalesce log-tail repaints.
278
545
  const timer = setInterval(() => {
546
+ // The pager manages its own render (and owns the alt screen) — the bar/debug
547
+ // redraws must not fire while it's up.
548
+ if (viewMode === 'scroll')
549
+ return;
279
550
  if (viewMode === 'debug') {
280
551
  if (debugDirty)
281
552
  renderDebug();
282
553
  }
554
+ // A pending alt-screen-exit repaint takes priority: it repaints the shell
555
+ // rows from the emulator's primary viewport (and redraws the bar), so it
556
+ // subsumes a plain barDirty this frame.
557
+ else if (altExitDirty)
558
+ repaintShellFromFrame();
283
559
  else if (barDirty)
284
560
  drawBar();
285
561
  }, FRAME_MS);
@@ -291,7 +567,14 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
291
567
  // off-bar mouse passthrough is correct the moment we switch back to the shell.
292
568
  const mouseWasOn = appMouseOn();
293
569
  scanAppMouse(chunk);
294
- if (viewMode !== 'debug') { // in the welcome/log view the shell is still buffered in replay
570
+ // Watch for the shell app leaving the alt buffer so we can repair the host's
571
+ // real terminal (which restores its own stale primary) — see scanAppAlt.
572
+ scanAppAlt(chunk);
573
+ // Paint live output ONLY on the shell view: the debug view buffers it in the
574
+ // replay, and the scroll pager owns the (alt) screen — writing shell bytes
575
+ // over it would corrupt the pager. The app-mouse/alt scans above still run in
576
+ // every mode so state stays correct for when we return to the shell.
577
+ if (viewMode === 'shell') {
295
578
  writeRaw(chunk);
296
579
  barDirty = true;
297
580
  // A full-screen app quitting turns mouse OFF, which also kills OUR bar-click
@@ -300,6 +583,27 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
300
583
  write(MOUSE_ENABLE);
301
584
  }
302
585
  });
586
+ // A fresh frame (from requestFrame) arrived: paint it into the shell area, but
587
+ // only if we're live and actually on the shell view. This drops the stale/late
588
+ // post-attach replay frame (fired at go-live while viewMode is 'debug') and any
589
+ // frame that lands after the host switched back to the debug view.
590
+ session.onFrame((frame) => {
591
+ // A fresh frame arrived → the daemon answered; cancel any armed old-daemon
592
+ // fallback so it can't also paint from the stale getReplay() cache.
593
+ clearFrameFallback();
594
+ if (!live || viewMode !== 'shell')
595
+ return;
596
+ paintShellFrame(frame);
597
+ });
598
+ // A scrollback snapshot arrived (from enterScroll's requestScrollback): render
599
+ // it starting at the BOTTOM (newest). Ignored unless we're still in the pager.
600
+ session.onScrollback((lines) => {
601
+ if (viewMode !== 'scroll')
602
+ return;
603
+ scrollLines = lines;
604
+ scrollOffset = Math.max(0, lines.length - (rows - 1));
605
+ renderScroll();
606
+ });
303
607
  session.onViewersChange((n) => { viewers = n; drawBar(); });
304
608
  session.onWindowState((state) => {
305
609
  windows = state.windows;
@@ -331,6 +635,10 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
331
635
  enterDebug();
332
636
  return;
333
637
  }
638
+ if (ch === '[') {
639
+ enterScroll();
640
+ return;
641
+ } // tmux-style: Ctrl-B [ = copy mode
334
642
  if (ch === 'c') {
335
643
  enterShell();
336
644
  session.newWindow();
@@ -374,6 +682,13 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
374
682
  }
375
683
  return; // never forward bar-row mouse events to the shell
376
684
  }
685
+ // Wheel-up on a shell row while the app isn't in mouse mode: the natural
686
+ // gesture to open the scrollback pager. (When the app wants mouse, the wheel
687
+ // still forwards to it below — existing behavior.)
688
+ if (viewMode === 'shell' && m.press && m.button === 64 && !appMouseOn()) {
689
+ enterScroll();
690
+ return;
691
+ }
377
692
  if (appMouseOn())
378
693
  session.write(new Uint8Array(raw)); // shell wants mouse
379
694
  // else swallow: bash gets no garbage clicks
@@ -385,6 +700,11 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
385
700
  // boundary so ordering across a window switch is preserved.
386
701
  let pendingPrefix = false;
387
702
  const onInput = (d) => {
703
+ // In the pager, keystrokes drive scrolling and are never sent to the shell.
704
+ if (viewMode === 'scroll') {
705
+ handleScrollInput(d);
706
+ return;
707
+ }
388
708
  let start = 0;
389
709
  for (let i = 0; i < d.length;) {
390
710
  const byte = d[i];
@@ -407,6 +727,18 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
407
727
  start = i;
408
728
  continue;
409
729
  }
730
+ // PageUp (ESC [ 5 ~) on the live shell view enters the scrollback pager —
731
+ // but only when a full-screen app isn't consuming mouse/alt (it would want
732
+ // PageUp itself); otherwise PageUp forwards to the shell as usual.
733
+ if (viewMode === 'shell' && !appMouseOn() && !appAltOn() &&
734
+ byte === 0x1b && d[i + 1] === 0x5b /* [ */ && d[i + 2] === 0x35 /* 5 */ && d[i + 3] === 0x7e /* ~ */) {
735
+ if (i > start)
736
+ session.write(new Uint8Array(d.subarray(start, i)));
737
+ enterScroll();
738
+ i += 4;
739
+ start = i;
740
+ continue;
741
+ }
410
742
  if (byte === PREFIX) {
411
743
  if (i > start)
412
744
  session.write(new Uint8Array(d.subarray(start, i)));
@@ -429,6 +761,15 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
429
761
  rows = stdout.rows || rows;
430
762
  if (!live)
431
763
  return;
764
+ // In the pager we own the alt screen (no scroll region): resize the shell so
765
+ // its emulator tracks the host size, then re-clamp the offset to the new page
766
+ // height and re-render the pager for the new dimensions.
767
+ if (viewMode === 'scroll') {
768
+ session.resize(cols, Math.max(1, rows - 1));
769
+ clampScrollOffset();
770
+ renderScroll();
771
+ return;
772
+ }
432
773
  const shellRows = Math.max(1, rows - 1);
433
774
  write('\x1b[r');
434
775
  write('\x1b[2J\x1b[H');
@@ -448,9 +789,12 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
448
789
  return;
449
790
  restored = true;
450
791
  clearInterval(timer);
792
+ clearFrameFallback(); // no stray frame-fallback paint after teardown
451
793
  session.dispose(); // release the log sink so any final logs print to stdout normally
452
794
  stdin.removeListener('data', onInput);
453
795
  stdout.removeListener('resize', onResize);
796
+ if (viewMode === 'scroll')
797
+ write('\x1b[?1049l'); // leave the pager's alt screen first
454
798
  write(MOUSE_DISABLE); // stop SGR mouse reporting we enabled for the bar
455
799
  write('\x1b[r'); // reset scroll region
456
800
  write('\x1b[2J\x1b[H'); // clear screen + home, so no stale bar/shell is left behind
@@ -488,7 +832,9 @@ function attachBarTerminal(session, output, initialCols, initialRows) {
488
832
  write('\x1b[2J\x1b[H');
489
833
  write(`\x1b[1;${shellRows}r`); // reserve the bottom row for the bar
490
834
  session.resize(cols, shellRows); // shell is authoritative-sized to rows-1
491
- scanAppMouse(session.getReplay()); // seed app-mouse state from the shell's screen
835
+ const goLiveFrame = session.getReplay({ scrollback: 0 });
836
+ scanAppMouse(goLiveFrame); // seed app-mouse state from the shell's screen
837
+ scanAppAlt(goLiveFrame); // seed alt-buffer state (no repaint: we're in debug)
492
838
  write(MOUSE_ENABLE); // enable SGR mouse reporting for the clickable bar
493
839
  live = true;
494
840
  // Start on the welcome/log view (viewMode defaults to 'debug'): the pinned
@@ -1 +1 @@
1
- {"version":3,"file":"host-terminal.js","sourceRoot":"","sources":["../src/host-terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-terminal.js","sourceRoot":"","sources":["../src/host-terminal.ts"],"names":[],"mappings":"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"}
package/dist/ipc.d.ts CHANGED
@@ -29,6 +29,25 @@ export type ClientToDaemon = {
29
29
  t: 'win';
30
30
  op: WindowOp;
31
31
  index?: number;
32
+ }
33
+ /**
34
+ * Ask the daemon for a FRESH serialized frame of this client's active window
35
+ * (optionally `scrollback` lines of history). The daemon replies with the
36
+ * existing `replay` frame — it already means "a serialized frame for
37
+ * getReplay()" — serialized on receipt, so it reflects the window's live
38
+ * screen at request time rather than the stale post-attach cache.
39
+ */
40
+ | {
41
+ t: 'refresh';
42
+ scrollback?: number;
43
+ }
44
+ /**
45
+ * Ask the daemon for the FULL scrollback of this client's active window as
46
+ * plain-text lines (history + current screen, oldest first), for the host's
47
+ * copy-mode pager. The daemon replies with a `scrollback` frame.
48
+ */
49
+ | {
50
+ t: 'scrollback';
32
51
  } | {
33
52
  t: 'detach';
34
53
  };
@@ -57,6 +76,11 @@ export type DaemonToClient =
57
76
  } | {
58
77
  t: 'url';
59
78
  url: string;
79
+ }
80
+ /** Plain-text scrollback lines answering a client `scrollback` request. */
81
+ | {
82
+ t: 'scrollback';
83
+ lines: string[];
60
84
  } | {
61
85
  t: 'exit';
62
86
  code: number | null;