{"abstract":"An edit that overtook its create is lost, so the original text stays visible.","category":"Chat ordering and read receipts","checks":9,"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.","contract_signature":"events","evaluation_group":"w2-chat_ordering_and_read_receipts-edit-delete-apply","failed_approach":"Always adopting the buffered edit lets an older edit overwrite a newer create. The attempted `best or e` still disagrees with a fixture.","family":"w2-chat_ordering_and_read_receipts-edit-delete-apply-buffered-edit-adoption","id":"FA-76091","implementations":{"attempt":{"sha256":"214e96af8d4cc7e6bdfa73b83851e47307ba84edd8f674a5735b57d1997efaff","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    state = {}\n    buffered = {}\n    dead = set()\n    for e in events:\n        i = e['id']\n        if e['op'] == 'delete':\n            dead.add(i)\n            state[i] = {'text': None, 'ver': e['ver']}\n        elif i in dead:\n            continue\n        elif e['op'] == 'create':\n            best = buffered.pop(i, None)\n            state[i] = best or e\n        elif i in state:\n            if e['ver'] > state[i]['ver']:\n                state[i] = e\n        else:\n            cur = buffered.get(i)\n            if cur is None or e['ver'] > cur['ver']:\n                buffered[i] = e\n    return {i: v['text'] for i, v in sorted(state.items())}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 4, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 3, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 4, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 1, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}],), {'g0': 't0'})], 2: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 5, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 4, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 5, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 2, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}, {'op': 'create', 'id': 'g1', 'ver': 1, 'text': 't1'}],), {'g0': 't0', 'g1': 't1'})], 3: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 6, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 5, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 6, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 3, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}, {'op': 'create', 'id': 'g1', 'ver': 1, 'text': 't1'}, {'op': 'create', 'id': 'g2', 'ver': 1, 'text': 't2'}],), {'g0': 't0', 'g1': 't1', 'g2': 't2'})], 4: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 7, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 6, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 7, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 4, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}, {'op': 'create', 'id': 'g1', 'ver': 1, 'text': 't1'}, {'op': 'create', 'id': 'g2', 'ver': 1, 'text': 't2'}, {'op': 'create', 'id': 'g3', 'ver': 1, 'text': 't3'}],), {'g0': 't0', 'g1': 't1', 'g2': 't2', 'g3': 't3'})], 5: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 8, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 7, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 8, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 5, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}, {'op': 'create', 'id': 'g1', 'ver': 1, 'text': 't1'}, {'op': 'create', 'id': 'g2', 'ver': 1, 'text': 't2'}, {'op': 'create', 'id': 'g3', 'ver': 1, 'text': 't3'}, {'op': 'create', 'id': 'g4', 'ver': 1, 'text': 't4'}],), {'g0': 't0', 'g1': 't1', 'g2': 't2', 'g3': 't3', 'g4': 't4'})]}\nfor _label, _args, _expected in _CASES[N]:\n    check(_label, solve(*_args), _expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"a43c4cc258e9122dc7c9a7961327ed018d223ad84554c30ea819f68765c4deeb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    state = {}\n    buffered = {}\n    dead = set()\n    for e in events:\n        i = e['id']\n        if e['op'] == 'delete':\n            dead.add(i)\n            state[i] = {'text': None, 'ver': e['ver']}\n        elif i in dead:\n            continue\n        elif e['op'] == 'create':\n            best = buffered.pop(i, None)\n            state[i] = e\n        elif i in state:\n            if e['ver'] > state[i]['ver']:\n                state[i] = e\n        else:\n            cur = buffered.get(i)\n            if cur is None or e['ver'] > cur['ver']:\n                buffered[i] = e\n    return {i: v['text'] for i, v in sorted(state.items())}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 4, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 3, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 4, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 1, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}],), {'g0': 't0'})], 2: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 5, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 4, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 5, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 2, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}, {'op': 'create', 'id': 'g1', 'ver': 1, 'text': 't1'}],), {'g0': 't0', 'g1': 't1'})], 3: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 6, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 5, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 6, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 3, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}, {'op': 'create', 'id': 'g1', 'ver': 1, 'text': 't1'}, {'op': 'create', 'id': 'g2', 'ver': 1, 'text': 't2'}],), {'g0': 't0', 'g1': 't1', 'g2': 't2'})], 4: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 7, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 6, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 7, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 4, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}, {'op': 'create', 'id': 'g1', 'ver': 1, 'text': 't1'}, {'op': 'create', 'id': 'g2', 'ver': 1, 'text': 't2'}, {'op': 'create', 'id': 'g3', 'ver': 1, 'text': 't3'}],), {'g0': 't0', 'g1': 't1', 'g2': 't2', 'g3': 't3'})], 5: [('edit after delete with higher version', ([{'op': 'create', 'id': 'a', 'ver': 1, 'text': 'hi'}, {'op': 'delete', 'id': 'a', 'ver': 2, 'text': None}, {'op': 'edit', 'id': 'a', 'ver': 8, 'text': 'again'}],), {'a': None}), ('edit arrives before create', ([{'op': 'edit', 'id': 'b', 'ver': 2, 'text': 'fixed typo'}, {'op': 'create', 'id': 'b', 'ver': 1, 'text': 'fixd'}],), {'b': 'fixed typo'}), ('stale buffered edit', ([{'op': 'edit', 'id': 'c', 'ver': 1, 'text': 'old'}, {'op': 'create', 'id': 'c', 'ver': 7, 'text': 'new'}],), {'c': 'new'}), ('late stale edit', ([{'op': 'create', 'id': 'd', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'd', 'ver': 3, 'text': 'z'}, {'op': 'edit', 'id': 'd', 'ver': 2, 'text': 'y'}],), {'d': 'z'}), ('two buffered edits out of order', ([{'op': 'edit', 'id': 'e', 'ver': 3, 'text': 'v3'}, {'op': 'edit', 'id': 'e', 'ver': 2, 'text': 'v2'}, {'op': 'create', 'id': 'e', 'ver': 1, 'text': 'v1'}],), {'e': 'v3'}), ('two buffered edits in order', ([{'op': 'edit', 'id': 'h', 'ver': 2, 'text': 'w2'}, {'op': 'edit', 'id': 'h', 'ver': 8, 'text': 'w3'}, {'op': 'create', 'id': 'h', 'ver': 1, 'text': 'w1'}],), {'h': 'w3'}), ('conflicting edit with equal version', ([{'op': 'create', 'id': 'i', 'ver': 1, 'text': 'x'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'first'}, {'op': 'edit', 'id': 'i', 'ver': 2, 'text': 'second'}],), {'i': 'first'}), ('create after delete', ([{'op': 'delete', 'id': 'f', 'ver': 1, 'text': None}, {'op': 'create', 'id': 'f', 'ver': 5, 'text': 'ghost'}],), {'f': None}), ('plain messages', ([{'op': 'create', 'id': 'g0', 'ver': 1, 'text': 't0'}, {'op': 'create', 'id': 'g1', 'ver': 1, 'text': 't1'}, {'op': 'create', 'id': 'g2', 'ver': 1, 'text': 't2'}, {'op': 'create', 'id': 'g3', 'ver': 1, 'text': 't3'}, {'op': 'create', 'id': 'g4', 'ver': 1, 'text': 't4'}],), {'g0': 't0', 'g1': 't1', 'g2': 't2', 'g3': 't3', 'g4': 't4'})]}\nfor _label, _args, _expected in _CASES[N]:\n    check(_label, solve(*_args), _expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Stipulated offline chat model; not a complete messaging protocol, client or server implementation. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-chat_ordering_and_read_receipts-edit-delete-apply-buffered-edit-adoption","generated_at":"2026-09-29T14:49:13.236758+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Message edits and deletions race with the original message across devices; tombstones must stay terminal.","root_cause":"The buffered edit adoption decision evaluates `e` where the contract requires `best if best and best['ver'] > e['ver'] else e`.","sha256":"150df99503b3a70a63f67b047cfb4befb010c3244ec6914328b84617ddcd8dd2","title":"Apply create, edit and delete events to message state: buffered edit adoption · case 01","variant":1,"variant_policy":"N selects a different enumerated fixture set (shifted clocks, identifiers and sizes); boundary fixtures recur across variants.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":40.953,"exit_code":1,"observations":[{"actual":{"a":null},"check":"edit after delete with higher version","expected":{"a":null},"passed":true},{"actual":{"b":"fixed typo"},"check":"edit arrives before create","expected":{"b":"fixed typo"},"passed":true},{"actual":{"c":"old"},"check":"stale buffered edit","expected":{"c":"new"},"passed":false},{"actual":{"d":"z"},"check":"late stale edit","expected":{"d":"z"},"passed":true},{"actual":{"e":"v3"},"check":"two buffered edits out of order","expected":{"e":"v3"},"passed":true},{"actual":{"h":"w3"},"check":"two buffered edits in order","expected":{"h":"w3"},"passed":true},{"actual":{"i":"first"},"check":"conflicting edit with equal version","expected":{"i":"first"},"passed":true},{"actual":{"f":null},"check":"create after delete","expected":{"f":null},"passed":true},{"actual":{"g0":"t0"},"check":"plain messages","expected":{"g0":"t0"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"edit after delete with higher version\", \"actual\": {\"a\": null}, \"expected\": {\"a\": null}, \"passed\": true}, {\"check\": \"edit arrives before create\", \"actual\": {\"b\": \"fixed typo\"}, \"expected\": {\"b\": \"fixed typo\"}, \"passed\": true}, {\"check\": \"stale buffered edit\", \"actual\": {\"c\": \"old\"}, \"expected\": {\"c\": \"new\"}, \"passed\": false}, {\"check\": \"late stale edit\", \"actual\": {\"d\": \"z\"}, \"expected\": {\"d\": \"z\"}, \"passed\": true}, {\"check\": \"two buffered edits out of order\", \"actual\": {\"e\": \"v3\"}, \"expected\": {\"e\": \"v3\"}, \"passed\": true}, {\"check\": \"two buffered edits in order\", \"actual\": {\"h\": \"w3\"}, \"expected\": {\"h\": \"w3\"}, \"passed\": true}, {\"check\": \"conflicting edit with equal version\", \"actual\": {\"i\": \"first\"}, \"expected\": {\"i\": \"first\"}, \"passed\": true}, {\"check\": \"create after delete\", \"actual\": {\"f\": null}, \"expected\": {\"f\": null}, \"passed\": true}, {\"check\": \"plain messages\", \"actual\": {\"g0\": \"t0\"}, \"expected\": {\"g0\": \"t0\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.348,"exit_code":1,"observations":[{"actual":{"a":null},"check":"edit after delete with higher version","expected":{"a":null},"passed":true},{"actual":{"b":"fixd"},"check":"edit arrives before create","expected":{"b":"fixed typo"},"passed":false},{"actual":{"c":"new"},"check":"stale buffered edit","expected":{"c":"new"},"passed":true},{"actual":{"d":"z"},"check":"late stale edit","expected":{"d":"z"},"passed":true},{"actual":{"e":"v1"},"check":"two buffered edits out of order","expected":{"e":"v3"},"passed":false},{"actual":{"h":"w1"},"check":"two buffered edits in order","expected":{"h":"w3"},"passed":false},{"actual":{"i":"first"},"check":"conflicting edit with equal version","expected":{"i":"first"},"passed":true},{"actual":{"f":null},"check":"create after delete","expected":{"f":null},"passed":true},{"actual":{"g0":"t0"},"check":"plain messages","expected":{"g0":"t0"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"edit after delete with higher version\", \"actual\": {\"a\": null}, \"expected\": {\"a\": null}, \"passed\": true}, {\"check\": \"edit arrives before create\", \"actual\": {\"b\": \"fixd\"}, \"expected\": {\"b\": \"fixed typo\"}, \"passed\": false}, {\"check\": \"stale buffered edit\", \"actual\": {\"c\": \"new\"}, \"expected\": {\"c\": \"new\"}, \"passed\": true}, {\"check\": \"late stale edit\", \"actual\": {\"d\": \"z\"}, \"expected\": {\"d\": \"z\"}, \"passed\": true}, {\"check\": \"two buffered edits out of order\", \"actual\": {\"e\": \"v1\"}, \"expected\": {\"e\": \"v3\"}, \"passed\": false}, {\"check\": \"two buffered edits in order\", \"actual\": {\"h\": \"w1\"}, \"expected\": {\"h\": \"w3\"}, \"passed\": false}, {\"check\": \"conflicting edit with equal version\", \"actual\": {\"i\": \"first\"}, \"expected\": {\"i\": \"first\"}, \"passed\": true}, {\"check\": \"create after delete\", \"actual\": {\"f\": null}, \"expected\": {\"f\": null}, \"passed\": true}, {\"check\": \"plain messages\", \"actual\": {\"g0\": \"t0\"}, \"expected\": {\"g0\": \"t0\"}, \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}