Skip to content

v0.5.8

Choose a tag to compare

@github-actions github-actions released this 13 Sep 02:20
· 36 commits to main since this release
2f558b8

What's new

Scrolling back through a long session — no more being pulled to the bottom

Fixes a regression introduced in 0.5.7. Open a session you've been running for a
while and scroll up into its history, and the view kept dragging you back down to
the newest messages. The mount window that made session switching instant had also
taken scroll anchoring away from the browser and done the compensation by hand — and
the hand-rolled version only knew the height that was inserted at the exact moment of
the update. Markstream's rows arrive in two steps (a 600px placeholder first, their
real height 100–300ms later — a real long session collapses by ~4400px while it
settles), so every settle silently dragged the scroll position down; landing at the
bottom then re-armed "follow", which pinned the view there.

Scroll anchoring belongs to the browser again: it compensates both the rows inserted
above the viewport and the heights that settle afterwards. The hand-rolled path is
down to one real gap — Chromium does not adjust the anchor when the scroll offset is
exactly 0 (there is nothing above to adjust to), where a drift check fills in the
difference and does nothing otherwise.

Measured with real wheel events (55 steps of scrolling up, asserting that the row at
the top of the viewport only ever moves toward earlier messages): the 0.5.7 build
violated that 11 times, this build 0 times. Switching between sessions is still
instant (first frame 37–51ms on long real sessions), and a bottom-pinned view still
stays pinned while new messages stream in.


Download: macOS (Apple Silicon / Intel) · Windows x64 · Linux x64 (AppImage) — see assets below.
Existing installs will offer the update from the title bar or Settings → About
(on adhoc-signed macOS builds the button opens this page instead).