Skip to content

Basalt Sync 0.8.5

Choose a tag to compare

@waynehoover waynehoover released this 14 Sep 05:17
· 36 commits to main since this release

Faster on a large vault, and a first sync that no longer opens an empty box at you.

Faster

  • Renaming a folder no longer re-encrypts everything inside it. A rename changes no byte, so the server already has every chunk; the plugin was reading, splitting and encrypting every note under the folder to rediscover a list it already had. At 10,000 notes that move is 1,177 ms → 832 ms.
  • Listing the vault is about twice as fast on a large one. 37.9 ms → 21.1 ms at 50,000 notes. Every path was building a throwaway list and sorting it to answer a question that is false for essentially every path, and filenames were being Unicode-normalised again on every pass.
  • Less allocation in an ordinary pass, and the open note is published between the pieces of a large download rather than after it.

Clearer

  • A first sync with nothing to do says so, instead of offering a "File details" chevron that opens onto an empty box. It also tells "everything here already matches" apart from "there is nothing here yet".
  • The connection details say the one thing worth acting on, in one line, rather than three sentences about encryption in a panel whose last row links to the guide.

Upgrade

Update the plugin through Obsidian or replace its three files. CLI users can run npm install -g basalt-sync@0.8.5. Take server 0.8.5 as well. When this note first went out it said the server was unchanged and needed no upgrade. Within the hour I found 0.8.4 refusing every batch on my own server, so there is now a server 0.8.5 that fixes it, and you want it. Protocol 7 and the stored data format are still the same, so a client on either version works against a server on either version, and existing pairings keep working.

The timings above are on a laptop, measured with bun run bench:pass and the new BENCH_LIST=1 listing benchmark; docs/research.md has the method and the first Android figures this project has taken.