{"abstract":"Identical breadcrumb labels collapse distinct ancestor menu IDs.","category":"Menu interactions","checks":7,"contract":"Menu breadcrumb controls reopen menu ancestors with captured context. Overflow entries retain complete menu paths; owner edges and displayed labels are separate.","evaluation_group":"s3-menu-interactions-breadcrumb-menu","failed_approach":"The attempted repair `list(dict.fromkeys(x['id'] for x in p if x['label']!=p[0]['label']))` still violates the duplicate-label oracle.","family":"s3-menu-interactions-breadcrumb-menu-duplicate-label","id":"FA-32991","implementations":{"attempt":{"sha256":"a7964883244e129e43299a8dd3186313225c9cbc9fc9b82dffaf8b2e0bebfdfa","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport unicodedata\nN = 1\nobservations = []\ndef solve(action, p):\n    if action == 'reopen-action':\n        return {'action':'reopen-menu','path':p['path'],'context':p['context']}\n    if action == 'owner-edge':\n        return p['edges'][p['child']]\n    if action == 'label':\n        return p['labels'].get(p['id'],p['id'])\n    if action == 'omitted-menu-levels':\n        return [p['chain'][:i+1] for i in range(1,len(p['chain'])-1)]\n    if action == 'duplicate-label':\n        return list(dict.fromkeys(x['id'] for x in p if x['label']!=p[0]['label']))\n    if action == 'jump':\n        return p['chain'][:p['index']+1]\n    return {'error': 'unsupported menu operation'}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('reopen-action contract', solve('reopen-action', {'path':['root','tools'],'context':N}), {'action':'reopen-menu','path':['root','tools'],'context':N})\ncheck('owner-edge contract', solve('owner-edge', {'child':'child'+str(N),'edges':{'child'+str(N):'owner'},'root':'root'}), 'owner')\ncheck('label contract', solve('label', {'id':'item'+str(N),'parent':'root','labels':{'item'+str(N):'Item','root':'Root'}}), 'Item')\ncheck('omitted-menu-levels contract', solve('omitted-menu-levels', {'chain':['root','a','b','leaf'+str(N)]}), [['root','a'],['root','a','b']])\ncheck('duplicate-label contract', solve('duplicate-label', [{'id':N,'label':'Same'},{'id':N+1,'label':'Same'}]), [N,N+1])\ncheck('jump contract', solve('jump', {'chain':['r','a',str(N)],'index':1}), ['r','a'])\ncheck('unknown operation', solve('unknown', {}), {'error': 'unsupported menu operation'})\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":"c7c065161df0b8b326176f5175e6a0581ba23c14feeb43b1cb2f078ed85c938e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport unicodedata\nN = 1\nobservations = []\ndef solve(action, p):\n    if action == 'reopen-action':\n        return {'action':'reopen-menu','path':p['path'],'context':p['context']}\n    if action == 'owner-edge':\n        return p['edges'][p['child']]\n    if action == 'label':\n        return p['labels'].get(p['id'],p['id'])\n    if action == 'omitted-menu-levels':\n        return [p['chain'][:i+1] for i in range(1,len(p['chain'])-1)]\n    if action == 'duplicate-label':\n        return list(dict.fromkeys(x['label'] for x in p))\n    if action == 'jump':\n        return p['chain'][:p['index']+1]\n    return {'error': 'unsupported menu operation'}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('reopen-action contract', solve('reopen-action', {'path':['root','tools'],'context':N}), {'action':'reopen-menu','path':['root','tools'],'context':N})\ncheck('owner-edge contract', solve('owner-edge', {'child':'child'+str(N),'edges':{'child'+str(N):'owner'},'root':'root'}), 'owner')\ncheck('label contract', solve('label', {'id':'item'+str(N),'parent':'root','labels':{'item'+str(N):'Item','root':'Root'}}), 'Item')\ncheck('omitted-menu-levels contract', solve('omitted-menu-levels', {'chain':['root','a','b','leaf'+str(N)]}), [['root','a'],['root','a','b']])\ncheck('duplicate-label contract', solve('duplicate-label', [{'id':N,'label':'Same'},{'id':N+1,'label':'Same'}]), [N,N+1])\ncheck('jump contract', solve('jump', {'chain':['r','a',str(N)],'index':1}), ['r','a'])\ncheck('unknown operation', solve('unknown', {}), {'error': 'unsupported menu operation'})\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":"2f9a511a41f17f5910dd63a1b2f8c906171657f9931d104319e7062086c1ef4d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport unicodedata\nN = 1\nobservations = []\ndef solve(action, p):\n    if action == 'reopen-action':\n        return {'action':'reopen-menu','path':p['path'],'context':p['context']}\n    if action == 'owner-edge':\n        return p['edges'][p['child']]\n    if action == 'label':\n        return p['labels'].get(p['id'],p['id'])\n    if action == 'omitted-menu-levels':\n        return [p['chain'][:i+1] for i in range(1,len(p['chain'])-1)]\n    if action == 'duplicate-label':\n        return [x['id'] for x in p]\n    if action == 'jump':\n        return p['chain'][:p['index']+1]\n    return {'error': 'unsupported menu operation'}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('reopen-action contract', solve('reopen-action', {'path':['root','tools'],'context':N}), {'action':'reopen-menu','path':['root','tools'],'context':N})\ncheck('owner-edge contract', solve('owner-edge', {'child':'child'+str(N),'edges':{'child'+str(N):'owner'},'root':'root'}), 'owner')\ncheck('label contract', solve('label', {'id':'item'+str(N),'parent':'root','labels':{'item'+str(N):'Item','root':'Root'}}), 'Item')\ncheck('omitted-menu-levels contract', solve('omitted-menu-levels', {'chain':['root','a','b','leaf'+str(N)]}), [['root','a'],['root','a','b']])\ncheck('duplicate-label contract', solve('duplicate-label', [{'id':N,'label':'Same'},{'id':N+1,'label':'Same'}]), [N,N+1])\ncheck('jump contract', solve('jump', {'chain':['r','a',str(N)],'index':1}), ['r','a'])\ncheck('unknown operation', solve('unknown', {}), {'error': 'unsupported menu operation'})\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":"Offline supplied-valid-payload model; excludes DOM, keyboard, focus, selection, announcements and browser conformance. 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-menu-interactions-breadcrumb-menu-duplicate-label","generated_at":"2026-09-29T14:42:17.858880+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Cascading and context menus require coherent command and session state as content changes.","repair":"Apply `[x['id'] for x in p]` at duplicate-label.","root_cause":"The breadcrumb-menu model applies `list(dict.fromkeys(x['label'] for x in p))` at its duplicate-label operation instead of the stipulated transformation.","sha256":"ecfd533e46707f27df80bc2f6d80045b51a87663eca909d61cc4bef9c0ea27c7","title":"Identical breadcrumb labels collapse distinct ancestor menu IDs · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":46.826,"exit_code":1,"observations":[{"actual":{"action":"reopen-menu","context":1,"path":["root","tools"]},"check":"reopen-action contract","expected":{"action":"reopen-menu","context":1,"path":["root","tools"]},"passed":true},{"actual":"owner","check":"owner-edge contract","expected":"owner","passed":true},{"actual":"Item","check":"label contract","expected":"Item","passed":true},{"actual":[["root","a"],["root","a","b"]],"check":"omitted-menu-levels contract","expected":[["root","a"],["root","a","b"]],"passed":true},{"actual":[],"check":"duplicate-label contract","expected":[1,2],"passed":false},{"actual":["r","a"],"check":"jump contract","expected":["r","a"],"passed":true},{"actual":{"error":"unsupported menu operation"},"check":"unknown operation","expected":{"error":"unsupported menu operation"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"reopen-action contract\", \"actual\": {\"action\": \"reopen-menu\", \"path\": [\"root\", \"tools\"], \"context\": 1}, \"expected\": {\"action\": \"reopen-menu\", \"path\": [\"root\", \"tools\"], \"context\": 1}, \"passed\": true}, {\"check\": \"owner-edge contract\", \"actual\": \"owner\", \"expected\": \"owner\", \"passed\": true}, {\"check\": \"label contract\", \"actual\": \"Item\", \"expected\": \"Item\", \"passed\": true}, {\"check\": \"omitted-menu-levels contract\", \"actual\": [[\"root\", \"a\"], [\"root\", \"a\", \"b\"]], \"expected\": [[\"root\", \"a\"], [\"root\", \"a\", \"b\"]], \"passed\": true}, {\"check\": \"duplicate-label contract\", \"actual\": [], \"expected\": [1, 2], \"passed\": false}, {\"check\": \"jump contract\", \"actual\": [\"r\", \"a\"], \"expected\": [\"r\", \"a\"], \"passed\": true}, {\"check\": \"unknown operation\", \"actual\": {\"error\": \"unsupported menu operation\"}, \"expected\": {\"error\": \"unsupported menu operation\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.019,"exit_code":1,"observations":[{"actual":{"action":"reopen-menu","context":1,"path":["root","tools"]},"check":"reopen-action contract","expected":{"action":"reopen-menu","context":1,"path":["root","tools"]},"passed":true},{"actual":"owner","check":"owner-edge contract","expected":"owner","passed":true},{"actual":"Item","check":"label contract","expected":"Item","passed":true},{"actual":[["root","a"],["root","a","b"]],"check":"omitted-menu-levels contract","expected":[["root","a"],["root","a","b"]],"passed":true},{"actual":["Same"],"check":"duplicate-label contract","expected":[1,2],"passed":false},{"actual":["r","a"],"check":"jump contract","expected":["r","a"],"passed":true},{"actual":{"error":"unsupported menu operation"},"check":"unknown operation","expected":{"error":"unsupported menu operation"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"reopen-action contract\", \"actual\": {\"action\": \"reopen-menu\", \"path\": [\"root\", \"tools\"], \"context\": 1}, \"expected\": {\"action\": \"reopen-menu\", \"path\": [\"root\", \"tools\"], \"context\": 1}, \"passed\": true}, {\"check\": \"owner-edge contract\", \"actual\": \"owner\", \"expected\": \"owner\", \"passed\": true}, {\"check\": \"label contract\", \"actual\": \"Item\", \"expected\": \"Item\", \"passed\": true}, {\"check\": \"omitted-menu-levels contract\", \"actual\": [[\"root\", \"a\"], [\"root\", \"a\", \"b\"]], \"expected\": [[\"root\", \"a\"], [\"root\", \"a\", \"b\"]], \"passed\": true}, {\"check\": \"duplicate-label contract\", \"actual\": [\"Same\"], \"expected\": [1, 2], \"passed\": false}, {\"check\": \"jump contract\", \"actual\": [\"r\", \"a\"], \"expected\": [\"r\", \"a\"], \"passed\": true}, {\"check\": \"unknown operation\", \"actual\": {\"error\": \"unsupported menu operation\"}, \"expected\": {\"error\": \"unsupported menu operation\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.847,"exit_code":0,"observations":[{"actual":{"action":"reopen-menu","context":1,"path":["root","tools"]},"check":"reopen-action contract","expected":{"action":"reopen-menu","context":1,"path":["root","tools"]},"passed":true},{"actual":"owner","check":"owner-edge contract","expected":"owner","passed":true},{"actual":"Item","check":"label contract","expected":"Item","passed":true},{"actual":[["root","a"],["root","a","b"]],"check":"omitted-menu-levels contract","expected":[["root","a"],["root","a","b"]],"passed":true},{"actual":[1,2],"check":"duplicate-label contract","expected":[1,2],"passed":true},{"actual":["r","a"],"check":"jump contract","expected":["r","a"],"passed":true},{"actual":{"error":"unsupported menu operation"},"check":"unknown operation","expected":{"error":"unsupported menu operation"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"reopen-action contract\", \"actual\": {\"action\": \"reopen-menu\", \"path\": [\"root\", \"tools\"], \"context\": 1}, \"expected\": {\"action\": \"reopen-menu\", \"path\": [\"root\", \"tools\"], \"context\": 1}, \"passed\": true}, {\"check\": \"owner-edge contract\", \"actual\": \"owner\", \"expected\": \"owner\", \"passed\": true}, {\"check\": \"label contract\", \"actual\": \"Item\", \"expected\": \"Item\", \"passed\": true}, {\"check\": \"omitted-menu-levels contract\", \"actual\": [[\"root\", \"a\"], [\"root\", \"a\", \"b\"]], \"expected\": [[\"root\", \"a\"], [\"root\", \"a\", \"b\"]], \"passed\": true}, {\"check\": \"duplicate-label contract\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"jump contract\", \"actual\": [\"r\", \"a\"], \"expected\": [\"r\", \"a\"], \"passed\": true}, {\"check\": \"unknown operation\", \"actual\": {\"error\": \"unsupported menu operation\"}, \"expected\": {\"error\": \"unsupported menu operation\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}