FAILURE MAP
← Case archive

FA-76090 / Chat ordering and read receipts / Member archive

Apply create, edit and delete events to message state: terminal delete · case 05

A concurrent edit with a higher version resurrects a message that was deleted.

Member previewVariant 5 · 3 implementations · 9 checks per implementation

Case contract

events {op, id, ver, text} arrive in any order and are processed in arrival order. Per id the highest version wins and an edit that only equals the current version is ignored; an edit that arrives before its create is buffered (highest buffered version kept) and applied if it is newer than the create. Delete is terminal: the id shows None and later creates and edits are ignored whatever their version. Result: id -> text (None for deleted) for created or deleted ids, sorted by id.

Why this case matters

Message edits and deletions race with the original message across devices; tombstones must stay terminal.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
edit after delete with higher version{"a": "again"}{"a": null}Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