Files
orca/tests/e2e
Jinwoo-HandOrca 18f99f9e34 fix(terminal): converge revealed inline-TUI panes without a manual resize
Field bug (v1.4.144-rc.4): switching to a workspace with a streaming
inline TUI (Codex) periodically shows a mostly-blank pane (viewport
stranded mid-buffer, input box missing) or a bottom gap (PTY rows !=
pane rows) until a manual resize forces SIGWINCH.

Three independent losing legs on the reveal path, each fixed:

1. Stranded corrective fit: the reattach/hidden-snapshot replay parks
   its PTY-resize continuation behind "the next successful fit"; when
   the pane is momentarily unmeasurable mid-reveal, no later fit is
   guaranteed (container size may already be final), leaving xterm at
   snapshot dims with no forwarded resize. safeFitAndThen now actively
   retries on settled frames (bounded) and breadcrumbs on exhaustion.

2. Swallowed replay paint: the cold-park remount path has no reveal
   repaint, so a replay parsed while xterm's RenderService is paused
   (IntersectionObserver lags the reveal) never painted. The settle
   refresh now drives one synchronous render through the pause latch
   (extends the #7614 release to the remount path).

3. Viewport stranded at the snapshot bottom: the reveal's bottom anchor
   is a one-shot that runs before deferred live chunks parse; an inline
   TUI keeps appending across the reveal. Re-enforce the restored scroll
   intent after the deferred drain parses (pins preserved).

New regression harness: tests/e2e/terminal-inline-tui-reveal-convergence
drives a codex-shaped inline fixture (agent-marked tab, scrollback
inserts + bottom live block, synchronized output, mouse reporting)
through hidden/parked/flapping/resize reveals under CPU throttle and
asserts convergence with no resize: viewport at bottom, fresh frame +
input row visible, still following, xterm == fit proposal == applied
PTY size, and painted-pixel ink in the live-block band (WebGL forced).

Co-authored-by: Orca <help@stably.ai>
2026-07-17 02:19:34 -04:00
..
2026-06-10 17:23:12 -07:00
2026-06-18 00:11:32 -07:00