{"abstract":"The tab workspace reports an incorrect promoted subtree.","category":"Tab interfaces","checks":7,"contract":"A pane disappears only after its last tab closes; promote its sibling subtree, remove the separator, transfer active-pane ownership and retain sibling extent.","evaluation_group":"s3-tabs-collapse-empty-pane","failed_approach":"The partial repair x['sibling'] still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-collapse-empty-pane-promoted-subtree","id":"FA-35891","implementations":{"attempt":{"sha256":"e7893c724e77e647f5f3476302c0f3c741c58d168bb0464332b3b4b758a5c1a7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['remaining']==0 and not x['root']\n    r1 = x['remaining']==0 and x['root']\n    r2 = x['sibling']\n    r3 = x['gutter'] if x['remaining']==0 and not x['root'] else 0\n    r4 = x['sibling'] if x['remaining']==0 and not x['root'] and x['active']==x['pane'] else x['active']\n    r5 = x['width']+x['sibling_width']+x['gutter'] if x['remaining']==0 and not x['root'] else x['sibling_width']\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: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 508]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, False, 'p', 0, 'p', 200]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, True, 'p', 0, 'p', 200]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 508]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 208]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 0}, [True, False, 'q', 0, 'q', 500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, False, 'p', 0, 'p', 200])], 2: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 1016]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, False, 'p', 0, 'p', 400]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, True, 'p', 0, 'p', 400]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 1016]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 416]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 0}, [True, False, 'q', 0, 'q', 1000]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, False, 'p', 0, 'p', 400])], 3: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 1524]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, False, 'p', 0, 'p', 600]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, True, 'p', 0, 'p', 600]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 1524]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 624]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 0}, [True, False, 'q', 0, 'q', 1500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, False, 'p', 0, 'p', 600])], 4: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 2032]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, False, 'p', 0, 'p', 800]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, True, 'p', 0, 'p', 800]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 2032]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 832]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 0}, [True, False, 'q', 0, 'q', 2000]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, False, 'p', 0, 'p', 800])], 5: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 2540]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, False, 'p', 0, 'p', 1000]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, True, 'p', 0, 'p', 1000]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 2540]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 1040]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 0}, [True, False, 'q', 0, 'q', 2500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, False, 'p', 0, 'p', 1000])]}\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":"004edf9acbc3b69e03d99d74794d1c2bb3905a4db8cb48afef8f1a019104aa08","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['remaining']==0 and not x['root']\n    r1 = x['remaining']==0 and x['root']\n    r2 = x['pane']\n    r3 = x['gutter'] if x['remaining']==0 and not x['root'] else 0\n    r4 = x['sibling'] if x['remaining']==0 and not x['root'] and x['active']==x['pane'] else x['active']\n    r5 = x['width']+x['sibling_width']+x['gutter'] if x['remaining']==0 and not x['root'] else x['sibling_width']\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: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 508]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, False, 'p', 0, 'p', 200]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, True, 'p', 0, 'p', 200]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 508]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 208]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 0}, [True, False, 'q', 0, 'q', 500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, False, 'p', 0, 'p', 200])], 2: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 1016]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, False, 'p', 0, 'p', 400]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, True, 'p', 0, 'p', 400]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 1016]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 416]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 0}, [True, False, 'q', 0, 'q', 1000]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, False, 'p', 0, 'p', 400])], 3: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 1524]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, False, 'p', 0, 'p', 600]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, True, 'p', 0, 'p', 600]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 1524]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 624]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 0}, [True, False, 'q', 0, 'q', 1500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, False, 'p', 0, 'p', 600])], 4: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 2032]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, False, 'p', 0, 'p', 800]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, True, 'p', 0, 'p', 800]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 2032]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 832]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 0}, [True, False, 'q', 0, 'q', 2000]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, False, 'p', 0, 'p', 800])], 5: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 2540]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, False, 'p', 0, 'p', 1000]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, True, 'p', 0, 'p', 1000]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 2540]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 1040]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 0}, [True, False, 'q', 0, 'q', 2500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, False, 'p', 0, 'p', 1000])]}\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":"8f86eea3a98990eaa6ba06f75b86f7310aa526b995773ed962f0bb1201691b9f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['remaining']==0 and not x['root']\n    r1 = x['remaining']==0 and x['root']\n    r2 = x['sibling'] if x['remaining']==0 and not x['root'] else x['pane']\n    r3 = x['gutter'] if x['remaining']==0 and not x['root'] else 0\n    r4 = x['sibling'] if x['remaining']==0 and not x['root'] and x['active']==x['pane'] else x['active']\n    r5 = x['width']+x['sibling_width']+x['gutter'] if x['remaining']==0 and not x['root'] else x['sibling_width']\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: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 508]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, False, 'p', 0, 'p', 200]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, True, 'p', 0, 'p', 200]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 508]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 200, 'gutter': 8}, [True, False, 'q', 8, 'q', 208]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 0}, [True, False, 'q', 0, 'q', 500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 300, 'sibling_width': 200, 'gutter': 8}, [False, False, 'p', 0, 'p', 200])], 2: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 1016]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, False, 'p', 0, 'p', 400]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, True, 'p', 0, 'p', 400]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 1016]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 400, 'gutter': 16}, [True, False, 'q', 16, 'q', 416]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 0}, [True, False, 'q', 0, 'q', 1000]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 600, 'sibling_width': 400, 'gutter': 16}, [False, False, 'p', 0, 'p', 400])], 3: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 1524]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, False, 'p', 0, 'p', 600]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, True, 'p', 0, 'p', 600]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 1524]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 600, 'gutter': 24}, [True, False, 'q', 24, 'q', 624]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 0}, [True, False, 'q', 0, 'q', 1500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 900, 'sibling_width': 600, 'gutter': 24}, [False, False, 'p', 0, 'p', 600])], 4: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 2032]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, False, 'p', 0, 'p', 800]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, True, 'p', 0, 'p', 800]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 2032]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 800, 'gutter': 32}, [True, False, 'q', 32, 'q', 832]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 0}, [True, False, 'q', 0, 'q', 2000]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1200, 'sibling_width': 800, 'gutter': 32}, [False, False, 'p', 0, 'p', 800])], 5: [({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 2540]), ({'remaining': 1, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, False, 'p', 0, 'p', 1000]), ({'remaining': 0, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, True, 'p', 0, 'p', 1000]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'q', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 2540]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 0, 'sibling_width': 1000, 'gutter': 40}, [True, False, 'q', 40, 'q', 1040]), ({'remaining': 0, 'root': False, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 0}, [True, False, 'q', 0, 'q', 2500]), ({'remaining': 1, 'root': True, 'sibling': 'q', 'pane': 'p', 'active': 'p', 'width': 1500, 'sibling_width': 1000, 'gutter': 40}, [False, False, 'p', 0, 'p', 1000])]}\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-collapse-empty-pane-promoted-subtree","generated_at":"2026-09-29T14:42:45.855813+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['sibling'] if x['remaining']==0 and not x['root'] else x['pane'].","root_cause":"The promoted subtree decision uses x['pane'] instead of x['sibling'] if x['remaining']==0 and not x['root'] else x['pane'].","sha256":"19080e2bb2df111156973f5d15b1362fa9468e41620ad5d9616849ec61e10a1a","title":"Collapse empty pane: promoted subtree · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.252,"exit_code":1,"observations":[{"actual":[true,false,"q",8,"q",508],"check":"workspace regression 0","expected":[true,false,"q",8,"q",508],"passed":true},{"actual":[false,false,"q",0,"p",200],"check":"workspace regression 1","expected":[false,false,"p",0,"p",200],"passed":false},{"actual":[false,true,"q",0,"p",200],"check":"workspace regression 2","expected":[false,true,"p",0,"p",200],"passed":false},{"actual":[true,false,"q",8,"q",508],"check":"workspace regression 3","expected":[true,false,"q",8,"q",508],"passed":true},{"actual":[true,false,"q",8,"q",208],"check":"workspace regression 4","expected":[true,false,"q",8,"q",208],"passed":true},{"actual":[true,false,"q",0,"q",500],"check":"workspace regression 5","expected":[true,false,"q",0,"q",500],"passed":true},{"actual":[false,false,"q",0,"p",200],"check":"workspace regression 6","expected":[false,false,"p",0,"p",200],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, false, \"q\", 8, \"q\", 508], \"expected\": [true, false, \"q\", 8, \"q\", 508], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [false, false, \"q\", 0, \"p\", 200], \"expected\": [false, false, \"p\", 0, \"p\", 200], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [false, true, \"q\", 0, \"p\", 200], \"expected\": [false, true, \"p\", 0, \"p\", 200], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [true, false, \"q\", 8, \"q\", 508], \"expected\": [true, false, \"q\", 8, \"q\", 508], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [true, false, \"q\", 8, \"q\", 208], \"expected\": [true, false, \"q\", 8, \"q\", 208], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [true, false, \"q\", 0, \"q\", 500], \"expected\": [true, false, \"q\", 0, \"q\", 500], \"passed\": true}, {\"check\": \"workspace regression 6\", \"actual\": [false, false, \"q\", 0, \"p\", 200], \"expected\": [false, false, \"p\", 0, \"p\", 200], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.229,"exit_code":1,"observations":[{"actual":[true,false,"p",8,"q",508],"check":"workspace regression 0","expected":[true,false,"q",8,"q",508],"passed":false},{"actual":[false,false,"p",0,"p",200],"check":"workspace regression 1","expected":[false,false,"p",0,"p",200],"passed":true},{"actual":[false,true,"p",0,"p",200],"check":"workspace regression 2","expected":[false,true,"p",0,"p",200],"passed":true},{"actual":[true,false,"p",8,"q",508],"check":"workspace regression 3","expected":[true,false,"q",8,"q",508],"passed":false},{"actual":[true,false,"p",8,"q",208],"check":"workspace regression 4","expected":[true,false,"q",8,"q",208],"passed":false},{"actual":[true,false,"p",0,"q",500],"check":"workspace regression 5","expected":[true,false,"q",0,"q",500],"passed":false},{"actual":[false,false,"p",0,"p",200],"check":"workspace regression 6","expected":[false,false,"p",0,"p",200],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, false, \"p\", 8, \"q\", 508], \"expected\": [true, false, \"q\", 8, \"q\", 508], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [false, false, \"p\", 0, \"p\", 200], \"expected\": [false, false, \"p\", 0, \"p\", 200], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [false, true, \"p\", 0, \"p\", 200], \"expected\": [false, true, \"p\", 0, \"p\", 200], \"passed\": true}, {\"check\": \"workspace regression 3\", \"actual\": [true, false, \"p\", 8, \"q\", 508], \"expected\": [true, false, \"q\", 8, \"q\", 508], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [true, false, \"p\", 8, \"q\", 208], \"expected\": [true, false, \"q\", 8, \"q\", 208], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [true, false, \"p\", 0, \"q\", 500], \"expected\": [true, false, \"q\", 0, \"q\", 500], \"passed\": false}, {\"check\": \"workspace regression 6\", \"actual\": [false, false, \"p\", 0, \"p\", 200], \"expected\": [false, false, \"p\", 0, \"p\", 200], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.72,"exit_code":0,"observations":[{"actual":[true,false,"q",8,"q",508],"check":"workspace regression 0","expected":[true,false,"q",8,"q",508],"passed":true},{"actual":[false,false,"p",0,"p",200],"check":"workspace regression 1","expected":[false,false,"p",0,"p",200],"passed":true},{"actual":[false,true,"p",0,"p",200],"check":"workspace regression 2","expected":[false,true,"p",0,"p",200],"passed":true},{"actual":[true,false,"q",8,"q",508],"check":"workspace regression 3","expected":[true,false,"q",8,"q",508],"passed":true},{"actual":[true,false,"q",8,"q",208],"check":"workspace regression 4","expected":[true,false,"q",8,"q",208],"passed":true},{"actual":[true,false,"q",0,"q",500],"check":"workspace regression 5","expected":[true,false,"q",0,"q",500],"passed":true},{"actual":[false,false,"p",0,"p",200],"check":"workspace regression 6","expected":[false,false,"p",0,"p",200],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, false, \"q\", 8, \"q\", 508], \"expected\": [true, false, \"q\", 8, \"q\", 508], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [false, false, \"p\", 0, \"p\", 200], \"expected\": [false, false, \"p\", 0, \"p\", 200], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [false, true, \"p\", 0, \"p\", 200], \"expected\": [false, true, \"p\", 0, \"p\", 200], \"passed\": true}, {\"check\": \"workspace regression 3\", \"actual\": [true, false, \"q\", 8, \"q\", 508], \"expected\": [true, false, \"q\", 8, \"q\", 508], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [true, false, \"q\", 8, \"q\", 208], \"expected\": [true, false, \"q\", 8, \"q\", 208], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [true, false, \"q\", 0, \"q\", 500], \"expected\": [true, false, \"q\", 0, \"q\", 500], \"passed\": true}, {\"check\": \"workspace regression 6\", \"actual\": [false, false, \"p\", 0, \"p\", 200], \"expected\": [false, false, \"p\", 0, \"p\", 200], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}