0.25.43-patched-5
17th February, 2026
Yes, we mostly have got refactored!
Refactored
-
Following properties of
ObsidianLiveSyncPluginare now initialised more explicitly:- property : what is responsible
storageAccess:ServiceFileAccessObsidiandatabaseFileAccess:ServiceDatabaseFileAccessfileHandler:ServiceFileHandlerrebuilder:ServiceRebuilder- Not so long from now, ServiceFileAccessObsidian might be abstracted to a more general FileAccessService, and make more testable and maintainable.
- These properties are initialised in
initialiseServiceModulesonObsidianLiveSyncPlugin. - They are
ServiceModules.- Which means they do not use dynamic binding themselves, but they use bound services.
- ServiceModules are in src/lib/src/serviceModules for common implementations, and src/serviceModules for Obsidian-specific implementations.
- Hence, now all ambiguous properties of
ObsidianLiveSyncPluginare initialised explicitly. We can proceed to testing.- Well, I will release v0.25.44 after testing this.
-
Conflict service is now responsible for
resolveAllConflictedFilesByNewerOnesfunction, which has been in the rebuilder. -
New functions
updateSettings, andapplyPartialhave been added to the setting service. We should use these functions instead of directly writing the settings onObsidianLiveSyncPlugin.setting. -
Some interfaces for services have been moved to src/lib/src/interfaces.
-
RemoteService.tryResetDatabaseandtryCreateDatabaseare now moved to the replicator service.- You know that these functions are surely performed by the replicator.
- Probably, most of the functions in
RemoteServiceshould be moved to the replicator service, but for now, these two functions are moved as they are the most related ones, to rewrite the rebuilder service.
-
Common functions are gradually moved to the common library.
-
Now, binding functions on modules have been delayed until the services and service modules are initialised, to avoid fragile behaviour.