Skip to content

0.1.2

Choose a tag to compare

@NoteNerdOfficial NoteNerdOfficial released this 10 Aug 16:15
· 1 commit to main since this release

Fixes tab syncing freezing terminal panes (and any other view that does real work in getState()).

The 3-second reconcile pass called leaf.getViewState() two or three times per open leaf, wrote data.json, and re-rendered the sidebar once per tab — all on the main thread. Against a live Terminus terminal, whose view state includes its whole scrollback buffer and changes on every keystroke, that check never matched, so every pass paid the full cost.

  • Store writes across a pass are batched into one save and one re-render.
  • Each leaf's view state is read once per pass instead of 2–3 times.
  • The 3s timer now syncs titles only — the one thing it exists to catch. View state refreshes on real layout changes plus at most every 30s, so a web viewer tab's URL still can't go stale.
  • Oversized values are dropped before persisting, so a terminal tab stores its working directory (what reopening it needs) rather than its transcript. Existing entries are cleaned up on the first pass after upgrading.