github vrtmrz/obsidian-livesync 1.0.44

3 hours ago

1.0.44

1st November, 2026

Recently, I have been concentrating on maintenance and improvements to individual features. I began to wonder whether I had been focusing a little too closely on the details and could give more attention to the overall picture. That led me to a somewhat broader round of changes, including reworking parts of the architecture. Along the way, I was able to bring several implementations of the same concepts together, introduce shared abstractions, and tidy up the codebase a little.

Please let me know if any problems arise from these changes.

Fixed

Synchronisation

  • Files containing a raw unit separator (U+001F) are no longer truncated when received through S3-compatible Object Storage. (#1303)

    • Update every participating client to prevent further truncation. Updating alone does not repair copies already damaged.
    • Before recovery, preserve verified intact copies, unique unsynchronised edits, and any required history, then follow the recovery procedure.
    • Rebuild and Fetch leave Hidden File Sync and Customisation Sync disabled. Initialise them deliberately after ordinary file recovery is complete.
  • We can continue CouchDB synchronisation after rebuilding an encrypted remote when Use Internal API is enabled. (#1234)

    • Cached responses encrypted with the previous Security Seed no longer interfere with subsequent reads.

Conflict resolution

  • A queued conflict check no longer gets stuck waiting for a response to an outdated comparison of the same file.

Hidden File Sync and Customisation Sync

  • Newer local hidden files are no longer omitted when initialising Hidden File Sync with Merge.
  • Refreshing the Customisation Sync catalogue no longer brings back outdated items from an earlier scan.

Improved

Hidden File Sync

  • We can review the latest hidden-file revisions when changes arrive during a manual JSON comparison.
    • The earlier comparison closes, and the latest revisions are checked again. If another device has resolved the conflict, the comparison closes without asking for another selection.

Sunset

Recovery

  • Recovery from old cleanup locks is now unified around the standard recovery dialogue, including on devices using the legacy IndexedDB adapter.
    • Use Fetch to reconstruct the local database from the remote, unlock the device when both databases are already aligned, or dismiss the dialogue.
    • These choices replace the legacy in-place Cleanup operation. Garbage Collection V3 remains available.
    • Before Fetch, preserve unsynchronised work and any required local history, as it replaces the local database.

CLI

Fixed

  • We can continue using the reconstructed database after CLI fetch or rebuild, avoiding the empty-database restart and file deletion reported in #1304.

    • Subsequent commands retain the selected database even without --write-settings. Interrupted reconstruction blocks ordinary synchronisation until recovery.
    • Older runtime state with no recorded owner requires explicit reconstruction from a verified source. Back up unique edits before choosing Fetch or Rebuild.
  • The CLI mirror starts correctly on Windows when the Vault path is omitted and the database directory is also used as the Vault.

Miscellaneous

  • Installation and update downloads are smaller.
  • Database initialisation handles encrypted change notifications more reliably. (Commonlib #191)

Acknowledgements

Thank you for your contributions!

  • @AdrianNicu, for improving decryption handling during database initialisation (Commonlib #191).

Don't miss a new obsidian-livesync release

NewReleases is sending notifications on new releases.