CORE · HISTORY
History and the current screen share one model.
History is not a separate text log. It retains complete cell semantics and is fetched in pages using stable anchors.
Unified cell model
The primary viewport and history share cells, styles, widths, wrapping, and logical-line identity. Resize and reflow do not require reconstructing content from ANSI byte offsets.
Anchors and paging
The client requests older pages with a (logical_line_id, cell_offset) Anchor. Logical-line IDs are not reused inside a Terminal, so scroll position stays stable across reflow.
Retention limits
Default row limit10,000 rows
The first limit reached triggers trimmingDefault byte limit8 MiB
The server trims only the oldest history prefix and returns an explicit boundary when an Anchor has already been trimmed.
Alternate screen
Full-screen terminal applications use the alternate screen, which has no history paging. Leaving it returns the client to the primary screen and its history timeline.