Document and test NFC reconstruction with logical deletions

This commit is contained in:
vorotamoroz committed 2026-10-19 10:24:42 +00:00
1 parent 6412dd6d6b
commit 612e3eb9d5
6 files changed
+81 -10

No files matched your search

+15 -4
View File
@@ -1,7 +1,7 @@
---
date: 2026-10-17
date: 2026-10-19
commonlib-version: "0.1.42"
self-hosted-livesync-version: "1.0.37"
self-hosted-livesync-version: "1.0.38"
status: unreleased
---
@@ -16,8 +16,9 @@ the [Unicode path identity ADR](../adr/2026_10_unicode_path_identity.md).
Commonlib's [consumer contract](https://github.com/vrtmrz/livesync-commonlib/blob/main/docs/unicode-path-identity.md)
defines the shared package boundary.
This records an unreleased change after Self-hosted LiveSync `1.0.37`, using the
published Commonlib `0.1.42` package as an exact dependency.
NFC identity shipped in Self-hosted LiveSync `1.0.38` with Commonlib `0.1.42`.
The deletion handling in reconstruction below is an unreleased refinement of
that baseline.
## Scope
@@ -117,6 +118,16 @@ must resolve the ambiguous names or exclude one file from the synchronisation
scope, then retry the reconstruction. This check is bounded by the host's
listing contract and does not imply that every raw physical alias is visible.
For full Rebuild, Standard Fetch, and Fast Fetch, which replace the local
database, the Metadata enumeration requests conflict information. It excludes
`deleted: true` documents only when they have no unresolved conflict leaves.
A deleted winner with any unresolved conflict remains a collision candidate,
including when the other leaves are also logically deleted. Remote-only
Rebuild retains logically deleted Metadata and requires stored IDs to match
the selected identity. Fully tombstoned documents are already absent from
ordinary enumeration; a still non-deleted local copy remains subject to the
check until a remote deletion has been replicated.
## Reconstruction and client operations
Mode changes are never applied by an ordinary Metadata write. In Obsidian, the