{"abstract":"The tab workspace reports an incorrect reusable preview.","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.","evaluation_group":"s3-tabs-preview-replacement","failed_approach":"The partial repair not x['dirty'] still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-preview-replacement-reusable-preview","id":"FA-35401","implementations":{"attempt":{"sha256":"5d286fe5860bdad4d1f5c83acb14482fd8ee2fe583a5ef0ed349a86ee518b393","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = not x['dirty']\n    r1 = 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":"0eb712690a3dd282de215f8ac970209dc8298e0d43b4687d2f26ccfb31522b46","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\n    r1 = 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"},"fixed":{"sha256":"da7d7647238b93f0a1c0ac9880588b9fb8ee58f5010265e9982ca9f1360e88ce","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['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"}},"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-reusable-preview","generated_at":"2026-09-29T14:42:41.224974+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.","repair":"Use the stipulated workspace rule: x['preview'] is not None and not x['dirty'] and not x['pinned'].","root_cause":"The reusable preview decision uses x['preview'] is not None instead of x['preview'] is not None and not x['dirty'] and not x['pinned'].","sha256":"80db3c2cac4b595c82e603ccca1d772ecb469f20414ddf17a11fbeda03092feb","title":"Preview replacement: reusable preview · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.561,"exit_code":1,"observations":[{"actual":[true,"new",0,"durable",false,2],"check":"workspace regression 0","expected":[true,"new",0,"durable",false,2],"passed":true},{"actual":[false,"new",0,"durable",true,3],"check":"workspace regression 1","expected":[false,"new",0,"durable",true,3],"passed":true},{"actual":[true,"new",0,"durable",true,3],"check":"workspace regression 2","expected":[false,"new",0,"durable",true,3],"passed":false},{"actual":[true,"new",0,"preview",false,2],"check":"workspace regression 3","expected":[true,"new",0,"preview",false,2],"passed":true},{"actual":[true,"new",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, \"new\", 0, \"durable\", false, 2], \"expected\": [true, \"new\", 0, \"durable\", false, 2], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [false, \"new\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [true, \"new\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [true, \"new\", 0, \"preview\", false, 2], \"expected\": [true, \"new\", 0, \"preview\", false, 2], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [true, \"new\", 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"},"broken":{"elapsed_ms":42.983,"exit_code":1,"observations":[{"actual":[true,"new",0,"durable",false,2],"check":"workspace regression 0","expected":[true,"new",0,"durable",false,2],"passed":true},{"actual":[true,"new",0,"durable",true,3],"check":"workspace regression 1","expected":[false,"new",0,"durable",true,3],"passed":false},{"actual":[true,"new",0,"durable",true,3],"check":"workspace regression 2","expected":[false,"new",0,"durable",true,3],"passed":false},{"actual":[true,"new",0,"preview",false,2],"check":"workspace regression 3","expected":[true,"new",0,"preview",false,2],"passed":true},{"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, \"new\", 0, \"durable\", false, 2], \"expected\": [true, \"new\", 0, \"durable\", false, 2], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [true, \"new\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [true, \"new\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [true, \"new\", 0, \"preview\", false, 2], \"expected\": [true, \"new\", 0, \"preview\", false, 2], \"passed\": true}, {\"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"},"fixed":{"elapsed_ms":42.66,"exit_code":0,"observations":[{"actual":[true,"new",0,"durable",false,2],"check":"workspace regression 0","expected":[true,"new",0,"durable",false,2],"passed":true},{"actual":[false,"new",0,"durable",true,3],"check":"workspace regression 1","expected":[false,"new",0,"durable",true,3],"passed":true},{"actual":[false,"new",0,"durable",true,3],"check":"workspace regression 2","expected":[false,"new",0,"durable",true,3],"passed":true},{"actual":[true,"new",0,"preview",false,2],"check":"workspace regression 3","expected":[true,"new",0,"preview",false,2],"passed":true},{"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":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, \"new\", 0, \"durable\", false, 2], \"expected\": [true, \"new\", 0, \"durable\", false, 2], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [false, \"new\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [false, \"new\", 0, \"durable\", true, 3], \"expected\": [false, \"new\", 0, \"durable\", true, 3], \"passed\": true}, {\"check\": \"workspace regression 3\", \"actual\": [true, \"new\", 0, \"preview\", false, 2], \"expected\": [true, \"new\", 0, \"preview\", false, 2], \"passed\": true}, {\"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\": true}\n"}},"verified":true,"visibility":"public"}