FAILURE MAP
← Case archive

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

Apply create, edit and delete events to message state: buffer keeps highest · case 03

When two edits overtake their create, the wrong one is kept in the buffer.

Member previewVariant 3 · 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
two buffered edits in order{"h": "w2"}{"h": "w3"}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 ↗