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
Hunk function context: underscore and dollar headings are ignored · case 01
Hunks inside labels or macros that start with "_" or "$" show an older heading.
Hunk function context: underscore and dollar headings are ignored · case 02
Hunks inside labels or macros that start with "_" or "$" show an older heading.
Hunk function context: underscore and dollar headings are ignored · case 03
Hunks inside labels or macros that start with "_" or "$" show an older heading.
Hunk function context: underscore and dollar headings are ignored · case 04
Hunks inside labels or macros that start with "_" or "$" show an older heading.
Hunk function context: underscore and dollar headings are ignored · case 05
Hunks inside labels or macros that start with "_" or "$" show an older heading.
Conflict resolution reuse: a conflict with swapped sides is not recognized · case 01
The same conflict seen from the other branch must be resolved by hand again.
Conflict resolution reuse: a conflict with swapped sides is not recognized · case 02
The same conflict seen from the other branch must be resolved by hand again.
Conflict resolution reuse: a conflict with swapped sides is not recognized · case 03
The same conflict seen from the other branch must be resolved by hand again.
Conflict resolution reuse: a conflict with swapped sides is not recognized · case 04
The same conflict seen from the other branch must be resolved by hand again.
Conflict resolution reuse: a conflict with swapped sides is not recognized · case 05
The same conflict seen from the other branch must be resolved by hand again.
Conflict resolution reuse: base sections leak into our side · case 01
diff3-style conflicts never match recorded resolutions.
Conflict resolution reuse: base sections leak into our side · case 02
diff3-style conflicts never match recorded resolutions.
Conflict resolution reuse: base sections leak into our side · case 03
diff3-style conflicts never match recorded resolutions.
Conflict resolution reuse: base sections leak into our side · case 04
diff3-style conflicts never match recorded resolutions.
Conflict resolution reuse: base sections leak into our side · case 05
diff3-style conflicts never match recorded resolutions.
Conflict resolution reuse: labelled opening markers are not recognized · case 01
Conflicts produced with branch labels pass through untouched.
Conflict resolution reuse: labelled opening markers are not recognized · case 02
Conflicts produced with branch labels pass through untouched.
Conflict resolution reuse: labelled opening markers are not recognized · case 03
Conflicts produced with branch labels pass through untouched.
Conflict resolution reuse: labelled opening markers are not recognized · case 04
Conflicts produced with branch labels pass through untouched.
Conflict resolution reuse: labelled opening markers are not recognized · case 05
Conflicts produced with branch labels pass through untouched.
Conflict resolution reuse: unmatched conflicts disappear · case 01
Conflicts with no recorded resolution vanish from the file along with both sides.
Conflict resolution reuse: unmatched conflicts disappear · case 02
Conflicts with no recorded resolution vanish from the file along with both sides.
Conflict resolution reuse: unmatched conflicts disappear · case 03
Conflicts with no recorded resolution vanish from the file along with both sides.
Conflict resolution reuse: unmatched conflicts disappear · case 04
Conflicts with no recorded resolution vanish from the file along with both sides.
Conflict resolution reuse: unmatched conflicts disappear · case 05
Conflicts with no recorded resolution vanish from the file along with both sides.
Diffstat path truncation: a path exactly as wide as the column is truncated · case 01
Paths that would fit are shortened with an ellipsis.
Diffstat path truncation: a path exactly as wide as the column is truncated · case 02
Paths that would fit are shortened with an ellipsis.
Diffstat path truncation: a path exactly as wide as the column is truncated · case 03
Paths that would fit are shortened with an ellipsis.
Diffstat path truncation: a path exactly as wide as the column is truncated · case 04
Paths that would fit are shortened with an ellipsis.
Diffstat path truncation: a path exactly as wide as the column is truncated · case 05
Paths that would fit are shortened with an ellipsis.
Diffstat path truncation: the ellipsis is not counted in the width · case 01
Truncated paths are three characters wider than the column.
Diffstat path truncation: the ellipsis is not counted in the width · case 02
Truncated paths are three characters wider than the column.
Diffstat path truncation: the ellipsis is not counted in the width · case 03
Truncated paths are three characters wider than the column.
Diffstat path truncation: the ellipsis is not counted in the width · case 04
Truncated paths are three characters wider than the column.
Diffstat path truncation: the ellipsis is not counted in the width · case 05
Truncated paths are three characters wider than the column.
Diffstat path truncation: the directory separator is dropped after the ellipsis · case 01
Truncated paths read "...file.py" instead of ".../file.py", hiding that a directory was cut.
Diffstat path truncation: the directory separator is dropped after the ellipsis · case 02
Truncated paths read "...file.py" instead of ".../file.py", hiding that a directory was cut.
Diffstat path truncation: the directory separator is dropped after the ellipsis · case 03
Truncated paths read "...file.py" instead of ".../file.py", hiding that a directory was cut.
Diffstat path truncation: the directory separator is dropped after the ellipsis · case 04
Truncated paths read "...file.py" instead of ".../file.py", hiding that a directory was cut.
Diffstat path truncation: the directory separator is dropped after the ellipsis · case 05
Truncated paths read "...file.py" instead of ".../file.py", hiding that a directory was cut.
Merge server-sequenced messages with local pending sends: server order key · case 01
Messages relayed by a lagging edge node with an earlier wall-clock stamp jump ahead of messages the server sequenced first.
Merge server-sequenced messages with local pending sends: server order key · case 02
Messages relayed by a lagging edge node with an earlier wall-clock stamp jump ahead of messages the server sequenced first.
Merge server-sequenced messages with local pending sends: server order key · case 03
Messages relayed by a lagging edge node with an earlier wall-clock stamp jump ahead of messages the server sequenced first.
Merge server-sequenced messages with local pending sends: server order key · case 04
Messages relayed by a lagging edge node with an earlier wall-clock stamp jump ahead of messages the server sequenced first.
Merge server-sequenced messages with local pending sends: server order key · case 05
Messages relayed by a lagging edge node with an earlier wall-clock stamp jump ahead of messages the server sequenced first.
Merge server-sequenced messages with local pending sends: redelivery identity · case 01
A message redelivered through a second gateway, which stamps its own receive time, is rendered twice.
Merge server-sequenced messages with local pending sends: redelivery identity · case 02
A message redelivered through a second gateway, which stamps its own receive time, is rendered twice.
Merge server-sequenced messages with local pending sends: redelivery identity · case 03
A message redelivered through a second gateway, which stamps its own receive time, is rendered twice.
Merge server-sequenced messages with local pending sends: redelivery identity · case 04
A message redelivered through a second gateway, which stamps its own receive time, is rendered twice.
Merge server-sequenced messages with local pending sends: redelivery identity · case 05
A message redelivered through a second gateway, which stamps its own receive time, is rendered twice.
Merge server-sequenced messages with local pending sends: echo suppression · case 01
A local send that the server already echoed back stays visible as a pending duplicate bubble.
Merge server-sequenced messages with local pending sends: echo suppression · case 02
A local send that the server already echoed back stays visible as a pending duplicate bubble.
Merge server-sequenced messages with local pending sends: echo suppression · case 03
A local send that the server already echoed back stays visible as a pending duplicate bubble.
Merge server-sequenced messages with local pending sends: echo suppression · case 04
A local send that the server already echoed back stays visible as a pending duplicate bubble.
Merge server-sequenced messages with local pending sends: echo suppression · case 05
A local send that the server already echoed back stays visible as a pending duplicate bubble.
Merge server-sequenced messages with local pending sends: pending order · case 01
Unsent messages typed in quick succession appear in random nonce order instead of the order they were written.
Merge server-sequenced messages with local pending sends: pending order · case 02
Unsent messages typed in quick succession appear in random nonce order instead of the order they were written.
Merge server-sequenced messages with local pending sends: pending order · case 03
Unsent messages typed in quick succession appear in random nonce order instead of the order they were written.
Merge server-sequenced messages with local pending sends: pending order · case 04
Unsent messages typed in quick succession appear in random nonce order instead of the order they were written.
Merge server-sequenced messages with local pending sends: pending order · case 05
Unsent messages typed in quick succession appear in random nonce order instead of the order they were written.
Advance a stored read marker from a device report: stale session gate · case 01
A queued read report from a session that predates a "mark unread" silently marks the conversation read again.
Advance a stored read marker from a device report: stale session gate · case 02
A queued read report from a session that predates a "mark unread" silently marks the conversation read again.
Advance a stored read marker from a device report: stale session gate · case 03
A queued read report from a session that predates a "mark unread" silently marks the conversation read again.
Advance a stored read marker from a device report: stale session gate · case 04
A queued read report from a session that predates a "mark unread" silently marks the conversation read again.
Advance a stored read marker from a device report: stale session gate · case 05
A queued read report from a session that predates a "mark unread" silently marks the conversation read again.
Advance a stored read marker from a device report: clamp to latest · case 01
A client reporting an optimistic local sequence pushes the marker past messages that have not arrived yet, so they are never counted unread.
Advance a stored read marker from a device report: clamp to latest · case 02
A client reporting an optimistic local sequence pushes the marker past messages that have not arrived yet, so they are never counted unread.
Advance a stored read marker from a device report: clamp to latest · case 03
A client reporting an optimistic local sequence pushes the marker past messages that have not arrived yet, so they are never counted unread.
Advance a stored read marker from a device report: clamp to latest · case 04
A client reporting an optimistic local sequence pushes the marker past messages that have not arrived yet, so they are never counted unread.
Advance a stored read marker from a device report: clamp to latest · case 05
A client reporting an optimistic local sequence pushes the marker past messages that have not arrived yet, so they are never counted unread.
Advance a stored read marker from a device report: monotonic advance · case 01
A delayed report from a slower device drags the read marker backwards and resurrects already-read messages.
Advance a stored read marker from a device report: monotonic advance · case 02
A delayed report from a slower device drags the read marker backwards and resurrects already-read messages.
Advance a stored read marker from a device report: monotonic advance · case 03
A delayed report from a slower device drags the read marker backwards and resurrects already-read messages.
Advance a stored read marker from a device report: monotonic advance · case 04
A delayed report from a slower device drags the read marker backwards and resurrects already-read messages.
Advance a stored read marker from a device report: monotonic advance · case 05
A delayed report from a slower device drags the read marker backwards and resurrects already-read messages.
Advance a stored read marker from a device report: broadcast only on change · case 01
Every duplicate or lower report is rebroadcast to all devices, producing receipt storms.
Advance a stored read marker from a device report: broadcast only on change · case 02
Every duplicate or lower report is rebroadcast to all devices, producing receipt storms.
Advance a stored read marker from a device report: broadcast only on change · case 03
Every duplicate or lower report is rebroadcast to all devices, producing receipt storms.
Advance a stored read marker from a device report: broadcast only on change · case 04
Every duplicate or lower report is rebroadcast to all devices, producing receipt storms.
Advance a stored read marker from a device report: broadcast only on change · case 05
Every duplicate or lower report is rebroadcast to all devices, producing receipt storms.
Advance a stored read marker from a device report: unread floor · case 01
After history trimming leaves the marker above the newest retained message, the unread count turns negative or positive instead of zero.
Advance a stored read marker from a device report: unread floor · case 02
After history trimming leaves the marker above the newest retained message, the unread count turns negative or positive instead of zero.
Advance a stored read marker from a device report: unread floor · case 03
After history trimming leaves the marker above the newest retained message, the unread count turns negative or positive instead of zero.
Advance a stored read marker from a device report: unread floor · case 04
After history trimming leaves the marker above the newest retained message, the unread count turns negative or positive instead of zero.
Advance a stored read marker from a device report: unread floor · case 05
After history trimming leaves the marker above the newest retained message, the unread count turns negative or positive instead of zero.
Count unread messages for a conversation badge: marker inclusive · case 01
The message the user last read is counted as unread again, so badges never reach zero.
Count unread messages for a conversation badge: marker inclusive · case 02
The message the user last read is counted as unread again, so badges never reach zero.
Count unread messages for a conversation badge: marker inclusive · case 03
The message the user last read is counted as unread again, so badges never reach zero.
Count unread messages for a conversation badge: marker inclusive · case 04
The message the user last read is counted as unread again, so badges never reach zero.
Count unread messages for a conversation badge: marker inclusive · case 05
The message the user last read is counted as unread again, so badges never reach zero.
Count unread messages for a conversation badge: own author casefold · case 01
Messages sent from the user's other client, which spells the handle with different casing, count as unread.
Count unread messages for a conversation badge: own author casefold · case 02
Messages sent from the user's other client, which spells the handle with different casing, count as unread.
Count unread messages for a conversation badge: own author casefold · case 03
Messages sent from the user's other client, which spells the handle with different casing, count as unread.
Count unread messages for a conversation badge: own author casefold · case 04
Messages sent from the user's other client, which spells the handle with different casing, count as unread.
Count unread messages for a conversation badge: own author casefold · case 05
Messages sent from the user's other client, which spells the handle with different casing, count as unread.
Count unread messages for a conversation badge: user kind only · case 01
Call notices and other non-user events inflate the unread badge.
Count unread messages for a conversation badge: user kind only · case 02
Call notices and other non-user events inflate the unread badge.
Count unread messages for a conversation badge: user kind only · case 03
Call notices and other non-user events inflate the unread badge.
Count unread messages for a conversation badge: user kind only · case 04
Call notices and other non-user events inflate the unread badge.
Count unread messages for a conversation badge: user kind only · case 05
Call notices and other non-user events inflate the unread badge.
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 ↗