FAILURE MAP
← Case archive

FA-33521 / Menu interactions / Open access

Batch menu plan conflates no-op targets with runnable targets · case 01

Batch menu plan conflates no-op targets with runnable targets.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The batch-menu-planning model applies `{'run':[x['id'] for x in p],'noop':[]}` at its noop-split operation instead of the stipulated transformation.

VERIFIED REPAIR

Apply `{'run':[x['id'] for x in p if x['change']], 'noop':[x['id'] for x in p if not x['change']]}` at noop-split.

Unsuccessful approach: The attempted repair `{'run':[],'noop':[x['id'] for x in p]}` still violates the noop-split 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.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],'noop':[]}
    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 fixtureActualExpectedOutcome
intersection contract['open']['open']Passed
eligible-order contract[3, 1][3, 1]Passed
noop-split contract{'noop': [], 'run': [1, 2]}{'noop': [1], 'run': [2]}Failed
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 / d6112f5e5d38009fbf5bb656a069fd3a18a03bf4c4e54158529f767edfa45733

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 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':[],'noop':[x['id'] for x in p]}
    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 fixtureActualExpectedOutcome
intersection contract['open']['open']Passed
eligible-order contract[3, 1][3, 1]Passed
noop-split contract{'noop': [1, 2], 'run': []}{'noop': [1], 'run': [2]}Failed
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 / f72e6c1ae234ae41b0cabbabc809c1daf40903e4546bc27e80a34536f1509f46

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 fixtureActualExpectedOutcome
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.145330+00:00.

Case digest / c4e19851ab1135c85a10190ba53037f2e35d4e2a0ac01f7ac1cf6fe3c5270ac7