NEC-296: A word deleted from a note came back in the note property test on CI (seed 82, timing-dependent) #302
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda!302
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-nec-296-a-word-deleted-from-a-note-came-back-in"
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-296 — https://projectron.nerchure.com/tasks/309
A note's document stopped while its seed was being hashed carried on when the hash finished: it stored a stale file record over the next session's, read the file in and reported text as adopted for a session that was gone. The next session merged against the stale base, so lines deleted since came back — the note property test's rare CI failure (seed 82, then caught with evidence at seed 71, 1 in 900 loaded soak iterations). A stopped document now drops late work: no record (persistRecord, beginWrite), no read-in, no adopted text, no scheduled write, and a write re-checks liveness after its last read (SAFE-A44). The IndexedDB test stand-in now refuses reads and writes after destroy, as the real provider does. Also: the property test prints per-step evidence on failure, and unit-soak's failure excerpt starts at the assertion (ride-along NEC-299). Soak after the fix: 900 idle + 900 loaded, 0 failures.
Spec:
docs/changes/NEC-296-deleted-word-came-back-property-test/spec.mdAlso fixes NEC-299: unit-soak's failure excerpt is filled by stderr and never reaches the assertion
Changelog
Fixed a rare case where a note reconnected while its first sync was being prepared could act on stale text, which could have undone recent typing awaiting replay in an open editor.
3388531c7b4213bd84f84213bd84f85058688cbb