Commit Graph

223 Commits

Author SHA1 Message Date
vorotamoroz f8f11f358a Handle multiple conflict revisions deterministically 2026-07-23 06:38:16 +00:00
vorotamoroz d784799969 Improve postponed conflict resolution handling
Keep unresolved conflicts visible after Not now, reopen them only on explicit requests, and clear stale warning and dialogue state when a replicated resolution arrives. Add typed provisional English messages, revision-tree regressions, specifications, and a focused Real Obsidian E2E.
2026-07-23 02:00:24 +00:00
vorotamoroz 87152244d7 Reprocess stored documents after reflection filters change 2026-07-22 06:23:16 +00:00
vorotamoroz 1ef8c88139 Complete Commonlib rc.6 integration and setup workflows 2026-07-21 15:00:28 +00:00
vorotamoroz f195b9be0c Serialise startup compatibility dialogues 2026-07-21 03:39:12 +00:00
vorotamoroz 3eda3316c5 Re-evaluate optional features for 1.0 2026-07-21 01:53:13 +00:00
vorotamoroz ed7471fba5 Validate custom HTTP request bodies 2026-07-20 23:37:04 +00:00
vorotamoroz 104eeadb4b Reduce Community lint type-safety warnings 2026-07-20 18:08:09 +00:00
vorotamoroz 499f9e93e5 Generate current Setup URIs through Commonlib 2026-07-20 15:59:59 +00:00
vorotamoroz 893c08ad2a Create remote profiles during onboarding 2026-07-20 14:33:09 +00:00
vorotamoroz 40a4987b0b Reserve setup initialisation before enabling settings 2026-07-20 14:20:10 +00:00
vorotamoroz 80d1416a81 Align host settings with the 1.0 lifecycle 2026-07-20 13:20:48 +00:00
vorotamoroz 52e7bd25da feat: restore opt-in first-run onboarding 2026-07-20 11:28:41 +00:00
vorotamoroz d28282edad Group Obsidian startup notices by operation 2026-07-19 07:04:54 +00:00
vorotamoroz ed3f81e9f9 Prepare the 1.0 compatibility review flow 2026-07-19 04:34:08 +00:00
vorotamoroz 52138bf7a5 Prefer focused Commonlib entry points 2026-07-18 18:16:16 +00:00
vorotamoroz 81d27a932f Route application diagnostics through owned log paths 2026-07-18 16:53:20 +00:00
vorotamoroz f6b03dc811 refactor: make Svelte prop lifetimes explicit 2026-07-17 15:04:01 +00:00
vorotamoroz 6e00b8195a fix: remove ineffective trash setting toggle 2026-07-17 14:55:30 +00:00
vorotamoroz 326bf77183 refactor: align platform APIs with community review 2026-07-17 14:47:27 +00:00
vorotamoroz 298738fc67 fix: keep packaged dialogs inside mobile safe areas 2026-07-17 13:28:58 +00:00
vorotamoroz a721d3b602 refactor: consume Commonlib as a package 2026-07-17 11:13:16 +00:00
Ouyang Xingyuan 8e0d5581f7 test: cover the non-bulk newest resolution entry point
Reason:
- The non-bulk notice regression test should exercise the real resolve-by-newest call path.

Changes:
- Resolve a mocked conflict through `_anyResolveConflictByNewest` and assert that its success notice remains visible.
2026-07-16 21:18:16 +09:00
Ouyang Xingyuan 32e992db93 fix: scope merge notice suppression to bulk resolution
Reason:
- Bulk newest resolution should not display one success notice per file, while non-bulk resolution must retain its existing notice.

Changes:
- Pass an explicit notice flag only through the bulk resolution path.
- Cover bulk suppression, non-bulk notices, and ten-file progress updates.
2026-07-16 21:18:16 +09:00
Ouyang Xingyuan 3103dc4f52 fix: suppress bulk conflict resolution notice spam
Bulk newest-revision conflict resolution created one notice per resolved file
and updated progress for nine out of every ten files.

Keep per-file bulk resolution success messages in the log without displaying
notices, update notice-level progress once every ten files, and cover both
behaviours with unit tests.
2026-07-16 21:18:16 +09:00
vorotamoroz ba7ea27d0c feat: distinguish remote operation and request activity 2026-07-16 20:13:10 +09:00
vorotamoroz 9f9758bc12 fix: align chunk reads with remote delivery
Consume commonlib's delivery lifecycle, classify finite replication entry points, and document why the five-minute inactivity fuse is only a leak safety valve. Record the remote-activity counter correction and preserve continuous replication's unbounded live channel.
2026-07-16 20:13:10 +09:00
vorotamoroz 31e9186930 Protect bounded remote activity across app lifecycle 2026-07-15 20:53:27 +09:00
Ouyang Xingyuan 45657ba39c fix: refresh Security Seed before replication
Reason:
- A client that remains open during a remote database rebuild can retain the previous Security Seed and upload documents encrypted with the wrong key.

