Understand the failure.
Verify the repair.
Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.
Explore the cases ↓How results are verified ↗WHAT THE ARCHIVE CONTAINS
100840 executable cases. 20168 are open.
Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.
The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗
A RECORD OF WHAT WENT WRONG
Browse the archive / 100840
Place the "new messages" divider in a loaded window: no divider sentinel · case 01
When nothing is unread the divider is drawn at the end of the list instead of being omitted.
Place the "new messages" divider in a loaded window: no divider sentinel · case 02
When nothing is unread the divider is drawn at the end of the list instead of being omitted.
Place the "new messages" divider in a loaded window: no divider sentinel · case 03
When nothing is unread the divider is drawn at the end of the list instead of being omitted.
Place the "new messages" divider in a loaded window: no divider sentinel · case 04
When nothing is unread the divider is drawn at the end of the list instead of being omitted.
Place the "new messages" divider in a loaded window: no divider sentinel · case 05
When nothing is unread the divider is drawn at the end of the list instead of being omitted.
Insert local day separators into a message list: offset units · case 01
A viewer several hours east of UTC sees evening messages under the wrong day.
Insert local day separators into a message list: offset units · case 02
A viewer several hours east of UTC sees evening messages under the wrong day.
Insert local day separators into a message list: offset units · case 03
A viewer several hours east of UTC sees evening messages under the wrong day.
Insert local day separators into a message list: offset units · case 04
A viewer several hours east of UTC sees evening messages under the wrong day.
Insert local day separators into a message list: offset units · case 05
A viewer several hours east of UTC sees evening messages under the wrong day.
Insert local day separators into a message list: today in local zone · case 01
Shortly after local midnight the current day is labelled "Yesterday" because "today" is computed in UTC.
Insert local day separators into a message list: today in local zone · case 02
Shortly after local midnight the current day is labelled "Yesterday" because "today" is computed in UTC.
Insert local day separators into a message list: today in local zone · case 03
Shortly after local midnight the current day is labelled "Yesterday" because "today" is computed in UTC.
Insert local day separators into a message list: today in local zone · case 04
Shortly after local midnight the current day is labelled "Yesterday" because "today" is computed in UTC.
Insert local day separators into a message list: today in local zone · case 05
Shortly after local midnight the current day is labelled "Yesterday" because "today" is computed in UTC.
Insert local day separators into a message list: offset sign · case 01
Viewers west of UTC see evening messages under the following day.
Insert local day separators into a message list: offset sign · case 02
Viewers west of UTC see evening messages under the following day.
Insert local day separators into a message list: offset sign · case 03
Viewers west of UTC see evening messages under the following day.
Insert local day separators into a message list: offset sign · case 04
Viewers west of UTC see evening messages under the following day.
Insert local day separators into a message list: offset sign · case 05
Viewers west of UTC see evening messages under the following day.
Insert local day separators into a message list: yesterday direction · case 01
A message stamped slightly in the future by a skewed clock is labelled "Yesterday".
Insert local day separators into a message list: yesterday direction · case 02
A message stamped slightly in the future by a skewed clock is labelled "Yesterday".
Insert local day separators into a message list: yesterday direction · case 03
A message stamped slightly in the future by a skewed clock is labelled "Yesterday".
Insert local day separators into a message list: yesterday direction · case 04
A message stamped slightly in the future by a skewed clock is labelled "Yesterday".
Insert local day separators into a message list: yesterday direction · case 05
A message stamped slightly in the future by a skewed clock is labelled "Yesterday".
Insert local day separators into a message list: separator state · case 01
A separator is inserted before every message instead of once per day.
Insert local day separators into a message list: separator state · case 02
A separator is inserted before every message instead of once per day.
Insert local day separators into a message list: separator state · case 03
A separator is inserted before every message instead of once per day.
Insert local day separators into a message list: separator state · case 04
A separator is inserted before every message instead of once per day.
Insert local day separators into a message list: separator state · case 05
A separator is inserted before every message instead of once per day.
Plan history backfill requests for missing sequences: horizon floor · case 01
Messages between the retention horizon and the first received message are never backfilled.
Plan history backfill requests for missing sequences: horizon floor · case 02
Messages between the retention horizon and the first received message are never backfilled.
Plan history backfill requests for missing sequences: horizon floor · case 03
Messages between the retention horizon and the first received message are never backfilled.
Plan history backfill requests for missing sequences: horizon floor · case 04
Messages between the retention horizon and the first received message are never backfilled.
Plan history backfill requests for missing sequences: horizon floor · case 05
Messages between the retention horizon and the first received message are never backfilled.
Plan history backfill requests for missing sequences: head inclusive · case 01
The newest message is never requested when it is the one that is missing.
Plan history backfill requests for missing sequences: head inclusive · case 02
The newest message is never requested when it is the one that is missing.
Plan history backfill requests for missing sequences: head inclusive · case 03
The newest message is never requested when it is the one that is missing.
Plan history backfill requests for missing sequences: head inclusive · case 04
The newest message is never requested when it is the one that is missing.
Plan history backfill requests for missing sequences: head inclusive · case 05
The newest message is never requested when it is the one that is missing.
Plan history backfill requests for missing sequences: range close · case 01
Backfill ranges include the first message that was already received.
Plan history backfill requests for missing sequences: range close · case 02
Backfill ranges include the first message that was already received.
Plan history backfill requests for missing sequences: range close · case 03
Backfill ranges include the first message that was already received.
Plan history backfill requests for missing sequences: range close · case 04
Backfill ranges include the first message that was already received.
Plan history backfill requests for missing sequences: range close · case 05
Backfill ranges include the first message that was already received.
Plan history backfill requests for missing sequences: trailing gap · case 01
A gap that runs up to the head is requested short, so the newest missing messages stay missing.
Plan history backfill requests for missing sequences: trailing gap · case 02
A gap that runs up to the head is requested short, so the newest missing messages stay missing.
Plan history backfill requests for missing sequences: trailing gap · case 03
A gap that runs up to the head is requested short, so the newest missing messages stay missing.
Plan history backfill requests for missing sequences: trailing gap · case 04
A gap that runs up to the head is requested short, so the newest missing messages stay missing.
Plan history backfill requests for missing sequences: trailing gap · case 05
A gap that runs up to the head is requested short, so the newest missing messages stay missing.
Plan history backfill requests for missing sequences: newest first · case 01
Old gaps are backfilled before the recent history the user is looking at.
Plan history backfill requests for missing sequences: newest first · case 02
Old gaps are backfilled before the recent history the user is looking at.
Plan history backfill requests for missing sequences: newest first · case 03
Old gaps are backfilled before the recent history the user is looking at.
Plan history backfill requests for missing sequences: newest first · case 04
Old gaps are backfilled before the recent history the user is looking at.
Plan history backfill requests for missing sequences: newest first · case 05
Old gaps are backfilled before the recent history the user is looking at.
Plan history backfill requests for missing sequences: completion flag · case 01
A request budget of zero or a truncated plan reports the timeline as complete.
Plan history backfill requests for missing sequences: completion flag · case 02
A request budget of zero or a truncated plan reports the timeline as complete.
Plan history backfill requests for missing sequences: completion flag · case 03
A request budget of zero or a truncated plan reports the timeline as complete.
Plan history backfill requests for missing sequences: completion flag · case 04
A request budget of zero or a truncated plan reports the timeline as complete.
Plan history backfill requests for missing sequences: completion flag · case 05
A request budget of zero or a truncated plan reports the timeline as complete.
Page older history with a composite (ts, id) cursor: composite cursor · case 01
Messages sharing the cursor timestamp are skipped when loading older history.
Page older history with a composite (ts, id) cursor: composite cursor · case 02
Messages sharing the cursor timestamp are skipped when loading older history.
Page older history with a composite (ts, id) cursor: composite cursor · case 03
Messages sharing the cursor timestamp are skipped when loading older history.
Page older history with a composite (ts, id) cursor: composite cursor · case 04
Messages sharing the cursor timestamp are skipped when loading older history.
Page older history with a composite (ts, id) cursor: composite cursor · case 05
Messages sharing the cursor timestamp are skipped when loading older history.
Page older history with a composite (ts, id) cursor: id tiebreak · case 01
Messages with equal timestamps are paged in arrival order, so the cursor comparison and the page disagree.
Page older history with a composite (ts, id) cursor: id tiebreak · case 02
Messages with equal timestamps are paged in arrival order, so the cursor comparison and the page disagree.
Page older history with a composite (ts, id) cursor: id tiebreak · case 03
Messages with equal timestamps are paged in arrival order, so the cursor comparison and the page disagree.
Page older history with a composite (ts, id) cursor: id tiebreak · case 04
Messages with equal timestamps are paged in arrival order, so the cursor comparison and the page disagree.
Page older history with a composite (ts, id) cursor: id tiebreak · case 05
Messages with equal timestamps are paged in arrival order, so the cursor comparison and the page disagree.
Page older history with a composite (ts, id) cursor: newest slice · case 01
Scrolling up loads the very oldest messages instead of those just above the view.
Page older history with a composite (ts, id) cursor: newest slice · case 02
Scrolling up loads the very oldest messages instead of those just above the view.
Page older history with a composite (ts, id) cursor: newest slice · case 03
Scrolling up loads the very oldest messages instead of those just above the view.
Page older history with a composite (ts, id) cursor: newest slice · case 04
Scrolling up loads the very oldest messages instead of those just above the view.
Page older history with a composite (ts, id) cursor: newest slice · case 05
Scrolling up loads the very oldest messages instead of those just above the view.
Page older history with a composite (ts, id) cursor: more flag · case 01
An extra empty page is requested whenever history length is an exact multiple of the page size.
Page older history with a composite (ts, id) cursor: more flag · case 02
An extra empty page is requested whenever history length is an exact multiple of the page size.
Page older history with a composite (ts, id) cursor: more flag · case 03
An extra empty page is requested whenever history length is an exact multiple of the page size.
Page older history with a composite (ts, id) cursor: more flag · case 04
An extra empty page is requested whenever history length is an exact multiple of the page size.
Page older history with a composite (ts, id) cursor: more flag · case 05
An extra empty page is requested whenever history length is an exact multiple of the page size.
Page older history with a composite (ts, id) cursor: cursor point · case 01
The next cursor points at the newest message of the page, so the following page repeats most of it.
Page older history with a composite (ts, id) cursor: cursor point · case 02
The next cursor points at the newest message of the page, so the following page repeats most of it.
Page older history with a composite (ts, id) cursor: cursor point · case 03
The next cursor points at the newest message of the page, so the following page repeats most of it.
Page older history with a composite (ts, id) cursor: cursor point · case 04
The next cursor points at the newest message of the page, so the following page repeats most of it.
Page older history with a composite (ts, id) cursor: cursor point · case 05
The next cursor points at the newest message of the page, so the following page repeats most of it.
Apply create, edit and delete events to message state: terminal delete · case 01
A concurrent edit with a higher version resurrects a message that was deleted.
Apply create, edit and delete events to message state: terminal delete · case 02
A concurrent edit with a higher version resurrects a message that was deleted.
Apply create, edit and delete events to message state: terminal delete · case 03
A concurrent edit with a higher version resurrects a message that was deleted.
Apply create, edit and delete events to message state: terminal delete · case 04
A concurrent edit with a higher version resurrects a message that was deleted.
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.
Apply create, edit and delete events to message state: buffered edit adoption · case 01
An edit that overtook its create is lost, so the original text stays visible.
Apply create, edit and delete events to message state: buffered edit adoption · case 02
An edit that overtook its create is lost, so the original text stays visible.
Apply create, edit and delete events to message state: buffered edit adoption · case 03
An edit that overtook its create is lost, so the original text stays visible.
Apply create, edit and delete events to message state: buffered edit adoption · case 04
An edit that overtook its create is lost, so the original text stays visible.
Apply create, edit and delete events to message state: buffered edit adoption · case 05
An edit that overtook its create is lost, so the original text stays visible.
Apply create, edit and delete events to message state: version compare · case 01
A delayed older edit overwrites the newest text of a message.
Apply create, edit and delete events to message state: version compare · case 02
A delayed older edit overwrites the newest text of a message.
Apply create, edit and delete events to message state: version compare · case 03
A delayed older edit overwrites the newest text of a message.
Apply create, edit and delete events to message state: version compare · case 04
A delayed older edit overwrites the newest text of a message.
Apply create, edit and delete events to message state: version compare · case 05
A delayed older edit overwrites the newest text of a message.
INSPECTABLE BY DESIGN
Every result has a runnable source.
Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.
Read the methodology ↗