mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-11-05 15:58:19 +00:00
Adopt published Commonlib 0.3.1 storage contracts
This commit is contained in:
1 parent
f015e11957
commit
602dfd7d37
4 files changed
+21
-21
No files matched your search
@@ -277,7 +277,7 @@ Commonlib owns the typed English fallback for messages requested by its services
|
|||||||
- New path boundaries use `FilePath`, `DocumentPath`, `StoragePath`, and domain-specific `PathComparisonKey` from `@vrtmrz/livesync-commonlib/storage`. Original paths retain spelling; comparison keys are never converted back into filenames.
|
- New path boundaries use `FilePath`, `DocumentPath`, `StoragePath`, and domain-specific `PathComparisonKey` from `@vrtmrz/livesync-commonlib/storage`. Original paths retain spelling; comparison keys are never converted back into filenames.
|
||||||
- Parse original document input and route its namespace before storage access. `splitDocumentPath` and `joinDocumentPath` retain one recognised namespace; `DocumentPath` excludes legacy comparison keys. Existing `FilePathWithPrefix`, `FilePathWithPrefixLC`, and `DocumentID` remain at compatibility boundaries.
|
- Parse original document input and route its namespace before storage access. `splitDocumentPath` and `joinDocumentPath` retain one recognised namespace; `DocumentPath` excludes legacy comparison keys. Existing `FilePathWithPrefix`, `FilePathWithPrefixLC`, and `DocumentID` remain at compatibility boundaries.
|
||||||
- The CLI uses Commonlib's `UnicodeResolvingNodeStorageAdapter` and one strict resolver per NFC directory scan. Only absence becomes a missing file; permission and enumeration failures propagate. Obsidian keeps its own Vault APIs and alias guard, whose fixed case-insensitive NFC policy is independent of the selected database identity mode.
|
- The CLI uses Commonlib's `UnicodeResolvingNodeStorageAdapter` and one strict resolver per NFC directory scan. Only absence becomes a missing file; permission and enumeration failures propagate. Obsidian keeps its own Vault APIs and alias guard, whose fixed case-insensitive NFC policy is independent of the selected database identity mode.
|
||||||
- The [Commonlib storage-path design](https://github.com/vrtmrz/livesync-commonlib/blob/main/docs/design_docs/storage_path_resolution.md) and [ADR](https://github.com/vrtmrz/livesync-commonlib/blob/main/docs/adr/2026_11_shared_storage_path_resolution.md) define this unreleased boundary. WebApp and Bridge NFC enablement remains separate work.
|
- The [Commonlib storage-path design](https://github.com/vrtmrz/livesync-commonlib/blob/main/docs/design_docs/storage_path_resolution.md) and [ADR](https://github.com/vrtmrz/livesync-commonlib/blob/main/docs/adr/2026_11_shared_storage_path_resolution.md) define the contract published in Commonlib `0.3.1`. LiveSync's CLI resolver and Obsidian comparison-helper adoption remain unreleased. WebApp and Bridge NFC enablement remain separate work.
|
||||||
|
|
||||||
### Logging & Debugging
|
### Logging & Debugging
|
||||||
|
|
||||||
|
|||||||
@@ -31,14 +31,15 @@ The original dates and reviewed versions above remain the historical baseline.
|
|||||||
|
|
||||||
## Unreleased shared storage boundary
|
## Unreleased shared storage boundary
|
||||||
|
|
||||||
The current LiveSync candidate adopts Commonlib's shared Unicode resolver and
|
Commonlib `0.3.1` publishes the shared storage-path contract, including
|
||||||
typed physical-I/O ports in the CLI, and shared namespace and comparison
|
its Unicode resolver and typed physical-I/O ports. The LiveSync candidate
|
||||||
helpers in Obsidian while retaining its Vault APIs and existing alias-guard
|
adopts the shared resolver and typed physical-I/O ports in the CLI. Obsidian
|
||||||
policy. Each NFC scan retains one comparison-policy snapshot; directory and
|
adopts shared namespace and comparison helpers while retaining its Vault APIs
|
||||||
permission errors propagate instead of producing a successful partial scan.
|
and existing alias-guard policy. Each NFC scan retains one comparison-policy
|
||||||
These additions are unreleased and do not change the support status of a
|
snapshot; directory and permission errors propagate instead of producing a
|
||||||
published host. The [developer guide](../../devs.md#file-path-handling) links
|
successful partial scan. LiveSync's host adoption remains unreleased. The
|
||||||
the Commonlib design and ADR.
|
[developer guide](../../devs.md#file-path-handling) links the Commonlib design
|
||||||
|
and ADR.
|
||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
@@ -233,11 +234,11 @@ updates and deletions.
|
|||||||
|
|
||||||
| Host or API | Published baseline | Unreleased or host-specific status |
|
| Host or API | Published baseline | Unreleased or host-specific status |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| CLI and Obsidian with CouchDB | NFC identity is supported from Self-hosted LiveSync `1.0.38` with Commonlib `0.1.42`. | The shared resolver and typed path ports are in the current LiveSync candidate; they are not part of a published Commonlib package yet. |
|
| CLI and Obsidian with CouchDB | NFC identity is supported from Self-hosted LiveSync `1.0.38` with Commonlib `0.1.42`. | Commonlib `0.3.1` publishes the shared storage-path contract. LiveSync's CLI adoption of the shared resolver and typed physical-I/O ports, and its Obsidian adoption of shared namespace and comparison helpers, remain unreleased. |
|
||||||
| CLI and Obsidian with Journal | Commonlib `0.3.0` publishes the NFC protocol support. | Matching LiveSync host adoption remains an unreleased candidate tracked by [pull request #1309](https://github.com/vrtmrz/obsidian-livesync/pull/1309). Update and migrate every client before using version `1`. |
|
| CLI and Obsidian with Journal | Commonlib `0.3.0` publishes the NFC protocol support. | Matching LiveSync host adoption remains an unreleased candidate tracked by [pull request #1309](https://github.com/vrtmrz/obsidian-livesync/pull/1309). Update and migrate every client before using version `1`. |
|
||||||
| CLI and Obsidian with P2P | Commonlib `0.3.0` publishes the NFC protocol support. | Matching LiveSync host adoption remains an unreleased candidate. All peers must use the same path version; P2P warns and continues for ordinary representation or case differences. |
|
| CLI and Obsidian with P2P | Commonlib `0.3.0` publishes the NFC protocol support. | Matching LiveSync host adoption remains an unreleased candidate. All peers must use the same path version; P2P warns and continues for ordinary representation or case differences. |
|
||||||
| Bridge | The published baseline uses Legacy version `0`. | The Bridge integration is an unreleased candidate with explicit per-peer opt-in to version `1`; every peer in a group must use the same version. Its ordinary case mismatch check remains enabled unless the Bridge-wide `disableCheckingConfigMismatch: true` override disables that case check. The override does not bypass a path-version mismatch. |
|
| Bridge | The published baseline uses Legacy version `0`. | The Bridge integration is an unreleased candidate with explicit per-peer opt-in to version `1`; every peer in a group must use the same version. Its ordinary case mismatch check remains enabled unless the Bridge-wide `disableCheckingConfigMismatch: true` override disables that case check. The override does not bypass a path-version mismatch. |
|
||||||
| `DirectFileManipulator` | The published Commonlib baseline refuses a remote which declares `nfc-path-identity-v1`. | An unpublished addition accepts explicit `pathNormalizationVersion` values `0` or `1`, defaulting to `0`, and rejects a populated database in the opposite mode. This admission setting does not provide physical-path resolution. |
|
| `DirectFileManipulator` | Commonlib `0.3.1` accepts explicit `pathNormalizationVersion` values `0` or `1`, defaults to Legacy (`0`), and rejects a populated database in the opposite mode. | This admission setting does not resolve physical paths; callers own physical path resolution and migration. |
|
||||||
| WebApp | Legacy version `0` only. | WebApp remains Legacy-only and rejects an explicit version `1` at startup. The browser resolver primitive does not enable NFC in WebApp. |
|
| WebApp | Legacy version `0` only. | WebApp remains Legacy-only and rejects an explicit version `1` at startup. The browser resolver primitive does not enable NFC in WebApp. |
|
||||||
| WebPeer | A vaultless P2P utility, not a filesystem host. | No NFC filesystem support is implied by its P2P role. |
|
| WebPeer | A vaultless P2P utility, not a filesystem host. | No NFC filesystem support is implied by its P2P role. |
|
||||||
| Older client without this feature | Can use a legacy database. | Cannot join a database declaring `nfc-path-identity-v1`. |
|
| Older client without this feature | Can use a legacy database. | Cannot join a database declaring `nfc-path-identity-v1`. |
|
||||||
@@ -295,11 +296,10 @@ The implementation acceptance matrix covers:
|
|||||||
version-`0` clients against an NFC database, and enforcement when ordinary
|
version-`0` clients against an NFC database, and enforcement when ordinary
|
||||||
mismatch warnings are disabled;
|
mismatch warnings are disabled;
|
||||||
- URI round trips, checkpoint invalidation across path versions, and
|
- URI round trips, checkpoint invalidation across path versions, and
|
||||||
rejection by the published Direct file access baseline; the unpublished
|
explicit Legacy/NFC admission by `DirectFileManipulator` in Commonlib `0.3.1`,
|
||||||
`DirectFileManipulator` addition covers explicit Legacy/NFC admission.
|
including rejection of a populated database in the opposite mode. Journal and
|
||||||
Journal and P2P protocol support is published in Commonlib `0.3.0`, while
|
P2P protocol support is published in Commonlib `0.3.0`, while matching CLI and
|
||||||
matching CLI and Obsidian host adoption and end-to-end checks remain
|
Obsidian host adoption and end-to-end checks remain unreleased;
|
||||||
unreleased;
|
|
||||||
- refusal for ambiguous file or parent-directory candidates before local or
|
- refusal for ambiguous file or parent-directory candidates before local or
|
||||||
remote reset, preserving both databases on rejection, within the paths
|
remote reset, preserving both databases on rejection, within the paths
|
||||||
returned by each host's supported listing; and
|
returned by each host's supported listing; and
|
||||||
|
|||||||
Generated
+4
-4
@@ -23,7 +23,7 @@
|
|||||||
"@smithy/types": "^4.14.3",
|
"@smithy/types": "^4.14.3",
|
||||||
"@smithy/util-retry": "^4.4.5",
|
"@smithy/util-retry": "^4.4.5",
|
||||||
"@vrtmrz/browser-ui-kit": "0.1.0",
|
"@vrtmrz/browser-ui-kit": "0.1.0",
|
||||||
"@vrtmrz/livesync-commonlib": "0.3.0",
|
"@vrtmrz/livesync-commonlib": "0.3.1",
|
||||||
"@vrtmrz/obsidian-plugin-kit": "0.1.7",
|
"@vrtmrz/obsidian-plugin-kit": "0.1.7",
|
||||||
"@vrtmrz/ui-interactions": "0.1.2",
|
"@vrtmrz/ui-interactions": "0.1.2",
|
||||||
"@vrtmrz/value-store": "0.1.0",
|
"@vrtmrz/value-store": "0.1.0",
|
||||||
@@ -4065,9 +4065,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vrtmrz/livesync-commonlib": {
|
"node_modules/@vrtmrz/livesync-commonlib": {
|
||||||
"version": "0.3.0",
|
"version": "0.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/@vrtmrz/livesync-commonlib/-/livesync-commonlib-0.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vrtmrz/livesync-commonlib/-/livesync-commonlib-0.3.1.tgz",
|
||||||
"integrity": "sha512-Nllw7AUwpV5ljtMqjRplqb0HPXY5ZfYj9pf4ZP0pBHtz9+7jOSFNqDhSVOAehYlJJaLcVJBnModicAUxT9urNw==",
|
"integrity": "sha512-/vm/5MEiFIS1mEfW/+kPaqbx/cpgXlEl+uQHTm5ClHxNZ/umARuxXZX33TlxFpVimLVjYPRQ97XSZAz5HKy8vw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@aws-crypto/sha256-js": "5.2.0",
|
"@aws-crypto/sha256-js": "5.2.0",
|
||||||
|
|||||||
+1
-1
@@ -211,7 +211,7 @@
|
|||||||
"@smithy/types": "^4.14.3",
|
"@smithy/types": "^4.14.3",
|
||||||
"@smithy/util-retry": "^4.4.5",
|
"@smithy/util-retry": "^4.4.5",
|
||||||
"@vrtmrz/browser-ui-kit": "0.1.0",
|
"@vrtmrz/browser-ui-kit": "0.1.0",
|
||||||
"@vrtmrz/livesync-commonlib": "0.3.0",
|
"@vrtmrz/livesync-commonlib": "0.3.1",
|
||||||
"@vrtmrz/obsidian-plugin-kit": "0.1.7",
|
"@vrtmrz/obsidian-plugin-kit": "0.1.7",
|
||||||
"@vrtmrz/ui-interactions": "0.1.2",
|
"@vrtmrz/ui-interactions": "0.1.2",
|
||||||
"@vrtmrz/value-store": "0.1.0",
|
"@vrtmrz/value-store": "0.1.0",
|
||||||
|
|||||||
Reference in new issue
Block a user