Commit Graph
77 Commits
Author SHA1 Message Date
vorotamoroz fbfb77440d Merge branch 'main' into pr/zeedif/1015 2026-07-31 07:14:14 +01:00
vorotamoroz 21dd24682b Merge branch 'main' into pr/zeedif/1059 2026-07-31 06:00:59 +01:00
vorotamoroz 5c52d69d66 Merge pull request #1055 from motolies/complete-korean-translations
Complete and correct the Korean translations
2026-07-31 13:44:52 +09:00
ZeedifandClaude Opus 5 0518fab62a i18n(es): complete the Spanish catalogue coverage
Fills every untranslated key in the Spanish catalogue: coverage goes from
643/1132 to 1131/1132 against `en.yaml`.

- Translate the 488 keys that had no Spanish entry, covering the Config
  Doctor, tweak-mismatch resolution, the P2P notes and panes, the Setup
  Wizard, the maintenance and patch panels, Garbage Collection V3 and the
  migration dialogues.
- Register follows the existing catalogue: informal address, `es-ES`
  vocabulary, British-style source wording preserved where it is a proper
  noun (Setup URI, Vault, chunk).
- Placeholders (`${...}`), keyword references (`%{...}`) and Markdown
  callout syntax are kept byte-identical to the English source.
- Regenerate `messagesJson/es.json` and `combinedMessages.prod.ts` with the
  documented `i18n:bake` pipeline.

`obsidianLiveSyncSettingTab.logServerConfigurationCheck` is deliberately left
untranslated: its English value is the key itself, so it looks like a
placeholder rather than a message.

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 and test:unit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 19:09:17 -06: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
Namwon KimandClaude Fable 5 17fe6c1518 Complete and correct the Korean translations
Korean coverage was 796 of 1132 keys (70%), so a large part of the UI fell
back to English. Alongside the missing entries, the existing translations
carried a few defects that were visible to users.

Fixes:

- Three messages had lost the `$` from their placeholders, leaving a literal
  `{origin}`, `{org}` and `{from}->{to}` on screen, because `$msg()` only
  substitutes `${...}`.
- `dialog.yourLanguageAvailable` referenced `%{Display language}`, but the key
  is `Display Language`, so the raw token was shown. Corrected to match ja.
- Sixteen onboarding messages ended with the Japanese full stop `。`.
- Four messages hard-coded a particle after a variable (`${measuredSize}가`),
  which is ungrammatical for values ending in a consonant. They now use the
  paired form `이(가)`, `을(를)`, `(으)로`.

Terminology is now consistent with the Obsidian Korean UI and with the
definitions in docs/terms.md:

- `vault` is 보관함, `device` is 기기, `status bar` is 상태 표시줄.
- `chunk` is 청크 everywhere; the Eden settings had rendered it as 변경 기록
  ("change record"), which is not what a chunk is.
- `Compaction` is 압축 정리, separating it from `Data Compression` (데이터 압축),
  which had shared the same word.
- HTTP `Origin` is 출처; it had been 원점, the geometric origin.
- Six English strings that had mapped to two different Korean strings each are
  now unified.

The remaining 336 keys are translated, including the setup wizard outro, the
insecure-chunk and v0.25.6 recovery dialogues, and the database adapter
migration messages.

This ports vrtmrz/livesync-commonlib#79 to this repository, following the
v1.0.0 boundary change that moved application translations here. On top of
the original work, the 17 keys newly introduced in v1.0.0 (the P2P setup
wizard Invitation, OutroNewP2PUser and RebuildEverythingP2P dialogues, and
the moduleCheckRemoteSize notices) are translated as well.

