FAILURE MAP
← Case archive

FA-32526 / Menu interactions / Open access

Contribution priority is ordered by label instead of rank · case 01

Contribution priority is ordered by label instead of rank.

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

ROOT CAUSE

The contributor-merge model applies `sorted(p,key=lambda x:x['rank'],reverse=True)` at its rank operation instead of the stipulated transformation.

VERIFIED REPAIR

Apply `sorted(p,key=lambda x:x['rank'])` at rank.

Unsuccessful approach: The attempted repair `sorted(p,key=lambda x:x['id'])` still violates the rank oracle.

Case contract

Contributed menu commands are namespaced, rank-stable, and replaceable only by their provider; removals retain unrelated content.

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 == 'namespace':
        return p['provider']+':'+p['id']
    if action == 'rank':
        return sorted(p,key=lambda x:x['rank'],reverse=True)
    if action == 'unload':
        return [x for x in p['rows'] if x['provider']!=p['provider']]
    if action == 'replace':
        return [p['new'] if x['provider']==p['new']['provider'] and x['id']==p['new']['id'] else x for x in p['rows']]
    if action == 'disabled-provider':
        return [x for x in p['rows'] if x['provider'] not in p['disabled']]
    if action == 'revision-owner':
        return p['revision'].get(p['provider'],0)
    return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('namespace contract', solve('namespace', {'provider':'ext'+str(N),'id':'open'}), 'ext'+str(N)+':open')
check('rank contract', solve('rank', [{'id':'z','rank':N},{'id':'a','rank':N+1}]), [{'id':'z','rank':N},{'id':'a','rank':N+1}])
check('unload contract', solve('unload', {'rows':[{'provider':'a','id':N},{'provider':'b','id':N+1}],'provider':'a'}), [{'provider':'b','id':N+1}])
check('replace contract', solve('replace', {'rows':[{'provider':'a','id':N,'v':0},{'provider':'b','id':N,'v':0}],'new':{'provider':'b','id':N,'v':1}}), [{'provider':'a','id':N,'v':0},{'provider':'b','id':N,'v':1}])
check('disabled-provider contract', solve('disabled-provider', {'rows':[{'provider':'off','id':N},{'provider':'on','id':N+1}],'disabled':['off']}), [{'provider':'on','id':N+1}])
check('revision-owner contract', solve('revision-owner', {'provider':'a','revision':{'a':N,'b':N+10}}), N)
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
namespace contractext1:openext1:openPassed
rank contract[{'id': 'a', 'rank': 2}, {'id': 'z', 'rank': 1}][{'id': 'z', 'rank': 1}, {'id': 'a', 'rank': 2}]Failed
unload contract[{'id': 2, 'provider': 'b'}][{'id': 2, 'provider': 'b'}]Passed
replace contract[{'id': 1, 'provider': 'a', 'v': 0}, {'id': 1, 'provider': 'b', 'v': 1}][{'id': 1, 'provider': 'a', 'v': 0}, {'id': 1, 'provider': 'b', 'v': 1}]Passed
disabled-provider contract[{'id': 2, 'provider': 'on'}][{'id': 2, 'provider': 'on'}]Passed
revision-owner contract11Passed
unknown operation{'error': 'unsupported menu operation'}{'error': 'unsupported menu operation'}Passed

SHA-256 / 717ca384e2e05526f38d5f59cab7da15ba91ed0c10a0ff73fb427dc18f073b17

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 == 'namespace':
        return p['provider']+':'+p['id']
    if action == 'rank':
        return sorted(p,key=lambda x:x['id'])
    if action == 'unload':
        return [x for x in p['rows'] if x['provider']!=p['provider']]
    if action == 'replace':
        return [p['new'] if x['provider']==p['new']['provider'] and x['id']==p['new']['id'] else x for x in p['rows']]
    if action == 'disabled-provider':
        return [x for x in p['rows'] if x['provider'] not in p['disabled']]
    if action == 'revision-owner':
        return p['revision'].get(p['provider'],0)
    return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('namespace contract', solve('namespace', {'provider':'ext'+str(N),'id':'open'}), 'ext'+str(N)+':open')
