NEC-277: NEC-268 stage B: structured-sync and canvas onto the provenance ledger #307
No reviewers
Labels
No labels
area:docs
area:identity
area:ops
area:plugin
area:server
channel:community
channel:direct
channel:owned
channel:press
channel:social
e2ee-constrained
gate:at-ga
gate:pre-ga
marketing
parity
relay:absent
relay:planned
relay:requested
relay:supported
risk:additive
risk:contract
risk:none
usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda!307
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-nec-277-nec-268-stage-b-structured-sync-and-canv"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Task: NEC-277 — https://projectron.nerchure.com/tasks/288
Stage B of NEC-268. Structured files (canvases, drawings, bases) and canvas-live move onto the provenance ledger stage A gave notes: one ledger per file, read by every reader through the same classifier, a structured file's texts compared by meaning. It replaces seven pieces of state (lastSyncedText, diskSeen, writingText, released, baseFromRecord, the file record, canvas-live's serialised). The write decides on one read and checks the ledger's generation after each await instead of reading the file again, which closes the A-B-A case. A view's save is noted only to tell it from an outside rewrite, never as proof the document holds it; a let-go text is the merge base only at a connect's first write, where both readings are kept when they disagree; another file's content kept aside never becomes a base. file-record.ts keeps only the migration parser. The review found and this fixes a bind against the let-go text and a stored let-go outliving the next session's agreements; the canvas hardness run found and this fixes in-session read-ins re-setting unchanged fields (seed 909117678). SAFE-A35 and SAFE-C1 reworded, sync-limitations updated, spec in docs/changes/NEC-277-structured-ledger/spec.md. Verified: local gate, mutation checks for every new rule, canvas hardness 90 min on the final code, Excalidraw hardness 60 min (2.28.1 vs 2.27.3), and the user's own vaults.
Spec:
docs/changes/NEC-277-structured-ledger/spec.mdChangelog
Canvases, drawings and other structured files now track what they last agreed with their file in one place, so edits made outside Obsidian or while sync is stopped are merged against the right version, and an ambiguous merge keeps copies of both readings.