Releases: vrtmrz/obsidian-livesync
0.25.59
0.25.58
0.25.58
I have finally managed to finalise my day job, released some service, sent the golden master up, and made progress on submitting my paper. It is a real struggle. So sorry it has taken so long.
I have noticed that Copilot has started appearing as a co-author on my commits. It is true, but it is just a co-author. As I am the one in charge, I make sure to review the work. So please let us know if you encounter any issues, just as usual.
Fixed
- No longer credentials are broken during object storage configuration (related: #852).
- Fixed a worker-side recursion issue that could raise
Maximum call stack size exceededduring chunk splitting (related: #855). - Improved background worker crash cleanup so pending split/encryption tasks are released cleanly instead of being left in a waiting state (related: #855).
- On start-up, the selected remote configuration is now applied to runtime connection fields as well, reducing intermittent authentication failures caused by stale runtime settings (related: #855).
- Issue report generation now redacts
remoteConfigurationsconnection strings and keeps only the scheme (e.g.sls+https://), so credentials are not exposed in reports. - Hidden file JSON conflicts no longer keep re-opening and dismissing the merge dialogue before we can act, which fixes persistent unresolvable
data.jsonconflicts in plug-in settings sync (related: #850).
0.25.57
0.25.57
9th April, 2026
Fixed
- Packing a batch during the journal sync now continues even if the batch contains no items to upload.
- No unexpected error (about a replicator) during the early stage of initialisation.
- Now error messages are kept hidden if the show status inside the editor is disabled (related: #829).
- Fixed an issue where devices could no longer upload after another device performed 'Fresh Start Wipe' and 'Overwrite remote' in Object Storage mode (#848).
- Each device's local deduplication caches (
knownIDs,sentIDs,receivedFiles,sentFiles) now track the remote journal epoch (derived from the encryption parameters stored on the remote). - When the epoch changes, the plugin verifies whether the device's last uploaded file still exists on the remote. If the file is gone, it confirms a remote wipe and automatically clears the stale caches. If the file is still present (e.g. a protocol upgrade without a wipe), the caches are preserved, and only the epoch is updated. This means normal upgrades never cause unnecessary re-processing.
- Each device's local deduplication caches (
Translations
New features
- Now we can configure multiple Remote Databases of the same type, e.g, multiple CouchDBs or S3 remotes.
- A user interface for managing multiple remote databases has been added to the settings dialogue. I think no explanation is needed for the UI, but please let me know if you have any questions.
- We can switch between multiple Remote Databases in the settings dialogue.
CLI
Fixed
- Replication progress is now correctly saved and restored in the CLI (related: #846).
0.25.56+patched5
0.25.56+patched5
Well, you see, this is the beta, the second of today.
6th April, 2026
Fixed
- Packing a batch during the journal sync now continues even if the batch contains no items to upload.
0.25.56+patched4
0.25.56+patched4
6th April, 2026
Fixed
- Remote configuration URIs are now correctly encrypted when saved after editing in the settings dialogue.
- Fixed an issue where devices could no longer upload after another device performed 'Fresh Start Wipe' and 'Overwrite remote' in Object Storage mode (#848).
- Each device's local deduplication caches (
knownIDs,sentIDs,receivedFiles,sentFiles) now track the remote journal epoch (derived from the encryption parameters stored on the remote). - When the epoch changes, the plugin verifies whether the device's last uploaded file still exists on the remote. If the file is gone, it confirms a remote wipe and automatically clears the stale caches. If the file is still present (e.g. a protocol upgrade without a wipe), the caches are preserved and only the epoch is updated. This means normal upgrades never cause unnecessary re-processing.
- Each device's local deduplication caches (
0.25.56+patched3
0.25.56+patched3
5th April, 2026
Fixed
- Now, surely remote configurations are editable in the settings dialogue.
- We can fetch remote settings from the remote and apply them to the local settings for each remote configuration entry.
- No longer does layout breaking occur when the description of a remote configuration entry is too long.
0.25.56+patched2
0.25.56+patched2
5th April, 2026
Beta release tagging is now changed to +patched1, +patched2, and so on.
Translations
- Russian translation has been added! Thank you so much for the contribution!
Fixed
- No unexpected error (about a replicator) during the early stage of initialisation.
- Now error messages are kept hidden if the show status inside the editor is disabled.
New features
- Now we can configure multiple Remote Databases of the same type, e.g, multiple CouchDBs or S3 remotes.
- We can switch between multiple Remote Databases in the settings dialogue.
CLI
Fixed
- Replication progress is now correctly saved and restored in the CLI.
0.25.56
0.25.55 0.25.56
This release is identical to 0.25.55, but the release date is corrected.
30th March, 2026
Fixed
- No longer
Peer-to-Peer Sync is not enabled. We cannot open a new connection.error occurs when we have not enabled P2P sync and are not expected to use it (#830).
CLI
0.25.54
0.25.54
18th March, 2026
Fixed
- Remote storage size check now works correctly again (#818).
- Some buttons on the settings dialogue now respond correctly again (#827).
Refactored
- P2P replicator has been refactored to be a little more robust and easier to understand.
- Delete items which are no longer used that might cause potential problems
CLI
- Fixed the corrupted display of the help message.
- Remove some unnecessary code.
WebApp
- Fixed the issue where the detail level was not being applied in the log pane.
- Pop-ups are now shown.
- Add coverage for the test.
- Pop-ups are now shown in the web app as well.
0.25.53
0.25.53
17th March, 2026
I did wonder whether I should have released a minor version update, but when I actually tested it, compatibility seemed to be intact, so I didn’t. Hmm.
Fixed
P2P Synchronisation
- Fixed flaky timing issues in P2P synchronisation.
- No longer unexpected
Unhandled Rejectionsduring P2P operations (waiting for acceptance).
Journal Sync
- Fixed an issue where some conflicts cannot be resolved in Journal Sync.
- Many minor fixes have been made for better stability and reliability.
Tests
- Rewrite P2P end-to-end tests to use the CLI as a host.
CLI
We have previously developed FileSystem LiveSync and various other components in a separate repository, but updates have been significantly delayed, and we have been plagued by compatibility issues. Now, a CLI tool using the same core logic is emerging. This does not directly manipulate the file system, but it offers a more convenient way of working and can also communicate with Object Storage. We can also resolve conflicts. Please refer to the code in src/apps/cli for the self-hosted-livesync-cli for more details.
-
Add
self-hosted-livesync-clitosrc/apps/clias a headless and dedicated version. -
P2P sync and Object Storage are also supported in the CLI.
- Yes, we have finally managed to 'get one file'.
- Also, no more need for a LiveSync PeerServer for virtual environments! The CLI can do it.
-
Now binary files are also supported in the CLI.
Refactored or internal changes
- ServiceFileAccessBase now correctly handles the reading of binary files.
- HeadlessAPIService now correctly provides the online status (always online) to the plug-in.
- Non-worker version of bgWorker now correctly handles some functions.
- Separated
ObsidianLiveSyncPluginintoObsidianLiveSyncPluginandLiveSyncBaseCore. - Now
LiveSyncCoreindicates the type specified version ofLiveSyncBaseCore. - Referencing
plugin.xxxhas been rewritten to referencing the corresponding service orcore.xxx. - Offline change scanner and the local database preparation have been separated.
- Set default priority for processFileEvent and processSynchroniseResult for the place to add hooks.
- ControlService now provides the readiness for processing operations.
- DatabaseService is now able to modify database opening options on derived classes.
- Now
useOfflineScanner,useCheckRemoteSize, anduseRedFlagFeaturesare set frommain.ts, instead ofLiveSyncBaseCore. - Storage Access APIs are now yielding Promises. This is to allow more limited storage platforms to be supported.
- Journal Replicator now yields true after the replication is done.
R&D
- Browser-version of Self-hosted LiveSync is now in development. This is not intended for public use now, but I will eventually make it available for testing.
- We can see the code in
src/apps/webappfor the browser version.