Commit Graph
126 Commits
Author SHA1 Message Date
Kim Jansheden 893a0e26c3 fix(sync): honour readiness and suspension in Customisation Sync
(src/features/ConfigSync/CmdConfigSync.ts)
- Call the readiness predicate before accepting configuration file events.
- Stop the periodic sweep while settings are applied and let the resume lifecycle scan and restart it once.

(src/features/ConfigSync/CmdConfigSync.applySettings.unit.spec.ts)
- Exercise the ControlService settings path while active, suspended, and resumed.
- Verify that suspended settings application performs no scan and leaves the periodic sweep stopped.

(src/features/ConfigSync/CmdConfigSync.readiness.unit.spec.ts)
- Cover configuration file events before and after application readiness.

(updates.md)
- Document the readiness and suspension behaviour.
2026-10-03 15:05:17 +02:00
vorotamoroz fc71c2a9e7 Merge tested Customisation Sync timestamps and current main 2026-09-30 16:42:43 +00:00
vorotamoroz a790d88b97 Merge main for current Customisation Sync regression coverage 2026-09-30 16:20:40 +00:00
vorotamoroz bf7822f20b Add independent ID key configuration and recovery 2026-09-29 12:58:11 +00:00
vorotamoroz d1405f2fb4 Clarify the managed TURN provider label 2026-09-16 09:12:05 +00:00
vorotamoroz 11a07b26af Use host preparation for TURN connection settings 2026-09-16 03:43:09 +00:00
Immick f1746fa4b8 fix(customisation-sync): hide identical items with "Hide not applicable items"
The checkbox only toggled a CSS class for rows labelled "All the same or
non-existent", while `hideNotApplicable`, which filters the offered
devices by whether their copy can be applied, was hard-coded to false.
Items present on another device therefore stayed visible even when every
copy was the same.

Drive `hideNotApplicable` from the checkbox, so the comparison only runs
while it is on, and pass it to the reactive update so toggling it
re-evaluates the rows. The term selection moves into PluginTerms.ts so it
can be unit-tested.

Fixes #1193
2026-09-15 22:03:51 +03:00
Immick b7f38abae9 fix(customisation-sync): stop truncating entry mtimes to 32 bits
PluginDataExDisplayV2.mtime applied `~~` to the sum of millisecond
timestamps before dividing, which keeps only the low 32 bits. The
freshness chip and "Select All Shiny" then compared wrapped values and
could offer an older copy as newer.

Fixes #1194
2026-09-15 22:03:51 +03:00
vorotamoroz a565070809 Use profile storage for TURN source settings 2026-09-15 18:28:20 +00:00
vorotamoroz ab55eb5aff Use existing Setup URI and QR sharing for TURN settings 2026-09-15 17:18:40 +00:00
vorotamoroz 93bc161f20 Add optional Cloudflare TURN credentials and secure profile sharing 2026-09-15 16:20:03 +00:00
vorotamoroz ef3033d8db Restore Sync now progress and recovery policy 2026-09-01 18:00:08 +00:00
vorotamoroz 8e506fdbc7 Retire redundant P2P Review Harness check 2026-09-01 12:08:50 +00:00
vorotamoroz cab6679c2b Route interactive P2P UI through focused views 2026-09-01 11:33:54 +00:00
vorotamoroz 3f76ad796e Migrate P2P UI and CLI transfers to service views 2026-08-31 15:06:39 +00:00
vorotamoroz 76318944a4 Route P2P Setup probes through the room owner 2026-08-30 16:16:17 +00:00
vorotamoroz 69cd6250d2 Tighten provider adapter boundaries 2026-08-30 12:42:34 +00:00
vorotamoroz 7300db08d6 Adopt active Replicator ownership contracts 2026-08-30 09:45:00 +00:00
vorotamoroz ad83ae858d Adopt focused P2P service views 2026-08-28 03:04:53 +00:00
vorotamoroz 56444bb98b Route replication through provider capabilities 2026-08-27 11:16:30 +00:00
vorotamoroz dd11a753d5 Align host integrations with current API recommendations 2026-08-24 16:39:32 +00:00
vorotamoroz 74fdec7f96 test: separate finite maintenance connection ownership 2026-08-14 10:29:29 +00:00
vorotamoroz de03534d2f fix: close finite remote database connections 2026-08-14 10:29:29 +00:00
ZeedifandClaude Opus 5 b6746be73e refactor(i18n): route remaining Obsidian UI text through the message catalogue
Continues the source-key migration inside the application boundary introduced
in 1.0.0, where LiveSync owns its catalogue and consumes Commonlib as a
published package.