check('rank contract', solve('rank', [{'id':'z','rank':N},{'id':'a','rank':N+1}]), [{'id':'z','rank':N},{'id':'a','rank':N+1}])
check('unload contract', solve('unload', {'rows':[{'provider':'a','id':N},{'provider':'b','id':N+1}],'provider':'a'}), [{'provider':'b','id':N+1}])
check('replace contract', solve('replace', {'rows':[{'provider':'a','id':N,'v':0},{'provider':'b','id':N,'v':0}],'new':{'provider':'b','id':N,'v':1}}), [{'provider':'a','id':N,'v':0},{'provider':'b','id':N,'v':1}])
check('disabled-provider contract', solve('disabled-provider', {'rows':[{'provider':'off','id':N},{'provider':'on','id':N+1}],'disabled':['off']}), [{'provider':'on','id':N+1}])
check('revision-owner contract', solve('revision-owner', {'provider':'a','revision':{'a':N,'b':N+10}}), N)
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
namespace contractext1:openext1:openPassed
rank contract[{'id': 'a', 'rank': 2}, {'id': 'z', 'rank': 1}][{'id': 'z', 'rank': 1}, {'id': 'a', 'rank': 2}]Failed
unload contract[{'id': 2, 'provider': 'b'}][{'id': 2, 'provider': 'b'}]Passed
replace contract[{'id': 1, 'provider': 'a', 'v': 0}, {'id': 1, 'provider': 'b', 'v': 1}][{'id': 1, 'provider': 'a', 'v': 0}, {'id': 1, 'provider': 'b', 'v': 1}]Passed
disabled-provider contract[{'id': 2, 'provider': 'on'}][{'id': 2, 'provider': 'on'}]Passed
revision-owner contract11Passed
unknown operation{'error': 'unsupported menu operation'}{'error': 'unsupported menu operation'}Passed

SHA-256 / 86c7fb0787c6ac4927066a40b58df4770453c0a2d64e1106e8717140b9d422b7

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 == 'namespace':
        return p['provider']+':'+p['id']
    if action == 'rank':
        return sorted(p,key=lambda x:x['rank'])
    if action == 'unload':
        return [x for x in p['rows'] if x['provider']!=p['provider']]
    if action == 'replace':
        return [p['new'] if x['provider']==p['new']['provider'] and x['id']==p['new']['id'] else x for x in p['rows']]
    if action == 'disabled-provider':
        return [x for x in p['rows'] if x['provider'] not in p['disabled']]
    if action == 'revision-owner':
        return p['revision'].get(p['provider'],0)
    return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('namespace contract', solve('namespace', {'provider':'ext'+str(N),'id':'open'}), 'ext'+str(N)+':open')
check('rank contract', solve('rank', [{'id':'z','rank':N},{'id':'a','rank':N+1}]), [{'id':'z','rank':N},{'id':'a','rank':N+1}])
check('unload contract', solve('unload', {'rows':[{'provider':'a','id':N},{'provider':'b','id':N+1}],'provider':'a'}), [{'provider':'b','id':N+1}])
check('replace contract', solve('replace', {'rows':[{'provider':'a','id':N,'v':0},{'provider':'b','id':N,'v':0}],'new':{'provider':'b','id':N,'v':1}}), [{'provider':'a','id':N,'v':0},{'provider':'b','id':N,'v':1}])
check('disabled-provider contract', solve('disabled-provider', {'rows':[{'provider':'off','id':N},{'provider':'on','id':N+1}],'disabled':['off']}), [{'provider':'on','id':N+1}])
check('revision-owner contract', solve('revision-owner', {'provider':'a','revision':{'a':N,'b':N+10}}), N)
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
namespace contractext1:openext1:openPassed
rank contract[{'id': 'z', 'rank': 1}, {'id': 'a', 'rank': 2}][{'id': 'z', 'rank': 1}, {'id': 'a', 'rank': 2}]Passed
unload contract[{'id': 2, 'provider': 'b'}][{'id': 2, 'provider': 'b'}]Passed
replace contract[{'id': 1, 'provider': 'a', 'v': 0}, {'id': 1, 'provider': 'b', 'v': 1}][{'id': 1, 'provider': 'a', 'v': 0}, {'id': 1, 'provider': 'b', 'v': 1}]Passed
disabled-provider contract[{'id': 2, 'provider': 'on'}][{'id': 2, 'provider': 'on'}]Passed
revision-owner contract11Passed
unknown operation{'error': 'unsupported menu operation'}{'error': 'unsupported menu operation'}Passed

SHA-256 / 84e36f3efd0f4e52e8bb14088bace565ea69dec4949863c08758c8a21ef5fb79

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

Case digest / a5720e61b9ccac7b307d0cdcb2ead76ed86487df1f9a8a0e7d2472d83e9ce1c5