{"abstract":"The first message after the join is already considered read.","category":"Chat ordering and read receipts","checks":6,"contract":"messages are seqs (duplicates possible). A member sees seqs >= join_seq, or all seqs from 1 when the room shares history with new members; after leaving at leave_seq they see nothing after leave_seq (their own leave event included). The initial read marker is join_seq - 1, so only messages from the join onward are unread. Result {visible (sorted, unique), initial_marker}.","evaluation_group":"w2-chat_ordering_and_read_receipts-join-visibility","failed_approach":"Deriving the marker from the visibility floor marks all shared history as unread. The attempted `'initial_marker': lo - 1` still disagrees with a fixture.","family":"w2-chat_ordering_and_read_receipts-join-visibility-initial-marker","id":"FA-76331","implementations":{"attempt":{"sha256":"bb56fa0346ab19f16df5bbeb06dcab467987ac423a423bf8a2c71d987415f41d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(messages, join_seq, leave_seq, history_visible):\n    lo = 1 if history_visible else join_seq\n    vis = [s for s in sorted(set(messages)) if s >= lo and (leave_seq is None or s <= leave_seq)]\n    return {'visible': vis, 'initial_marker': lo - 1}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('shared history', ([1, 2, 3, 5], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 5]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 4, None, False), {'initial_marker': 3, 'visible': []})], 2: [('shared history', ([1, 2, 3, 6], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 6]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 8], 7, None, False), {'initial_marker': 6, 'visible': [7, 8, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 5, None, False), {'initial_marker': 4, 'visible': []})], 3: [('shared history', ([1, 2, 3, 7], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 7]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 6, None, False), {'initial_marker': 5, 'visible': []})], 4: [('shared history', ([1, 2, 3, 8], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 8]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 8], 7, None, False), {'initial_marker': 6, 'visible': [7, 8, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 7, None, False), {'initial_marker': 6, 'visible': []})], 5: [('shared history', ([1, 2, 3, 9], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 9]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 8, None, False), {'initial_marker': 7, 'visible': []})]}\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":"7040109dbe88c994ea56fa7753f8db8cbd38c20429fd74f8a52654cb7846b17f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(messages, join_seq, leave_seq, history_visible):\n    lo = 1 if history_visible else join_seq\n    vis = [s for s in sorted(set(messages)) if s >= lo and (leave_seq is None or s <= leave_seq)]\n    return {'visible': vis, 'initial_marker': join_seq}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('shared history', ([1, 2, 3, 5], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 5]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 4, None, False), {'initial_marker': 3, 'visible': []})], 2: [('shared history', ([1, 2, 3, 6], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 6]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 8], 7, None, False), {'initial_marker': 6, 'visible': [7, 8, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 5, None, False), {'initial_marker': 4, 'visible': []})], 3: [('shared history', ([1, 2, 3, 7], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 7]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 6, None, False), {'initial_marker': 5, 'visible': []})], 4: [('shared history', ([1, 2, 3, 8], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 8]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 8], 7, None, False), {'initial_marker': 6, 'visible': [7, 8, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 7, None, False), {'initial_marker': 6, 'visible': []})], 5: [('shared history', ([1, 2, 3, 9], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 9]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 8, None, False), {'initial_marker': 7, 'visible': []})]}\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"},"fixed":{"sha256":"5a9bb6fd562f55e8901de307e491c6008e3b33f4b3a3133441f314027a0bb297","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(messages, join_seq, leave_seq, history_visible):\n    lo = 1 if history_visible else join_seq\n    vis = [s for s in sorted(set(messages)) if s >= lo and (leave_seq is None or s <= leave_seq)]\n    return {'visible': vis, 'initial_marker': join_seq - 1}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('shared history', ([1, 2, 3, 5], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 5]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 4, None, False), {'initial_marker': 3, 'visible': []})], 2: [('shared history', ([1, 2, 3, 6], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 6]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 8], 7, None, False), {'initial_marker': 6, 'visible': [7, 8, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 5, None, False), {'initial_marker': 4, 'visible': []})], 3: [('shared history', ([1, 2, 3, 7], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 7]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 6, None, False), {'initial_marker': 5, 'visible': []})], 4: [('shared history', ([1, 2, 3, 8], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 8]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 8], 7, None, False), {'initial_marker': 6, 'visible': [7, 8, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 7, None, False), {'initial_marker': 6, 'visible': []})], 5: [('shared history', ([1, 2, 3, 9], 3, None, True), {'initial_marker': 2, 'visible': [1, 2, 3, 9]}), ('join message visible', ([4, 5, 6], 5, None, False), {'initial_marker': 4, 'visible': [5, 6]}), ('leave event visible', ([5, 6, 7, 8], 5, 7, False), {'initial_marker': 4, 'visible': [5, 6, 7]}), ('duplicate deliveries', ([9, 7, 7, 9], 7, None, False), {'initial_marker': 6, 'visible': [7, 9]}), ('history visible after leave', ([1, 2, 3], 2, 2, True), {'initial_marker': 1, 'visible': [1, 2]}), ('nothing yet', ([], 8, None, False), {'initial_marker': 7, 'visible': []})]}\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-join-visibility-initial-marker","generated_at":"2026-09-29T14:49:15.350905+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Membership changes decide which history a user may read and where their unread count starts.","repair":"Use `'initial_marker': join_seq - 1` for the initial marker decision and keep every other rule of the model unchanged.","root_cause":"The initial marker decision evaluates `'initial_marker': join_seq` where the contract requires `'initial_marker': join_seq - 1`.","sha256":"33107e9ef68f8c843344f37ff7b7cf4b46c1e00e68b185f1c861cf0da2d34b68","title":"Compute a member's visible history and initial read marker: initial marker · case 01","variant":1,"variant_policy":"N selects a different enumerated fixture set (shifted clocks, identifiers and sizes); boundary fixtures recur across variants.","verification":{"attempt":{"elapsed_ms":43.242,"exit_code":1,"observations":[{"actual":{"initial_marker":0,"visible":[1,2,3,5]},"check":"shared history","expected":{"initial_marker":2,"visible":[1,2,3,5]},"passed":false},{"actual":{"initial_marker":4,"visible":[5,6]},"check":"join message visible","expected":{"initial_marker":4,"visible":[5,6]},"passed":true},{"actual":{"initial_marker":4,"visible":[5,6,7]},"check":"leave event visible","expected":{"initial_marker":4,"visible":[5,6,7]},"passed":true},{"actual":{"initial_marker":6,"visible":[7,9]},"check":"duplicate deliveries","expected":{"initial_marker":6,"visible":[7,9]},"passed":true},{"actual":{"initial_marker":0,"visible":[1,2]},"check":"history visible after leave","expected":{"initial_marker":1,"visible":[1,2]},"passed":false},{"actual":{"initial_marker":3,"visible":[]},"check":"nothing yet","expected":{"initial_marker":3,"visible":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"shared history\", \"actual\": {\"visible\": [1, 2, 3, 5], \"initial_marker\": 0}, \"expected\": {\"initial_marker\": 2, \"visible\": [1, 2, 3, 5]}, \"passed\": false}, {\"check\": \"join message visible\", \"actual\": {\"visible\": [5, 6], \"initial_marker\": 4}, \"expected\": {\"initial_marker\": 4, \"visible\": [5, 6]}, \"passed\": true}, {\"check\": \"leave event visible\", \"actual\": {\"visible\": [5, 6, 7], \"initial_marker\": 4}, \"expected\": {\"initial_marker\": 4, \"visible\": [5, 6, 7]}, \"passed\": true}, {\"check\": \"duplicate deliveries\", \"actual\": {\"visible\": [7, 9], \"initial_marker\": 6}, \"expected\": {\"initial_marker\": 6, \"visible\": [7, 9]}, \"passed\": true}, {\"check\": \"history visible after leave\", \"actual\": {\"visible\": [1, 2], \"initial_marker\": 0}, \"expected\": {\"initial_marker\": 1, \"visible\": [1, 2]}, \"passed\": false}, {\"check\": \"nothing yet\", \"actual\": {\"visible\": [], \"initial_marker\": 3}, \"expected\": {\"initial_marker\": 3, \"visible\": []}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.688,"exit_code":1,"observations":[{"actual":{"initial_marker":3,"visible":[1,2,3,5]},"check":"shared history","expected":{"initial_marker":2,"visible":[1,2,3,5]},"passed":false},{"actual":{"initial_marker":5,"visible":[5,6]},"check":"join message visible","expected":{"initial_marker":4,"visible":[5,6]},"passed":false},{"actual":{"initial_marker":5,"visible":[5,6,7]},"check":"leave event visible","expected":{"initial_marker":4,"visible":[5,6,7]},"passed":false},{"actual":{"initial_marker":7,"visible":[7,9]},"check":"duplicate deliveries","expected":{"initial_marker":6,"visible":[7,9]},"passed":false},{"actual":{"initial_marker":2,"visible":[1,2]},"check":"history visible after leave","expected":{"initial_marker":1,"visible":[1,2]},"passed":false},{"actual":{"initial_marker":4,"visible":[]},"check":"nothing yet","expected":{"initial_marker":3,"visible":[]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"shared history\", \"actual\": {\"visible\": [1, 2, 3, 5], \"initial_marker\": 3}, \"expected\": {\"initial_marker\": 2, \"visible\": [1, 2, 3, 5]}, \"passed\": false}, {\"check\": \"join message visible\", \"actual\": {\"visible\": [5, 6], \"initial_marker\": 5}, \"expected\": {\"initial_marker\": 4, \"visible\": [5, 6]}, \"passed\": false}, {\"check\": \"leave event visible\", \"actual\": {\"visible\": [5, 6, 7], \"initial_marker\": 5}, \"expected\": {\"initial_marker\": 4, \"visible\": [5, 6, 7]}, \"passed\": false}, {\"check\": \"duplicate deliveries\", \"actual\": {\"visible\": [7, 9], \"initial_marker\": 7}, \"expected\": {\"initial_marker\": 6, \"visible\": [7, 9]}, \"passed\": false}, {\"check\": \"history visible after leave\", \"actual\": {\"visible\": [1, 2], \"initial_marker\": 2}, \"expected\": {\"initial_marker\": 1, \"visible\": [1, 2]}, \"passed\": false}, {\"check\": \"nothing yet\", \"actual\": {\"visible\": [], \"initial_marker\": 4}, \"expected\": {\"initial_marker\": 3, \"visible\": []}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.332,"exit_code":0,"observations":[{"actual":{"initial_marker":2,"visible":[1,2,3,5]},"check":"shared history","expected":{"initial_marker":2,"visible":[1,2,3,5]},"passed":true},{"actual":{"initial_marker":4,"visible":[5,6]},"check":"join message visible","expected":{"initial_marker":4,"visible":[5,6]},"passed":true},{"actual":{"initial_marker":4,"visible":[5,6,7]},"check":"leave event visible","expected":{"initial_marker":4,"visible":[5,6,7]},"passed":true},{"actual":{"initial_marker":6,"visible":[7,9]},"check":"duplicate deliveries","expected":{"initial_marker":6,"visible":[7,9]},"passed":true},{"actual":{"initial_marker":1,"visible":[1,2]},"check":"history visible after leave","expected":{"initial_marker":1,"visible":[1,2]},"passed":true},{"actual":{"initial_marker":3,"visible":[]},"check":"nothing yet","expected":{"initial_marker":3,"visible":[]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"shared history\", \"actual\": {\"visible\": [1, 2, 3, 5], \"initial_marker\": 2}, \"expected\": {\"initial_marker\": 2, \"visible\": [1, 2, 3, 5]}, \"passed\": true}, {\"check\": \"join message visible\", \"actual\": {\"visible\": [5, 6], \"initial_marker\": 4}, \"expected\": {\"initial_marker\": 4, \"visible\": [5, 6]}, \"passed\": true}, {\"check\": \"leave event visible\", \"actual\": {\"visible\": [5, 6, 7], \"initial_marker\": 4}, \"expected\": {\"initial_marker\": 4, \"visible\": [5, 6, 7]}, \"passed\": true}, {\"check\": \"duplicate deliveries\", \"actual\": {\"visible\": [7, 9], \"initial_marker\": 6}, \"expected\": {\"initial_marker\": 6, \"visible\": [7, 9]}, \"passed\": true}, {\"check\": \"history visible after leave\", \"actual\": {\"visible\": [1, 2], \"initial_marker\": 1}, \"expected\": {\"initial_marker\": 1, \"visible\": [1, 2]}, \"passed\": true}, {\"check\": \"nothing yet\", \"actual\": {\"visible\": [], \"initial_marker\": 3}, \"expected\": {\"initial_marker\": 3, \"visible\": []}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}