Changes:
- Fetch the remote Security Seed at every replication preflight instead of reusing the process cache.
- Add a regression test and an unreleased change note for issue #1018.
2026-07-14 18:15:40 +08:00
vorotamoroz 431a845f18 fixed
- Journal upload issue
- Types and Setting Tab issue
2026-06-23 09:36:32 +01:00
vorotamoroz 62f44e38c0 Releasing 0.25.77 (#968)
Squash commits
2026-06-19 17:45:37 +09:00
vorotamoroz 4a5283543d for automatic review 2026-06-17 06:10:30 +01:00
vorotamoroz 2d5cdccf7d for automatic review 2026-06-17 05:51:01 +01:00
vorotamoroz 497fd04081 fix global references 2026-06-17 05:29:45 +01:00
vorotamoroz ae9c46f8f0 Fix import paths 2026-06-17 04:39:39 +01:00
vorotamoroz 089a4c0f8b ### Fixed
- Now S3 connection with custom headers works properly.
2026-06-15 10:41:26 +01:00
Miguel Ferreira 292a6b9e1e refactor: detect platform via APIService.isMobile() instead of Platform.isDesktopApp
Address the maintainer review on #949: determine the platform through the
plugin's own service layer (services.API.isMobile()) rather than Obsidian's
Platform API directly, matching the existing call in ObsidianLiveSyncSettingTab.
Applies to both PR-introduced sites: the runtime guard (ModuleObsidianEvents)
and the settings-pane toggle (PaneSyncSettings).

The TFile import becomes type-only so deps.ts is no longer pulled at runtime;
the unit test drives the platform through the services.API.isMobile() mock.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 10:45:40 +01:00
Miguel Ferreira c78e583399 feat: opt-in desktop setting to keep replication active in the background
Replication is suspended when the Obsidian window becomes hidden (document.hidden),
so LiveSync and Periodic stop syncing while minimised until the window is focused.

Add keepReplicationActiveInBackground (default off, desktop only). When enabled, the
window-visibility handler no longer suspends on hide, so replication keeps running while
minimised. Becoming visible forces a teardown before reopen (LiveSync only) so a stalled,
half-open channel is always replaced.

Includes the setting definition (src/lib submodule), a desktop-only toggle in the Sync
pane shown for LiveSync and Periodic, a docs/settings.md entry, and unit tests for the
visibility handler.
2026-06-05 00:06:26 +01:00
vorotamoroz 2aa8bc1165 fix: adjust CouchDB's database name checking to its specification (#926). 2026-06-04 10:35:15 +01:00
vorotamoroz 1bef5fbef3 Merge branch 'fix_warns' into improve_first_fetch 2026-06-02 12:36:32 +01:00
vorotamoroz 7d2ba1b0b9 ### Improved
- Database fetching (a.k.a. Reset Synchronisation on This Device) on the initialisation now supports streaming and is faster (CouchDB only)
- The database fetching process has been streamlined, and database operations are now suspended until it has been completed
- The initial synchronisation process has been simplified, making it easier to synchronise files with the remote server
- We can select the remote database to fetch from during the initialisation, when there are multiple remote databases configured (e.g. multiple CouchDBs or S3 remotes)
2026-06-02 12:34:46 +01:00
vorotamoroz 674d68b7d9 Fixed:
-  No longer the status element breaks other plugins' interaction (#930).
2026-06-01 12:05:31 +01:00
vorotamoroz 0e6dd300ef Merge branch 'fix_warns' into improve_first_fetch 2026-06-01 11:22:01 +01:00
vorotamoroz 6ab1556880 prettify 2026-06-01 11:19:32 +01:00
vorotamoroz cd2bff5fc7 Refactor types in svelte components. 2026-06-01 11:18:23 +01:00
vorotamoroz 5a280c7919 (feat): Bulk database fetching is now work in progress. This feature is expected to speed up rebuilds and setups. (WIP) 2026-06-01 10:41:48 +01:00
vorotamoroz c6697327d5 Fixed typings
Fixed wrong typing for serviceHub, svelte dialog
2026-06-01 06:20:33 +01:00
vorotamoroz 7c203a522a Aligned to eslint rules and fixed following things:
This commit may contains behavioural changes.

- Fix for the issue with corrupted log displays
- Wrap the activeDocument
- Reduced potential type errors and strengthened certain checks
- Made error handling more robust (by rewriting the error class)
2026-06-01 05:28:03 +01:00
vorotamoroz c80c294d93 satisfies
Address following rules
-
- @typescript-eslint/unbound-method
- obsidianmd/prefer-active-doc
- obsidianmd/prefer-window-timer

Improve typing
2026-06-01 04:20:47 +01:00
vorotamoroz 3e65ae932d Address following rules
- @typescript-eslint/no-redundant-type-constituents
2026-06-01 03:50:51 +01:00