github vrtmrz/obsidian-livesync 0.25.43-patched-1

pre-release8 hours ago

0.25.43-patched-1

13th February, 2026

NOTE: Hidden File Sync and Customisation Sync may not work in this version.

Just a heads-up: this is a patch version, which is essentially a beta release. Do not worry about the following memos, as they are indeed freaking us out. I trust that you have thought this was too large; you're right.

If this cannot be stable, I will revert to 0.24.43 and try again.

Refactored

  • Now resolving unexpected and inexplicable dependency order issues...

  • The function which is able to implement to the service is now moved to each service.

    • AppLifecycleService.performRestart
  • VaultService.isTargetFile is now using multiple checkers instead of a single function.

    • This change allows better separation of concerns and easier extension in the future.
  • Application LifeCycle has now started in ServiceHub, not ObsidianMenuModule.

    • It was in a QUITE unexpected place..., isn't it?
    • Instead of, we should call await this.services.appLifecycle.onReady() in other platforms.
    • As in the browser platform, it will be called at DOMContentLoaded event.
  • ModuleTargetFilter, which is responsible for parsing ignore files, has been refined.

    • This should be separated to a TargetFilter and an IgnoreFileFilter for better maintainability.
  • Using API.addCommand or some Obsidian API and shimmer APIs, Many modules have been refactored to be derived to AbstractModule from AbstractObsidianModule, to clarify the dependencies. (we should make app usage clearer...)

  • Fixed initialising storageAccess too late in FileAccessObsidian module (I am still wondering why it worked before...).

  • Remove some redundant overrides in modules.

Planned

  • Some services have an ambiguous name, such as Injectable. These will be renamed in the future for better clarity.
  • Following properties of ObsidianLiveSyncPlugin should be initialised more explicitly:
    • property : where it is initialised currently
    • localDatabase : ModuleLocalDatabaseObsidian
    • managers : ModuleLocalDatabaseObsidian
    • replicator : ModuleReplicator
    • simpleStore : ModuleKeyValueDB
    • storageAccess : ModuleFileAccessObsidian
    • databaseFileAccess : ModuleDatabaseFileAccess
    • fileHandler : ModuleFileHandler
    • rebuilder : ModuleRebuilder
    • kvDB: ModuleKeyValueDB
    • And I think that having a feature in modules directly is not good for maintainability, these should be separated to some module (loader) and implementation (not only service, but also independent something).
  • Plug-in statuses such as requestCount, responseCount... should be moved to a status service or somewhere for better separation of concerns.

Don't miss a new obsidian-livesync release

NewReleases is sending notifications on new releases.