Skip to content

0.267.14

Choose a tag to compare

@github-actions github-actions released this 16 Aug 18:30
· 4 commits to main since this release

0.267.14

Mostly a performance release, and a mobile one. Covering notes is dramatically
cheaper on a phone, the list no longer flickers when you add a note, and the
Send button is reliable again.

Covered notes stopped making the list stutter

Blurring a note used to promote it to its own compositing layer. With a screen
full of covered notes, a phone has neither the memory nor the fill rate for
that, and it showed:

typical frame slowest 10% worst frame
before 17ms 172ms 862ms
after 17ms 18ms 71ms
not covered, for comparison 17ms 18ms 41ms

The typical frame was identical throughout, which is why this went unnoticed
for so long — the stutter lived entirely in the occasional frame, and only on a
phone. Desktop measured the same either way, both before and after.

Covered text is now blurred while it is drawn, rather than drawn and then
blurred, which needs no compositing layer at all. Scrolling a list of covered
notes now costs essentially what scrolling an uncovered one does.

A solid bar, if you prefer it

Settings → How covered notes look offers Blur or Solid bar. The bar is
cheaper again, and hides more: a blur still leaks word shapes and lengths, and
short text can be guessable from those. Blur remains the default.

The Send button is reliable again

On mobile, Send now acts the moment your finger lifts, rather than waiting for a
click that the platform sometimes never delivered. It had been intermittent
since the composer buttons were reworked — the guard that stops a tap dismissing
the keyboard was also, on iOS, suppressing the tap itself.

Less flicker

  • Adding a note repaints the list once when everything settles, instead of
    three or four times as the write, the index and the parent link each land. The
    new note still appears instantly, including when you add several in a row.
  • Background tabs no longer re-render while you cannot see them. A Stashpad
    holding several hundred notes was rebuilding its whole list on every change,
    competing with the tab you were actually looking at. It renders the moment you
    switch to it, so nothing is stale.

Diagnostics

Four commands, so they are reachable while reproducing something rather than
four taps into Settings:

  • Copy debug trace to clipboard
  • Clear debug trace
  • Turn the debug trace on / off
  • Measure scroll performance — scrolls the list and records real frame
    times, which is what produced the table above.

The trace itself is more useful too: repeated identical lines collapse to a
count, so more history fits in the buffer and there is less to copy; it reports
Obsidian's version correctly; and it names your device when Obsidian Sync has
one, since a phone cannot otherwise be told apart from another phone.

Also

  • The two global cover commands are worded as a pair.
  • Obsidian's version is read from the plugin API rather than the browser, which
    is a community-plugin requirement.