Skip to content

v0.85.2

Choose a tag to compare

@magifd2 magifd2 released this 29 Sep 05:26
· 35 commits to main since this release

Fixed

  • Narrowing the window no longer clears the screen (ADR-0094). Pictures
    on the screen — mermaid diagrams and /show — stay, and no empty screens
    pile into the scrollback: v0.85.0's known limitation. A shrink now erases
    only the rows the input frame gained by re-wrapping. Measured on iTerm2 and
    kitty, by hand, driven and by mouse drag: no stale copy of the box, no
    empty rows, no lost line, the picture kept. Before, the same drag left
    565 empty rows and seven copies of the box in iTerm2's scrollback, and
    kitty lost every line and picture that was on the screen.

Changed

  • The input box's rows end where their text ends (ADR-0094).
    They were drawn padded with spaces to the full width, so a repaint during
    a window resize — the cursor blink is one — wrote a row as wide as the old
    width into a narrower terminal and left a stale copy of the box behind.
    The input line's highlight still spans the window, drawn as an erase to
    the edge in its colour, and now follows the window's width.
  • While the window's width is changing, the frame below the conversation
    is drawn short
    (ADR-0094) — every row cut to 19 cells until no report
    changing the width has come for 400 ms, then drawn in full. iTerm2 tells the program its new
    width only about every 200 ms while it moves its screen continuously, so
    a full-width row drawn in between could land wider than the screen.

Development

  • make resizeprobe (ADR-0094) — the instrument the fix above was
    chosen with. It runs the real TUI in a terminal, narrows and widens the
    window, and counts stale frames, empty rows and lost history from the
    terminal's own text. -auto kitty|iterm2 does it in a new window with
    nobody at the keyboard — exact widths, a mouse drag (-drag), screenshots
    and a trace of every flush — and -drive does the text part under tmux.