This commit is contained in:
Andras Schmelczer 2026-09-26 20:22:16 +01:00
commit b07aa589ff

View file

@ -21,7 +21,14 @@ resuming starts a fresh session. Connection checks can run while sync is disable
## State and policy
The persisted state contains the incorporated server file manifest, the current
local identity map, and the exact pending submission. A received server file
local identity map, an optional event cursor, and exact pending submissions. An
absent cursor means the client must fetch a fresh vault snapshot; there are no
separate initialization or recovery flags and no saved bootstrap snapshot. Each
document stores its base version/hash, its last observed disk hash, and a remote
head only while that content is deferred. The observed hash also records local
file presence; missing remote downloads are not local deletions. Physical path
exclusions are rebuilt by scans. Rejection details live on the retained request,
without duplicate per-document or manifest rejection records. A received server file
manifest becomes the merge base when its application metadata is saved. Successful
submissions advance the base to the submitted content snapshot, preserving later
local edits. Unknown outcomes are retried unchanged before incorporating newer
@ -72,7 +79,9 @@ event incarnation returns a history mismatch before executing the request.
On mismatch the client scans local work and records a reset before clearing the
old checkpoint. It clears old requests, receipts, cursors, bases and diff-cache
entries. Clean files reconcile against the restored snapshot. Unsent edits with
entries. Clean files retain only their hash and reconcile against the restored
snapshot. A file edited after this reset is also preserved as a separate local
document; recovery never persists another copy of its content. Unsent edits with
an old base become separate local documents; path conflicts preserve them under
conflict names instead of applying a diff to an unrelated restored version.
Recovery resumes after interrupted state saves. Existing API v4 client state
@ -112,7 +121,7 @@ object. A failed save is reloaded before retrying. No ordering between metadata
user-file durability is required. Settings and engine saves are serialized.
Keep metadata outside the user-file namespace or in `.vault-link-sync`, which is
excluded from scans. Changing a client's vault once it holds identities, offline
notifications, pending requests or bootstrap state requires a separate state store.
notifications, pending requests or an incorporated event cursor requires a separate state store.
Filesystem application saves metadata once when it finishes. Namespace changes detected
before mutations invalidate the plan. Changes during application are incorporated