{"abstract":"The tab workspace reports an incorrect replacement document.","category":"Tab interfaces","checks":7,"contract":"A preview can replace only a clean unpinned preview. Reusing the view retains its slot but replaces document state; promotion makes it durable.","contract_signature":"x","evaluation_group":"s3-tabs-preview-replacement","failed_approach":"The partial repair x['preview'] if x['preview'] else x['incoming'] still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-preview-replacement-replacement-document","id":"FA-35406","implementations":{"attempt":{"sha256":"3b2b831182135f869cb6a7b4bfd3d09f6047ee7c94bbb219ff59ab5ada3d10f6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['preview'] is not None and not x['dirty'] and not x['pinned']\n    r1 = x['preview'] if x['preview'] else x['incoming']\n    r2 = 0 if x['incoming']!=x['preview'] else x['scroll']\n    r3 = 'durable' if x['promote'] else 'preview'\n    r4 = x['dirty'] or x['pinned']\n    r5 = x['slot'] if x['preview'] is not None and not x['dirty'] and not x['pinned'] else x['slot']+1\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 70, 'promote': True}, [True, 'old', 70, 'durable', False, 2])], 2: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 140, 'promote': True}, [True, 'old', 140, 'durable', False, 2])], 3: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 210, 'promote': True}, [True, 'old', 210, 'durable', False, 2])], 4: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 280, 'promote': True}, [True, 'old', 280, 'durable', False, 2])], 5: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 350, 'promote': True}, [True, 'old', 350, 'durable', False, 2])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), 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":"bdcd35fcda1828f6fd7451c1cb1553821341afc55b1940f4d3fc89aeda47a66c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['preview'] is not None and not x['dirty'] and not x['pinned']\n    r1 = x['preview']\n    r2 = 0 if x['incoming']!=x['preview'] else x['scroll']\n    r3 = 'durable' if x['promote'] else 'preview'\n    r4 = x['dirty'] or x['pinned']\n    r5 = x['slot'] if x['preview'] is not None and not x['dirty'] and not x['pinned'] else x['slot']+1\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 70, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 70, 'promote': True}, [True, 'old', 70, 'durable', False, 2])], 2: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 140, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 140, 'promote': True}, [True, 'old', 140, 'durable', False, 2])], 3: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 210, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 210, 'promote': True}, [True, 'old', 210, 'durable', False, 2])], 4: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 280, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 280, 'promote': True}, [True, 'old', 280, 'durable', False, 2])], 5: [({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': True}, [True, 'new', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': True, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': True, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': True}, [False, 'new', 0, 'durable', True, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': False}, [True, 'new', 0, 'preview', False, 2]), ({'preview': None, 'dirty': False, 'pinned': False, 'incoming': 'new', 'slot': 2, 'scroll': 350, 'promote': True}, [False, 'new', 0, 'durable', False, 3]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 0, 'promote': True}, [True, 'old', 0, 'durable', False, 2]), ({'preview': 'old', 'dirty': False, 'pinned': False, 'incoming': 'old', 'slot': 2, 'scroll': 350, 'promote': True}, [True, 'old', 350, 'durable', False, 2])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), 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":"Finite stipulated workspace snapshots only. Independent result fields describe observable obligations, not a full UI runtime. 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":"s3-tab-interfaces-preview-replacement-replacement-document","generated_at":"2026-09-29T14:42:41.475820+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline tab/panel workspace behavior; no browser or desktop framework is emulated.","root_cause":"The replacement document decision uses x['preview'] instead of x['incoming'].","sha256":"a3ff81c39199215a0fab82021f0c62324a3c8e01d4ae75a0fd436f13eeb62a82","title":"Preview replacement: replacement document · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":41.64,"exit_code":1,"observations":[{"actual":[true,"old",0,"durable",false,2],"check":"workspace regression 0","expected":[true,"new",0,"durable",false,2],"passed":false},{"actual":[false,"old",0,"durable",true,3],"check":"workspace regression 1","expected":[false,"new",0,"durable",true,3],"passed":false},{"actual":[false,"old",0,"durable",true,3],"check":"workspace regression 2","expected":[false,"new",0,"durable",true,3],"passed":false},{"actual":[true,"old",0,"preview",false,2],"check":"workspace regression 3","expected":[true,"new",0,"preview",false,2],"passed":false},{"actual":[false,"new",0,"durable",false,3],"check":"workspace regression 4","expected":[false,"new",0,"durable",false,3],"passed":true},{"actual":[true,"old",0,"durable",false,2],"check":"workspace regression 5","expected":[true,"old",0,"durable",false,2],"passed":true},{"actual":[true,"old",70,"durable",false,2],"check":"workspace regression 6","expected":[true,"old",70,"durable",false,2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, \"old\", 0, \"durable\", false, 2], \"expected\": [true, \"new\", 0, \"durable\", false, 2], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [false, \"old\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [false, \"old\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [true, \"old\", 0, \"preview\", false, 2], \"expected\": [true, \"new\", 0, \"preview\", false, 2], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [false, \"new\", 0, \"durable\", false, 3], \"expected\": [false, \"new\", 0, \"durable\", false, 3], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [true, \"old\", 0, \"durable\", false, 2], \"expected\": [true, \"old\", 0, \"durable\", false, 2], \"passed\": true}, {\"check\": \"workspace regression 6\", \"actual\": [true, \"old\", 70, \"durable\", false, 2], \"expected\": [true, \"old\", 70, \"durable\", false, 2], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.798,"exit_code":1,"observations":[{"actual":[true,"old",0,"durable",false,2],"check":"workspace regression 0","expected":[true,"new",0,"durable",false,2],"passed":false},{"actual":[false,"old",0,"durable",true,3],"check":"workspace regression 1","expected":[false,"new",0,"durable",true,3],"passed":false},{"actual":[false,"old",0,"durable",true,3],"check":"workspace regression 2","expected":[false,"new",0,"durable",true,3],"passed":false},{"actual":[true,"old",0,"preview",false,2],"check":"workspace regression 3","expected":[true,"new",0,"preview",false,2],"passed":false},{"actual":[false,null,0,"durable",false,3],"check":"workspace regression 4","expected":[false,"new",0,"durable",false,3],"passed":false},{"actual":[true,"old",0,"durable",false,2],"check":"workspace regression 5","expected":[true,"old",0,"durable",false,2],"passed":true},{"actual":[true,"old",70,"durable",false,2],"check":"workspace regression 6","expected":[true,"old",70,"durable",false,2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, \"old\", 0, \"durable\", false, 2], \"expected\": [true, \"new\", 0, \"durable\", false, 2], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [false, \"old\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [false, \"old\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [true, \"old\", 0, \"preview\", false, 2], \"expected\": [true, \"new\", 0, \"preview\", false, 2], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [false, null, 0, \"durable\", false, 3], \"expected\": [false, \"new\", 0, \"durable\", false, 3], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [true, \"old\", 0, \"durable\", false, 2], \"expected\": [true, \"old\", 0, \"durable\", false, 2], \"passed\": true}, {\"check\": \"workspace regression 6\", \"actual\": [true, \"old\", 70, \"durable\", false, 2], \"expected\": [true, \"old\", 70, \"durable\", false, 2], \"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."}}