Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 0 additions & 21 deletions ui-tui/src/components/appLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,27 +104,6 @@ const TranscriptPane = memo(function TranscriptPane({
flexDirection="column"
flexGrow={1}
flexShrink={1}
// Remount on width change — inline mode only.
//
// Inline mode has no constrained-height root (ink lays the tree out
// with `calculateLayout(columns)`, height undefined), so the ScrollBox
// sizes to its content. Widening the terminal re-wraps every row
// shorter, but the box does NOT shrink with them: it keeps its
// pre-resize height and pads the difference with blank rows. Those
// blanks push the transcript above the terminal viewport, and the
// resize repaint's ERASE_SCROLLBACK (log-update fullReset →
// clearTerminal) wipes it from scrollback — so the whole transcript
// reads as gone, with only the composer left on screen.
//
// A fresh Yoga node has no prior layout to keep, so remounting is what
// actually re-measures. Marking the tree dirty is NOT enough (tested).
// Every transcript row already remounts on a width change (useMainApp
// keys virtualRows on `cols`), so this adds no new render cost.
//
// Fullscreen pins the root to terminalRows, so its ScrollBox can never
// drift — and keying there would throw away the user's scroll position
// on every resize.
key={INLINE_MODE ? composer.cols : undefined}
onClick={(e: { cellIsBlank?: boolean }) => {
if (e.cellIsBlank) {
actions.clearSelection()
Expand Down
Loading