{"abstract":"A message in a conversation with no other eligible recipients is shown as read by everyone.","category":"Chat ordering and read receipts","checks":8,"contract":"Recipients are members other than the sender whose joined_at (first visible seq, default 0) is <= sent_seq. A recipient has read the message when read[u] (their read marker) >= sent_seq; reading implies delivery. Status is \"sent\" with no recipients, \"read\" when every recipient read, \"delivered\" when every recipient got it, else \"sent\". Result {status, read_by (sorted), recipients (count)}.","contract_signature":"sender, members, joined_at, sent_seq, delivered, read","evaluation_group":"w2-chat_ordering_and_read_receipts-group-receipt-summary","failed_approach":"Checking the member list instead still treats the sender-only room as fully read. The attempted `if not members:` still disagrees with a fixture.","family":"w2-chat_ordering_and_read_receipts-group-receipt-summary-empty-recipient-list","id":"FA-75936","implementations":{"attempt":{"sha256":"d33704b2cfe07191bc1fa5d08e54a483b7d9daae77052ac23bd9ba9fc73d96bc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(sender, members, joined_at, sent_seq, delivered, read):\n    recipients = [u for u in members if u != sender and joined_at.get(u, 0) <= sent_seq]\n    has_read = [u for u in recipients if read.get(u, -1) >= sent_seq]\n    got = [u for u in recipients if delivered.get(u) or u in has_read]\n    if not members:\n        status = 'sent'\n    elif len(has_read) == len(recipients):\n        status = 'read'\n    elif len(got) == len(recipients):\n        status = 'delivered'\n    else:\n        status = 'sent'\n    return {'status': status, 'read_by': sorted(has_read), 'recipients': len(recipients)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 21}, 11, {'bo': True}, {'bo': 16}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 10}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 5}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 1, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 5, {'bo': True}, {'cy': 5}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})], 2: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 22}, 12, {'bo': True}, {'bo': 17}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 11}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 6}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 2, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 6, {'bo': True}, {'cy': 6}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})], 3: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 23}, 13, {'bo': True}, {'bo': 18}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 7}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 3, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 7, {'bo': True}, {'cy': 7}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})], 4: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 24}, 14, {'bo': True}, {'bo': 19}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 13}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 8}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 4, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 8, {'bo': True}, {'cy': 8}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})], 5: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 25}, 15, {'bo': True}, {'bo': 20}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 14}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 9}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 5, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 9, {'bo': True}, {'cy': 9}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})]}\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":"6769427668ecf013c8a3922333e7f636137a83dad6709ab1f25a4781f494a0c0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(sender, members, joined_at, sent_seq, delivered, read):\n    recipients = [u for u in members if u != sender and joined_at.get(u, 0) <= sent_seq]\n    has_read = [u for u in recipients if read.get(u, -1) >= sent_seq]\n    got = [u for u in recipients if delivered.get(u) or u in has_read]\n    if recipients is None:\n        status = 'sent'\n    elif len(has_read) == len(recipients):\n        status = 'read'\n    elif len(got) == len(recipients):\n        status = 'delivered'\n    else:\n        status = 'sent'\n    return {'status': status, 'read_by': sorted(has_read), 'recipients': len(recipients)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 21}, 11, {'bo': True}, {'bo': 16}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 10}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 5}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 1, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 5, {'bo': True}, {'cy': 5}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})], 2: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 22}, 12, {'bo': True}, {'bo': 17}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 11}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 6}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 2, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 6, {'bo': True}, {'cy': 6}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})], 3: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 23}, 13, {'bo': True}, {'bo': 18}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 7}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 3, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 7, {'bo': True}, {'cy': 7}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})], 4: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 24}, 14, {'bo': True}, {'bo': 19}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 13}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 8}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 4, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 8, {'bo': True}, {'cy': 8}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})], 5: [('late joiner does not block read', ('al', ['al', 'bo', 'cy'], {'cy': 25}, 15, {'bo': True}, {'bo': 20}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('member joined exactly at the message', ('al', ['al', 'bo', 'cy'], {'cy': 12}, 12, {'bo': True, 'cy': True}, {'bo': 12}), {'read_by': ['bo'], 'recipients': 2, 'status': 'delivered'}), ('read marker beyond message', ('al', ['al', 'bo'], {}, 7, {}, {'bo': 14}), {'read_by': ['bo'], 'recipients': 1, 'status': 'read'}), ('read without delivery ack', ('al', ['al', 'bo', 'cy'], {}, 4, {'bo': True}, {'cy': 9}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('everyone read', ('al', ['al', 'bo', 'cy'], {}, 3, {'bo': True, 'cy': True}, {'bo': 3, 'cy': 5}), {'read_by': ['bo', 'cy'], 'recipients': 2, 'status': 'read'}), ('sender alone', ('al', ['al'], {}, 5, {}, {}), {'read_by': [], 'recipients': 0, 'status': 'sent'}), ('read exactly without ack', ('al', ['al', 'bo', 'cy'], {}, 9, {'bo': True}, {'cy': 9}), {'read_by': ['cy'], 'recipients': 2, 'status': 'delivered'}), ('partial delivery', ('al', ['al', 'bo', 'cy', 'di'], {}, 2, {'bo': True, 'cy': True}, {'bo': 1}), {'read_by': [], 'recipients': 3, 'status': 'sent'})]}\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-group-receipt-summary-empty-recipient-list","generated_at":"2026-09-29T14:49:11.534006+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Group tick marks summarise many receipts; wrong membership or thresholds show false \"read\" states.","root_cause":"The empty recipient list decision evaluates `if recipients is None:` where the contract requires `if not recipients:`.","sha256":"aea78b20786947b69923680889f5dbaee07960c521ae4f7aed73c7ae47afb43a","title":"Summarize group delivery and read receipts for one message: empty recipient list · 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.534,"exit_code":1,"observations":[{"actual":{"read_by":["bo"],"recipients":1,"status":"read"},"check":"late joiner does not block read","expected":{"read_by":["bo"],"recipients":1,"status":"read"},"passed":true},{"actual":{"read_by":["bo"],"recipients":2,"status":"delivered"},"check":"member joined exactly at the message","expected":{"read_by":["bo"],"recipients":2,"status":"delivered"},"passed":true},{"actual":{"read_by":["bo"],"recipients":1,"status":"read"},"check":"read marker beyond message","expected":{"read_by":["bo"],"recipients":1,"status":"read"},"passed":true},{"actual":{"read_by":["cy"],"recipients":2,"status":"delivered"},"check":"read without delivery ack","expected":{"read_by":["cy"],"recipients":2,"status":"delivered"},"passed":true},{"actual":{"read_by":["bo","cy"],"recipients":2,"status":"read"},"check":"everyone read","expected":{"read_by":["bo","cy"],"recipients":2,"status":"read"},"passed":true},{"actual":{"read_by":[],"recipients":0,"status":"read"},"check":"sender alone","expected":{"read_by":[],"recipients":0,"status":"sent"},"passed":false},{"actual":{"read_by":["cy"],"recipients":2,"status":"delivered"},"check":"read exactly without ack","expected":{"read_by":["cy"],"recipients":2,"status":"delivered"},"passed":true},{"actual":{"read_by":[],"recipients":3,"status":"sent"},"check":"partial delivery","expected":{"read_by":[],"recipients":3,"status":"sent"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"late joiner does not block read\", \"actual\": {\"status\": \"read\", \"read_by\": [\"bo\"], \"recipients\": 1}, \"expected\": {\"read_by\": [\"bo\"], \"recipients\": 1, \"status\": \"read\"}, \"passed\": true}, {\"check\": \"member joined exactly at the message\", \"actual\": {\"status\": \"delivered\", \"read_by\": [\"bo\"], \"recipients\": 2}, \"expected\": {\"read_by\": [\"bo\"], \"recipients\": 2, \"status\": \"delivered\"}, \"passed\": true}, {\"check\": \"read marker beyond message\", \"actual\": {\"status\": \"read\", \"read_by\": [\"bo\"], \"recipients\": 1}, \"expected\": {\"read_by\": [\"bo\"], \"recipients\": 1, \"status\": \"read\"}, \"passed\": true}, {\"check\": \"read without delivery ack\", \"actual\": {\"status\": \"delivered\", \"read_by\": [\"cy\"], \"recipients\": 2}, \"expected\": {\"read_by\": [\"cy\"], \"recipients\": 2, \"status\": \"delivered\"}, \"passed\": true}, {\"check\": \"everyone read\", \"actual\": {\"status\": \"read\", \"read_by\": [\"bo\", \"cy\"], \"recipients\": 2}, \"expected\": {\"read_by\": [\"bo\", \"cy\"], \"recipients\": 2, \"status\": \"read\"}, \"passed\": true}, {\"check\": \"sender alone\", \"actual\": {\"status\": \"read\", \"read_by\": [], \"recipients\": 0}, \"expected\": {\"read_by\": [], \"recipients\": 0, \"status\": \"sent\"}, \"passed\": false}, {\"check\": \"read exactly without ack\", \"actual\": {\"status\": \"delivered\", \"read_by\": [\"cy\"], \"recipients\": 2}, \"expected\": {\"read_by\": [\"cy\"], \"recipients\": 2, \"status\": \"delivered\"}, \"passed\": true}, {\"check\": \"partial delivery\", \"actual\": {\"status\": \"sent\", \"read_by\": [], \"recipients\": 3}, \"expected\": {\"read_by\": [], \"recipients\": 3, \"status\": \"sent\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.611,"exit_code":1,"observations":[{"actual":{"read_by":["bo"],"recipients":1,"status":"read"},"check":"late joiner does not block read","expected":{"read_by":["bo"],"recipients":1,"status":"read"},"passed":true},{"actual":{"read_by":["bo"],"recipients":2,"status":"delivered"},"check":"member joined exactly at the message","expected":{"read_by":["bo"],"recipients":2,"status":"delivered"},"passed":true},{"actual":{"read_by":["bo"],"recipients":1,"status":"read"},"check":"read marker beyond message","expected":{"read_by":["bo"],"recipients":1,"status":"read"},"passed":true},{"actual":{"read_by":["cy"],"recipients":2,"status":"delivered"},"check":"read without delivery ack","expected":{"read_by":["cy"],"recipients":2,"status":"delivered"},"passed":true},{"actual":{"read_by":["bo","cy"],"recipients":2,"status":"read"},"check":"everyone read","expected":{"read_by":["bo","cy"],"recipients":2,"status":"read"},"passed":true},{"actual":{"read_by":[],"recipients":0,"status":"read"},"check":"sender alone","expected":{"read_by":[],"recipients":0,"status":"sent"},"passed":false},{"actual":{"read_by":["cy"],"recipients":2,"status":"delivered"},"check":"read exactly without ack","expected":{"read_by":["cy"],"recipients":2,"status":"delivered"},"passed":true},{"actual":{"read_by":[],"recipients":3,"status":"sent"},"check":"partial delivery","expected":{"read_by":[],"recipients":3,"status":"sent"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"late joiner does not block read\", \"actual\": {\"status\": \"read\", \"read_by\": [\"bo\"], \"recipients\": 1}, \"expected\": {\"read_by\": [\"bo\"], \"recipients\": 1, \"status\": \"read\"}, \"passed\": true}, {\"check\": \"member joined exactly at the message\", \"actual\": {\"status\": \"delivered\", \"read_by\": [\"bo\"], \"recipients\": 2}, \"expected\": {\"read_by\": [\"bo\"], \"recipients\": 2, \"status\": \"delivered\"}, \"passed\": true}, {\"check\": \"read marker beyond message\", \"actual\": {\"status\": \"read\", \"read_by\": [\"bo\"], \"recipients\": 1}, \"expected\": {\"read_by\": [\"bo\"], \"recipients\": 1, \"status\": \"read\"}, \"passed\": true}, {\"check\": \"read without delivery ack\", \"actual\": {\"status\": \"delivered\", \"read_by\": [\"cy\"], \"recipients\": 2}, \"expected\": {\"read_by\": [\"cy\"], \"recipients\": 2, \"status\": \"delivered\"}, \"passed\": true}, {\"check\": \"everyone read\", \"actual\": {\"status\": \"read\", \"read_by\": [\"bo\", \"cy\"], \"recipients\": 2}, \"expected\": {\"read_by\": [\"bo\", \"cy\"], \"recipients\": 2, \"status\": \"read\"}, \"passed\": true}, {\"check\": \"sender alone\", \"actual\": {\"status\": \"read\", \"read_by\": [], \"recipients\": 0}, \"expected\": {\"read_by\": [], \"recipients\": 0, \"status\": \"sent\"}, \"passed\": false}, {\"check\": \"read exactly without ack\", \"actual\": {\"status\": \"delivered\", \"read_by\": [\"cy\"], \"recipients\": 2}, \"expected\": {\"read_by\": [\"cy\"], \"recipients\": 2, \"status\": \"delivered\"}, \"passed\": true}, {\"check\": \"partial delivery\", \"actual\": {\"status\": \"sent\", \"read_by\": [], \"recipients\": 3}, \"expected\": {\"read_by\": [], \"recipients\": 3, \"status\": \"sent\"}, \"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."}}