Verified with _tools/checkI18nCoverage.ts (ko: 1132/1132, 0 missing),
tsc --noEmit, and a dev build. Generated resources are committed as produced
by `npm run i18n:bake`; besides the `ko` entries it also trims a stale
trailing space from five es/zh entries in combinedMessages.prod.ts that had
been left behind by the migration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EtFsro96LHztmoYmRjtfAy
2026-07-30 09:15:41 +09:00
vorotamoroz 4723771ee0 refactor: compose browser application runtimes 2026-07-29 09:11:57 +00:00
vorotamoroz da4b188b38 Clarify the file inspection action 2026-07-26 15:48:01 +00:00
vorotamoroz 127d460e18 Improve conflict inspection and recovery workflow 2026-07-25 11:18:10 +00:00
vorotamoroz 12fc43a69c Improve recovery diagnostics and actions 2026-07-25 09:01:25 +00:00
vorotamoroz 07cba4ce83 Keep unreadable revisions for explicit repair 2026-07-24 16:15:46 +00:00
vorotamoroz 658ad6dfe4 Describe saved connections consistently 2026-07-24 16:15:02 +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 c8050322e4 Clarify remote setup and verify manual CouchDB onboarding 2026-07-23 16:46:50 +00:00
vorotamoroz 1df034f12a Refine P2P and manual setup workflows 2026-07-23 15:23:47 +00:00
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 aad0e56f09 Preserve legacy settings across same-profile upgrades 2026-07-22 06:21:54 +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 80d1416a81 Align host settings with the 1.0 lifecycle 2026-07-20 13:20:48 +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 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 62f44e38c0 Releasing 0.25.77 (#968)
Squash commits
2026-06-19 17:45:37 +09: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 f710f03380 Address following rules
- @typescript-eslint/no-redundant-type-constituents
- @typescript-eslint/no-unnecessary-type-assertion
2026-06-01 03:37:55 +01:00
vorotamoroz 547afe9a86 remove unused eslint comment
use _fetch instead of fetch
add ignore list
2026-05-30 23:32:46 +09:00
vorotamoroz a392ccab6a - Improved an error verbosity on concurrent processing on start-up process.
- Now the `report` includes recent logs (of verbosity `verbose` even settings is not set to `verbose`).
- Updating logs is now debounced to avoid excessive updates during rapid log generation.
- Added a `Generate full report for opening the issue with debug info` command to the command palette, which generates a report without opening the settings dialogue.
2026-05-19 04:09:04 +01:00
koteitan 14ec35b257 fix: strip trailing slash from couchDB_URI to avoid double-slash 401
When couchDB_URI ends with a trailing slash (e.g. https://host/), the
database name concatenation produces a double-slash path
(https://host//obsidiannotes), which causes CouchDB to reject requests
with 401 "Name or password is incorrect".

Strip trailing slashes from couchDB_URI / baseUri at the path
concatenation sites in:
- src/common/utils.ts (_requestToCouchDBFetch, _requestToCouchDB)
- src/features/LocalDatabaseMainte/CmdLocalDatabaseMainte.ts

The companion fix for the replication path is in the livesync-commonlib
submodule.

Ref: #859
2026-04-27 00:12:57 +09:00
vorotamoroz 89bf0488c3 Refactor: More refactor P2P Replicator 2026-03-15 04:07:47 +09:00
vorotamoroz 0dfd42259d 11th March, 2026
Now, Self-hosted LiveSync has finally begun to be split into the Self-hosted LiveSync plugin for Obsidian, and a properly abstracted version of it.
This may not offer much benefit to Obsidian plugin users, or might even cause a slight inconvenience, but I believe it will certainly help improve testability and make the ecosystem better.
However, I do not see the point in putting something with little benefit into beta, so I am handling this on the alpha branch. I would actually preferred to create an R&D branch, but I was not keen on the ampersand, and I feel it will eventually become a proper beta anyway.

### Refactored

- Separated `ObsidianLiveSyncPlugin` into `ObsidianLiveSyncPlugin` and `LiveSyncBaseCore`.
- Now `LiveSyncCore` indicates the type specified version of `LiveSyncBaseCore`.
- Referencing `plugin.xxx` has been rewritten to referencing the corresponding service or `core.xxx`.

### Internal API changes

- Storage Access APIs are now yielding Promises. This is to allow more limited storage platforms to be supported.

### 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/webapp` for the browser version.
2026-03-11 05:47:00 +01:00
vorotamoroz f3e83d4045 Refactored: changed the implementation from using overrides to injecting an adapter. 2026-03-02 09:06:23 +00:00
vorotamoroz 392f76fd36 ### Refactored
- `ModuleCheckRemoteSize` has been ported to a serviceFeature, and also tests have been added.
- Some unnecessary things have been removed.
2026-02-26 08:59:54 +00:00
vorotamoroz 556ce471f8 ## 0.25.43-patched-8 2026-02-20 14:28:28 +00:00
vorotamoroz 0a1917e83c Refactor for 0.25.43-patched-5 (very long, please refer the updates.md) 2026-02-17 10:14:04 +00:00
vorotamoroz 2ae70e8f07 Refactor: DatabaseService and Replicator 2026-02-16 11:51:03 +00:00
vorotamoroz fb59c4a723 Refactored, please refer updates.md 2026-02-13 12:02:31 +00:00
vorotamoroz 1b5ca9e52c Refactor (write notes later) 2026-02-12 08:56:30 +00:00
vorotamoroz 92d3a0cfa2 ### Fixed
- Fixed an issue where indexedDB would not close correctly on some environments, causing unexpected errors during database operations.
2026-01-17 14:32:44 +09:00
vorotamoroz 4c3393d8b2 Fixed:
- Databases now correctly closed after rebuilding.
2026-01-09 11:45:00 +00:00
vorotamoroz 1ff1ac951b - Remove old comments
- Fix Importing paths
2026-01-07 04:37:30 +00:00
vorotamoroz 512c238415 ### Improved
- Now the garbage collector (V3) has been implemented. (Beta)
- Now the plug-in and device information is stored in the remote database.
2025-12-25 10:29:19 +00:00
vorotamoroz 77074cb92f ### New feature
- We can analyse the local database with the `Analyse database usage` command.
- We can reset the notification threshold and check the remote usage at once with the `Reset notification threshold and check the remote database usage` command.

### Fixed

- Now the plug-in resets the remote size notification threshold after rebuild.
2025-12-05 11:07:59 +00:00
vorotamoroz db28b9ec11 ### Improved
- Some JWT notes have been added to the setting dialogue (#742).

### Fixed

- No longer wrong values encoded into the QR code.
- We can acknowledge why the QR codes have not been generated.

### Refactored

- Some dependencies have been updated.
- Internal functions have been modularised into `octagonal-wheels` packages and are well tested.
- Fixed importing from the parent project in library codes. (#729).
2025-11-07 09:54:12 +00:00
vorotamoroz c4f2baef5e ### Fixed
#### JWT Authentication

- Now we can use JWT Authentication ES512 correctly (#742).
- Several misdirections in the Setting dialogues have been fixed (i.e., seconds and minutes confusion...).
- The key area in the Setting dialogue has been enlarged and accepts newlines correctly.
- Caching of JWT tokens now works correctly
    - Tokens are now cached and reused until they expire.
    - They will be kept until 10% of the expiration duration is remaining or 10 seconds, whichever is longer (but at a maximum of 1 minute).
- JWT settings are now correctly displayed on the Setting dialogue.

#### Other fixes

- Receiving non-latest revisions no longer causes unexpected overwrites.
    - On receiving revisions that made conflicting changes, we are still able to handle them.

### Improved

- No longer duplicated message notifications are shown when a connection to the remote server fails.
    - Instead, a single notification is shown, and it will be kept on the notification area inside the editor until the situation is resolved.
- The notification area is no longer imposing, distracting, and overwhelming.
    - With a pale background, but bordered and with icons.
2025-11-06 09:24:16 +00:00