FA-33511 / Menu interactions / Open access
Batch menu advertises commands supported by only one target · case 01
Batch menu advertises commands supported by only one target.
ROOT CAUSE
The batch-menu-planning model applies `sorted(set.union(*(set(x) for x in p))) if p else []` at its intersection operation instead of the stipulated transformation.
VERIFIED REPAIR
Apply `sorted(set.intersection(*(set(x) for x in p))) if p else []` at intersection.
Unsuccessful approach: The attempted repair `p[0] if p else []` still violates the intersection oracle.
Case contract
A batch context menu plans command work per document capability, preserves document order and separates unsupported, no-op and runnable targets.
Why this case matters
Cascading and context menus require coherent command and session state as content changes.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
import unicodedata
N = 1
observations = []
def solve(action, p):
if action == 'intersection':
return sorted(set.union(*(set(x) for x in p))) if p else []
if action == 'eligible-order':
return [x['id'] for x in p if x['eligible']]
if action == 'noop-split':
return {'run':[x['id'] for x in p if x['change']], 'noop':[x['id'] for x in p if not x['change']]}
if action == 'duplicate-doc':
return list(dict.fromkeys(p))
if action == 'partial-policy':
return p['supported'] if p['allow_partial'] else (p['supported'] if not p['unsupported'] else [])
if action == 'summary':
return {'requested':len(p['requested']),'runnable':len(p['runnable'])}
return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('intersection contract', solve('intersection', [['open','edit'+str(N)],['open','print']]), ['open'])
check('eligible-order contract', solve('eligible-order', [{'id':N+2,'eligible':True},{'id':N,'eligible':True},{'id':N+1,'eligible':False}]), [N+2,N])
check('noop-split contract', solve('noop-split', [{'id':N,'change':False},{'id':N+1,'change':True}]), {'run':[N+1],'noop':[N]})
check('duplicate-doc contract', solve('duplicate-doc', [N+1,N,N+1]), [N+1,N])
check('partial-policy contract', solve('partial-policy', {'supported':[N],'unsupported':[N+1],'allow_partial':False}), [])
check('summary contract', solve('summary', {'requested':list(range(N+2)),'runnable':[0]}), {'requested':N+2,'runnable':1})
check('unknown operation', solve('unknown', {}), {'error': 'unsupported menu operation'})
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| intersection contract | ['edit1', 'open', 'print'] | ['open'] | Failed |
| eligible-order contract | [3, 1] | [3, 1] | Passed |
| noop-split contract | {'noop': [1], 'run': [2]} | {'noop': [1], 'run': [2]} | Passed |
| duplicate-doc contract | [2, 1] | [2, 1] | Passed |
| partial-policy contract | [] | [] | Passed |
| summary contract | {'requested': 3, 'runnable': 1} | {'requested': 3, 'runnable': 1} | Passed |
| unknown operation | {'error': 'unsupported menu operation'} | {'error': 'unsupported menu operation'} | Passed |
SHA-256 / 3dabe844f0fa4626ca75e51829d60288534d47ce9b7f63486ff5c204574a523f
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
import unicodedata
N = 1
observations = []
def solve(action, p):
if action == 'intersection':
return p[0] if p else []
if action == 'eligible-order':
return [x['id'] for x in p if x['eligible']]
if action == 'noop-split':
return {'run':[x['id'] for x in p if x['change']], 'noop':[x['id'] for x in p if not x['change']]}
if action == 'duplicate-doc':
return list(dict.fromkeys(p))
if action == 'partial-policy':
return p['supported'] if p['allow_partial'] else (p['supported'] if not p['unsupported'] else [])
if action == 'summary':
return {'requested':len(p['requested']),'runnable':len(p['runnable'])}
return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('intersection contract', solve('intersection', [['open','edit'+str(N)],['open','print']]), ['open'])
check('eligible-order contract', solve('eligible-order', [{'id':N+2,'eligible':True},{'id':N,'eligible':True},{'id':N+1,'eligible':False}]), [N+2,N])
check('noop-split contract', solve('noop-split', [{'id':N,'change':False},{'id':N+1,'change':True}]), {'run':[N+1],'noop':[N]})
check('duplicate-doc contract', solve('duplicate-doc', [N+1,N,N+1]), [N+1,N])
check('partial-policy contract', solve('partial-policy', {'supported':[N],'unsupported':[N+1],'allow_partial':False}), [])
check('summary contract', solve('summary', {'requested':list(range(N+2)),'runnable':[0]}), {'requested':N+2,'runnable':1})
check('unknown operation', solve('unknown', {}), {'error': 'unsupported menu operation'})
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| intersection contract | ['open', 'edit1'] | ['open'] | Failed |
| eligible-order contract | [3, 1] | [3, 1] | Passed |
| noop-split contract | {'noop': [1], 'run': [2]} | {'noop': [1], 'run': [2]} | Passed |
| duplicate-doc contract | [2, 1] | [2, 1] | Passed |
| partial-policy contract | [] | [] | Passed |
| summary contract | {'requested': 3, 'runnable': 1} | {'requested': 3, 'runnable': 1} | Passed |
| unknown operation | {'error': 'unsupported menu operation'} | {'error': 'unsupported menu operation'} | Passed |
SHA-256 / dc3a1f150bd9c2dbec2c33ce901e4e68fbcd748f7e1c595f109082792020fdbd
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import math
import unicodedata
N = 1
observations = []
def solve(action, p):
if action == 'intersection':
return sorted(set.intersection(*(set(x) for x in p))) if p else []
if action == 'eligible-order':
return [x['id'] for x in p if x['eligible']]
if action == 'noop-split':
return {'run':[x['id'] for x in p if x['change']], 'noop':[x['id'] for x in p if not x['change']]}
if action == 'duplicate-doc':
return list(dict.fromkeys(p))
if action == 'partial-policy':
return p['supported'] if p['allow_partial'] else (p['supported'] if not p['unsupported'] else [])
if action == 'summary':
return {'requested':len(p['requested']),'runnable':len(p['runnable'])}
return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('intersection contract', solve('intersection', [['open','edit'+str(N)],['open','print']]), ['open'])
check('eligible-order contract', solve('eligible-order', [{'id':N+2,'eligible':True},{'id':N,'eligible':True},{'id':N+1,'eligible':False}]), [N+2,N])
check('noop-split contract', solve('noop-split', [{'id':N,'change':False},{'id':N+1,'change':True}]), {'run':[N+1],'noop':[N]})
check('duplicate-doc contract', solve('duplicate-doc', [N+1,N,N+1]), [N+1,N])
check('partial-policy contract', solve('partial-policy', {'supported':[N],'unsupported':[N+1],'allow_partial':False}), [])
check('summary contract', solve('summary', {'requested':list(range(N+2)),'runnable':[0]}), {'requested':N+2,'runnable':1})
check('unknown operation', solve('unknown', {}), {'error': 'unsupported menu operation'})
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| intersection contract | ['open'] | ['open'] | Passed |
| eligible-order contract | [3, 1] | [3, 1] | Passed |
| noop-split contract | {'noop': [1], 'run': [2]} | {'noop': [1], 'run': [2]} | Passed |
| duplicate-doc contract | [2, 1] | [2, 1] | Passed |
| partial-policy contract | [] | [] | Passed |
| summary contract | {'requested': 3, 'runnable': 1} | {'requested': 3, 'runnable': 1} | Passed |
| unknown operation | {'error': 'unsupported menu operation'} | {'error': 'unsupported menu operation'} | Passed |
SHA-256 / 6414d5c0c8b294f3e580b4ed1a15c6bc5e45b7fc82e97e34f0d748080e461442
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:42:23.083930+00:00.
Case digest / 48abca4cd7f28d23736262707fc75150c841469c3f3e44360f3d3fde47e34625