ZIm/crates/terminal_view/src
Agus Zubiaga b103d7621b
Improve handling of large output in embedded terminals (#32416)
#31922 made embedded terminals automatically grow to fit the content. We
since found some issues with large output which this PR addresses by:

- Only shaping / laying out lines that are visible in the viewport
(based on `window.content_mask`)
- Falling back to embedded scrolling after 1K lines. The perf fix above
actually makes it possible to handle a lot of lines, but:
- Alacrity uses a `u16` for rows internally, so we needed a limit to
prevent overflow.
- Scrolling through thousands of lines to get to the other side of a
terminal tool call isn't great UX, so we might as well set the limit
low.
- We can consider raising the limit when we make card headers sticky.

Release Notes:

- Agent: Improve handling of large terminal output
2025-06-09 18:11:31 -03:00
..
persistence.rs agent: Display full terminal output without scrolling (#31922) 2025-06-03 10:54:25 -07:00
terminal_element.rs Improve handling of large output in embedded terminals (#32416) 2025-06-09 18:11:31 -03:00
terminal_panel.rs Do not activate inactive tabs when pinning or unpinning 2025-06-03 17:43:06 -04:00
terminal_scrollbar.rs Reapply "ui: Account for padding of parent container during scrollbar layout" (#30577) 2025-05-14 13:26:14 +02:00
terminal_slash_command.rs chore: Make terminal_view own the TerminalSlashCommand (#31070) 2025-05-21 09:27:54 +00:00
terminal_tab_tooltip.rs chore: Bump Rust edition to 2024 (#27800) 2025-03-31 20:55:27 +02:00
terminal_view.rs Improve handling of large output in embedded terminals (#32416) 2025-06-09 18:11:31 -03:00