FAILURE MAP
← Case archive

FA-33526 / Menu interactions / Open access

Batch context menu executes duplicate document targets · case 01

Batch context menu executes duplicate document targets.

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

ROOT CAUSE

The batch-menu-planning model applies `p` at its duplicate-doc operation instead of the stipulated transformation.

VERIFIED REPAIR

Apply `list(dict.fromkeys(p))` at duplicate-doc.

Unsuccessful approach: The attempted repair `sorted(set(p))` still violates the duplicate-doc 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 if x['change']], 'noop':[x['id'] for x in p if not x['change']]}
    if action == 'duplicate-doc':
        return 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][2, 1]Failed
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 / 3a39011379ba9c1aa6c549127c65a86957fa6f3e7f746180dd7ab76f67f831f6

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':[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 sorted(set(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[1, 2][2, 1]Failed
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 / e6c65469cd8ae578f758bc378e2f3eca9368b0e8230425416ef7dd41ccd9bce0

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

Case digest / 6fbdf77dd47e5e305d2252c943649632fbdfd2d63e6a0490aaa522edaa6ace86