FA-33826 / Menu interactions / Open access
Menu dwell duration is reported as an absolute closing timestamp · case 01
Menu dwell duration is reported as an absolute closing timestamp.
ROOT CAUSE
The menu-usage-accounting model applies `p['closed']` at its duration operation instead of the stipulated transformation.
VERIFIED REPAIR
Apply `max(0,p['closed']-p['opened'])` at duration.
Unsuccessful approach: The attempted repair `p['opened']-p['closed']` still violates the duration oracle.
Case contract
Menu metrics distinguish impressions, command invocation and completed execution; root sessions and menu paths remain separate dimensions and sensitive arguments are excluded.
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 == 'impression-once':
return len(set(p))
if action == 'invoked-vs-success':
return {'invoked':len(p),'succeeded':sum(x['success'] for x in p)}
if action == 'path-dimension':
return '/'.join(p['path'])
if action == 'duration':
return p['closed']
if action == 'arguments':
return {k:v for k,v in p.items() if k in ('command','path','outcome')}
if action == 'session-count':
return len({x['root_session'] for x in p})
return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('impression-once contract', solve('impression-once', [N,N,N+1]), 2)
check('invoked-vs-success contract', solve('invoked-vs-success', [{'success':True,'id':N},{'success':False,'id':N+1}]), {'invoked':2,'succeeded':1})
check('path-dimension contract', solve('path-dimension', {'path':['root','tools',str(N)]}), 'root/tools/'+str(N))
check('duration contract', solve('duration', {'opened':N,'closed':N+7}), 7)
check('arguments contract', solve('arguments', {'command':'copy','path':['root'], 'arguments':{'doc':N},'target':'doc'}), {'command':'copy','path':['root']})
check('session-count contract', solve('session-count', [{'root_session':N,'surface':'a'},{'root_session':N,'surface':'b'}]), 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 |
|---|---|---|---|
| impression-once contract | 2 | 2 | Passed |
| invoked-vs-success contract | {'invoked': 2, 'succeeded': 1} | {'invoked': 2, 'succeeded': 1} | Passed |
| path-dimension contract | root/tools/1 | root/tools/1 | Passed |
| duration contract | 8 | 7 | Failed |
| arguments contract | {'command': 'copy', 'path': ['root']} | {'command': 'copy', 'path': ['root']} | Passed |
| session-count contract | 1 | 1 | Passed |
| unknown operation | {'error': 'unsupported menu operation'} | {'error': 'unsupported menu operation'} | Passed |
SHA-256 / 5bada19d0143bdfe0beb0ea822ffda997a046a42c67d7cf03444c235d8fd9016
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 == 'impression-once':
return len(set(p))
if action == 'invoked-vs-success':
return {'invoked':len(p),'succeeded':sum(x['success'] for x in p)}
if action == 'path-dimension':
return '/'.join(p['path'])
if action == 'duration':
return p['opened']-p['closed']
if action == 'arguments':
return {k:v for k,v in p.items() if k in ('command','path','outcome')}
if action == 'session-count':
return len({x['root_session'] for x in p})
return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('impression-once contract', solve('impression-once', [N,N,N+1]), 2)
check('invoked-vs-success contract', solve('invoked-vs-success', [{'success':True,'id':N},{'success':False,'id':N+1}]), {'invoked':2,'succeeded':1})
check('path-dimension contract', solve('path-dimension', {'path':['root','tools',str(N)]}), 'root/tools/'+str(N))
check('duration contract', solve('duration', {'opened':N,'closed':N+7}), 7)
check('arguments contract', solve('arguments', {'command':'copy','path':['root'], 'arguments':{'doc':N},'target':'doc'}), {'command':'copy','path':['root']})
check('session-count contract', solve('session-count', [{'root_session':N,'surface':'a'},{'root_session':N,'surface':'b'}]), 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 |
|---|---|---|---|
| impression-once contract | 2 | 2 | Passed |
| invoked-vs-success contract | {'invoked': 2, 'succeeded': 1} | {'invoked': 2, 'succeeded': 1} | Passed |
| path-dimension contract | root/tools/1 | root/tools/1 | Passed |
| duration contract | -7 | 7 | Failed |
| arguments contract | {'command': 'copy', 'path': ['root']} | {'command': 'copy', 'path': ['root']} | Passed |
| session-count contract | 1 | 1 | Passed |
| unknown operation | {'error': 'unsupported menu operation'} | {'error': 'unsupported menu operation'} | Passed |
SHA-256 / 55dd9a54e266e1688fa7641062f956e72d3f01bae3d50939f13af02b513d24c4
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 == 'impression-once':
return len(set(p))
if action == 'invoked-vs-success':
return {'invoked':len(p),'succeeded':sum(x['success'] for x in p)}
if action == 'path-dimension':
return '/'.join(p['path'])
if action == 'duration':
return max(0,p['closed']-p['opened'])
if action == 'arguments':
return {k:v for k,v in p.items() if k in ('command','path','outcome')}
if action == 'session-count':
return len({x['root_session'] for x in p})
return {'error': 'unsupported menu operation'}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('impression-once contract', solve('impression-once', [N,N,N+1]), 2)
check('invoked-vs-success contract', solve('invoked-vs-success', [{'success':True,'id':N},{'success':False,'id':N+1}]), {'invoked':2,'succeeded':1})
check('path-dimension contract', solve('path-dimension', {'path':['root','tools',str(N)]}), 'root/tools/'+str(N))
check('duration contract', solve('duration', {'opened':N,'closed':N+7}), 7)
check('arguments contract', solve('arguments', {'command':'copy','path':['root'], 'arguments':{'doc':N},'target':'doc'}), {'command':'copy','path':['root']})
check('session-count contract', solve('session-count', [{'root_session':N,'surface':'a'},{'root_session':N,'surface':'b'}]), 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 |
|---|---|---|---|
| impression-once contract | 2 | 2 | Passed |
| invoked-vs-success contract | {'invoked': 2, 'succeeded': 1} | {'invoked': 2, 'succeeded': 1} | Passed |
| path-dimension contract | root/tools/1 | root/tools/1 | Passed |
| duration contract | 7 | 7 | Passed |
| arguments contract | {'command': 'copy', 'path': ['root']} | {'command': 'copy', 'path': ['root']} | Passed |
| session-count contract | 1 | 1 | Passed |
| unknown operation | {'error': 'unsupported menu operation'} | {'error': 'unsupported menu operation'} | Passed |
SHA-256 / 9c8cf90dd34ceb0f3936d85560f26e6e6cf877458712086a3dc4e61a946bb31f
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:26.079014+00:00.
Case digest / dc54ea6285df8e2a4894403b515c8253d923395c3bbaeaefa8535b42c8ec3a6e