{"abstract":"Batch context menu executes duplicate document targets.","category":"Menu interactions","checks":7,"contract":"A batch context menu plans command work per document capability, preserves document order and separates unsupported, no-op and runnable targets.","evaluation_group":"s3-menu-interactions-batch-menu-planning","failed_approach":"The attempted repair `sorted(set(p))` still violates the duplicate-doc oracle.","family":"s3-menu-interactions-batch-menu-planning-duplicate-doc","id":"FA-33526","implementations":{"attempt":{"sha256":"e6c65469cd8ae578f758bc378e2f3eca9368b0e8230425416ef7dd41ccd9bce0","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 == 'intersection':\n        return sorted(set.intersection(*(set(x) for x in p))) if p else []\n    if action == 'eligible-order':\n        return [x['id'] for x in p if x['eligible']]\n    if action == 'noop-split':\n        return {'run':[x['id'] for x in p if x['change']], 'noop':[x['id'] for x in p if not x['change']]}\n    if action == 'duplicate-doc':\n        return sorted(set(p))\n    if action == 'partial-policy':\n        return p['supported'] if p['allow_partial'] else (p['supported'] if not p['unsupported'] else [])\n    if action == 'summary':\n        return {'requested':len(p['requested']),'runnable':len(p['runnable'])}\n    return {'error': 'unsupported menu operation'}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('intersection contract', solve('intersection', [['open','edit'+str(N)],['open','print']]), ['open'])\ncheck('eligible-order contract', solve('eligible-order', [{'id':N+2,'eligible':True},{'id':N,'eligible':True},{'id':N+1,'eligible':False}]), [N+2,N])\ncheck('noop-split contract', solve('noop-split', [{'id':N,'change':False},{'id':N+1,'change':True}]), {'run':[N+1],'noop':[N]})\ncheck('duplicate-doc contract', solve('duplicate-doc', [N+1,N,N+1]), [N+1,N])\ncheck('partial-policy contract', solve('partial-policy', {'supported':[N],'unsupported':[N+1],'allow_partial':False}), [])\ncheck('summary contract', solve('summary', {'requested':list(range(N+2)),'runnable':[0]}), {'requested':N+2,'runnable':1})\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":"3a39011379ba9c1aa6c549127c65a86957fa6f3e7f746180dd7ab76f67f831f6","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 == 'intersection':\n        return sorted(set.intersection(*(set(x) for x in p))) if p else []\n    if action == 'eligible-order':\n        return [x['id'] for x in p if x['eligible']]\n    if action == 'noop-split':\n        return {'run':[x['id'] for x in p if x['change']], 'noop':[x['id'] for x in p if not x['change']]}\n    if action == 'duplicate-doc':\n        return p\n    if action == 'partial-policy':\n        return p['supported'] if p['allow_partial'] else (p['supported'] if not p['unsupported'] else [])\n    if action == 'summary':\n        return {'requested':len(p['requested']),'runnable':len(p['runnable'])}\n    return {'error': 'unsupported menu operation'}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('intersection contract', solve('intersection', [['open','edit'+str(N)],['open','print']]), ['open'])\ncheck('eligible-order contract', solve('eligible-order', [{'id':N+2,'eligible':True},{'id':N,'eligible':True},{'id':N+1,'eligible':False}]), [N+2,N])\ncheck('noop-split contract', solve('noop-split', [{'id':N,'change':False},{'id':N+1,'change':True}]), {'run':[N+1],'noop':[N]})\ncheck('duplicate-doc contract', solve('duplicate-doc', [N+1,N,N+1]), [N+1,N])\ncheck('partial-policy contract', solve('partial-policy', {'supported':[N],'unsupported':[N+1],'allow_partial':False}), [])\ncheck('summary contract', solve('summary', {'requested':list(range(N+2)),'runnable':[0]}), {'requested':N+2,'runnable':1})\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":"6414d5c0c8b294f3e580b4ed1a15c6bc5e45b7fc82e97e34f0d748080e461442","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 == 'intersection':\n        return sorted(set.intersection(*(set(x) for x in p))) if p else []\n    if action == 'eligible-order':\n        return [x['id'] for x in p if x['eligible']]\n    if action == 'noop-split':\n        return {'run':[x['id'] for x in p if x['change']], 'noop':[x['id'] for x in p if not x['change']]}\n    if action == 'duplicate-doc':\n        return list(dict.fromkeys(p))\n    if action == 'partial-policy':\n        return p['supported'] if p['allow_partial'] else (p['supported'] if not p['unsupported'] else [])\n    if action == 'summary':\n        return {'requested':len(p['requested']),'runnable':len(p['runnable'])}\n    return {'error': 'unsupported menu operation'}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('intersection contract', solve('intersection', [['open','edit'+str(N)],['open','print']]), ['open'])\ncheck('eligible-order contract', solve('eligible-order', [{'id':N+2,'eligible':True},{'id':N,'eligible':True},{'id':N+1,'eligible':False}]), [N+2,N])\ncheck('noop-split contract', solve('noop-split', [{'id':N,'change':False},{'id':N+1,'change':True}]), {'run':[N+1],'noop':[N]})\ncheck('duplicate-doc contract', solve('duplicate-doc', [N+1,N,N+1]), [N+1,N])\ncheck('partial-policy contract', solve('partial-policy', {'supported':[N],'unsupported':[N+1],'allow_partial':False}), [])\ncheck('summary contract', solve('summary', {'requested':list(range(N+2)),'runnable':[0]}), {'requested':N+2,'runnable':1})\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-batch-menu-planning-duplicate-doc","generated_at":"2026-09-29T14:42:23.263070+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 `list(dict.fromkeys(p))` at duplicate-doc.","root_cause":"The batch-menu-planning model applies `p` at its duplicate-doc operation instead of the stipulated transformation.","sha256":"6fbdf77dd47e5e305d2252c943649632fbdfd2d63e6a0490aaa522edaa6ace86","title":"Batch context menu executes duplicate document targets · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.813,"exit_code":1,"observations":[{"actual":["open"],"check":"intersection contract","expected":["open"],"passed":true},{"actual":[3,1],"check":"eligible-order contract","expected":[3,1],"passed":true},{"actual":{"noop":[1],"run":[2]},"check":"noop-split contract","expected":{"noop":[1],"run":[2]},"passed":true},{"actual":[1,2],"check":"duplicate-doc contract","expected":[2,1],"passed":false},{"actual":[],"check":"partial-policy contract","expected":[],"passed":true},{"actual":{"requested":3,"runnable":1},"check":"summary contract","expected":{"requested":3,"runnable":1},"passed":true},{"actual":{"error":"unsupported menu operation"},"check":"unknown operation","expected":{"error":"unsupported menu operation"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"intersection contract\", \"actual\": [\"open\"], \"expected\": [\"open\"], \"passed\": true}, {\"check\": \"eligible-order contract\", \"actual\": [3, 1], \"expected\": [3, 1], \"passed\": true}, {\"check\": \"noop-split contract\", \"actual\": {\"run\": [2], \"noop\": [1]}, \"expected\": {\"run\": [2], \"noop\": [1]}, \"passed\": true}, {\"check\": \"duplicate-doc contract\", \"actual\": [1, 2], \"expected\": [2, 1], \"passed\": false}, {\"check\": \"partial-policy contract\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"summary contract\", \"actual\": {\"requested\": 3, \"runnable\": 1}, \"expected\": {\"requested\": 3, \"runnable\": 1}, \"passed\": true}, {\"check\": \"unknown operation\", \"actual\": {\"error\": \"unsupported menu operation\"}, \"expected\": {\"error\": \"unsupported menu operation\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.651,"exit_code":1,"observations":[{"actual":["open"],"check":"intersection contract","expected":["open"],"passed":true},{"actual":[3,1],"check":"eligible-order contract","expected":[3,1],"passed":true},{"actual":{"noop":[1],"run":[2]},"check":"noop-split contract","expected":{"noop":[1],"run":[2]},"passed":true},{"actual":[2,1,2],"check":"duplicate-doc contract","expected":[2,1],"passed":false},{"actual":[],"check":"partial-policy contract","expected":[],"passed":true},{"actual":{"requested":3,"runnable":1},"check":"summary contract","expected":{"requested":3,"runnable":1},"passed":true},{"actual":{"error":"unsupported menu operation"},"check":"unknown operation","expected":{"error":"unsupported menu operation"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"intersection contract\", \"actual\": [\"open\"], \"expected\": [\"open\"], \"passed\": true}, {\"check\": \"eligible-order contract\", \"actual\": [3, 1], \"expected\": [3, 1], \"passed\": true}, {\"check\": \"noop-split contract\", \"actual\": {\"run\": [2], \"noop\": [1]}, \"expected\": {\"run\": [2], \"noop\": [1]}, \"passed\": true}, {\"check\": \"duplicate-doc contract\", \"actual\": [2, 1, 2], \"expected\": [2, 1], \"passed\": false}, {\"check\": \"partial-policy contract\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"summary contract\", \"actual\": {\"requested\": 3, \"runnable\": 1}, \"expected\": {\"requested\": 3, \"runnable\": 1}, \"passed\": true}, {\"check\": \"unknown operation\", \"actual\": {\"error\": \"unsupported menu operation\"}, \"expected\": {\"error\": \"unsupported menu operation\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.749,"exit_code":0,"observations":[{"actual":["open"],"check":"intersection contract","expected":["open"],"passed":true},{"actual":[3,1],"check":"eligible-order contract","expected":[3,1],"passed":true},{"actual":{"noop":[1],"run":[2]},"check":"noop-split contract","expected":{"noop":[1],"run":[2]},"passed":true},{"actual":[2,1],"check":"duplicate-doc contract","expected":[2,1],"passed":true},{"actual":[],"check":"partial-policy contract","expected":[],"passed":true},{"actual":{"requested":3,"runnable":1},"check":"summary contract","expected":{"requested":3,"runnable":1},"passed":true},{"actual":{"error":"unsupported menu operation"},"check":"unknown operation","expected":{"error":"unsupported menu operation"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"intersection contract\", \"actual\": [\"open\"], \"expected\": [\"open\"], \"passed\": true}, {\"check\": \"eligible-order contract\", \"actual\": [3, 1], \"expected\": [3, 1], \"passed\": true}, {\"check\": \"noop-split contract\", \"actual\": {\"run\": [2], \"noop\": [1]}, \"expected\": {\"run\": [2], \"noop\": [1]}, \"passed\": true}, {\"check\": \"duplicate-doc contract\", \"actual\": [2, 1], \"expected\": [2, 1], \"passed\": true}, {\"check\": \"partial-policy contract\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"summary contract\", \"actual\": {\"requested\": 3, \"runnable\": 1}, \"expected\": {\"requested\": 3, \"runnable\": 1}, \"passed\": true}, {\"check\": \"unknown operation\", \"actual\": {\"error\": \"unsupported menu operation\"}, \"expected\": {\"error\": \"unsupported menu operation\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}