- Replace hardcoded user-visible strings in the Obsidian UI (Setup Wizard
  dialogues, P2P panes, Customisation Sync panes, Global History, the JSON
  conflict pane and the remote-configuration menu) with `$msg` calls, keeping
  the English source string as the key.
- Wire up strings whose translations already existed in the catalogue but were
  still rendered as literals, for example the whole Intro dialogue.
- Add the new entries to `src/common/messagesYAML/en.yaml` and `es.yaml`, then
  regenerate `messagesJson/` and `combinedMessages.prod.ts` through the
  documented `i18n:bake` pipeline.
- No Commonlib gitlink or catalogue is involved; every change is
  LiveSync-owned.

Regenerating the catalogue also normalises three pre-existing entries each in
`ko.json` and `zh.json`, where the committed JSON kept a trailing space before
a newline that YAML cannot represent.

Verified with tsc-check, tsc-check:apps, svelte-check and lint.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 18:59:19 -06:00
vorotamoroz 4723771ee0 refactor: compose browser application runtimes 2026-07-29 09:11:57 +00:00
vorotamoroz 12fc43a69c Improve recovery diagnostics and actions 2026-07-25 09:01:25 +00:00
vorotamoroz 0d68b6530f Test Garbage Collection V3 against CouchDB 2026-07-25 03:48:51 +00:00
vorotamoroz 0a7a3b1635 Harden Garbage Collection V3 validation 2026-07-24 17:53:22 +00:00
vorotamoroz 20fb027055 Protect conflict chunks during garbage collection 2026-07-24 17:09:22 +00:00
vorotamoroz 0e5475b7e3 Limit commands to applicable contexts 2026-07-24 16:13:49 +00:00
vorotamoroz bf0fc0aea8 Retire orphaned WebApp tests and classify regression guards 2026-07-23 17:21:16 +00:00
vorotamoroz 24b941f594 Group Hidden File Sync initialisation progress 2026-07-23 16:47:30 +00:00
vorotamoroz 1df034f12a Refine P2P and manual setup workflows 2026-07-23 15:23:47 +00:00
vorotamoroz 1ef8c88139 Complete Commonlib rc.6 integration and setup workflows 2026-07-21 15:00:28 +00:00
vorotamoroz 104eeadb4b Reduce Community lint type-safety warnings 2026-07-20 18:08:09 +00:00
vorotamoroz c49536acc9 Unify P2P disconnect labels 2026-07-20 15:18:02 +00:00
vorotamoroz 6484a43e2f Keep P2P consumers on the current transport 2026-07-20 15:06:05 +00:00
vorotamoroz 80d1416a81 Align host settings with the 1.0 lifecycle 2026-07-20 13:20:48 +00:00
vorotamoroz f70779c352 feat: restore opt-in review harness 2026-07-20 10:50:08 +00:00
vorotamoroz 71f1b63b9a test: recover review harness controller contract 2026-07-20 10:14:01 +00:00
vorotamoroz 0a31d30c6c test: recover review harness vault fixture 2026-07-20 09:56:18 +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 f6b03dc811 refactor: make Svelte prop lifetimes explicit 2026-07-17 15:04:01 +00:00
vorotamoroz 326bf77183 refactor: align platform APIs with community review 2026-07-17 14:47:27 +00:00
vorotamoroz a721d3b602 refactor: consume Commonlib as a package 2026-07-17 11:13:16 +00:00
vorotamoroz 31e9186930 Protect bounded remote activity across app lifecycle 2026-07-15 20:53:27 +09:00
vorotamoroz af6df84b5d fix: enable hidden file sync before overwrite setup 2026-07-03 05:09:55 +00:00
Ouyang Xingyuan 7e59010824 Ask before applying maintenance prerequisite settings
Local database maintenance actions require local chunk revisions and fully replicated chunks, but previously failed with a notice when those settings were not already configured.

This adds a small prerequisite confirmation helper for the maintenance commands. When required settings are missing, the user can apply them and continue from the action they already started, or cancel without changing settings.

Covers both required maintenance settings:
- Compute revisions for chunks enabled
- Fetch chunks on demand disabled

Fixes #980
2026-06-25 14:41:14 +08:00