FAILURE MAP
← Case archive

FA-24716 / Client state / Open access

Client preference layer resolution: Workspace lock report · case 01

Workspace lock report.

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

ROOT CAUSE

The workspace-lock-report client decision evaluates `locked+list(session)` instead of `[k for k in locked if k in workspace]`.

VERIFIED REPAIR

Apply the modeled workspace-lock-report rule: `[k for k in locked if k in workspace]`.

Unsuccessful approach: The partial repair `[k for k in locked if k in session]` still violates the explicit fixture contract.

Case contract

Client preferences overlay defaults, device, workspace and session in that order. Workspace locks exclude session writes. Removing an override reveals the lower layer; serialization preserves its own layer and explicit null/falsy values. Operation workspace-lock-report has the six explicit input/output oracles below.

Why this case matters

An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(operation, s):
    defaults, device, workspace, session, locked, removed = s
    if operation == 'layer-precedence':
        return {**defaults,**device,**workspace,**session}
    if operation == 'locked-workspace-values':
        return {**defaults,**device,**workspace,**{k:v for k,v in session.items() if k not in locked}}
    if operation == 'session-only-reset':
        return {**defaults,**device,**workspace}
    if operation == 'device-layer-serialization':
        return dict(device)
    if operation == 'explicit-session-keys':
        return list(session)
    if operation == 'session-key-removal-falls-through':
        return {**defaults,**device,**workspace,**{k:v for k,v in session.items() if k not in removed}}
    if operation == 'writable-preference-projection':
        return {k:v for k,v in session.items() if k not in locked}
    if operation == 'preference-source-attribution':
        return {k:next(layer for layer,values in [('session',session),('workspace',workspace),('device',device),('default',defaults)] if k in values) for k in sorted(set(defaults)|set(device)|set(workspace)|set(session))}
    if operation == 'redundant-device-override-pruning':
        return {k:v for k,v in device.items() if k not in defaults or defaults[k]!=v}
    if operation == 'workspace-lock-report':
        return locked+list(session)
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('layer-precedence scenario 1', solve('layer-precedence', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('layer-precedence scenario 2', solve('layer-precedence', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('layer-precedence scenario 3', solve('layer-precedence', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':4})
check('layer-precedence scenario 4', solve('layer-precedence', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('layer-precedence scenario 5', solve('layer-precedence', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('layer-precedence scenario 6', solve('layer-precedence', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('locked-workspace-values scenario 1', solve('locked-workspace-values', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('locked-workspace-values scenario 2', solve('locked-workspace-values', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('locked-workspace-values scenario 3', solve('locked-workspace-values', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('locked-workspace-values scenario 4', solve('locked-workspace-values', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('locked-workspace-values scenario 5', solve('locked-workspace-values', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('locked-workspace-values scenario 6', solve('locked-workspace-values', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('session-only-reset scenario 1', solve('session-only-reset', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark','size':N})
check('session-only-reset scenario 2', solve('session-only-reset', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('session-only-reset scenario 3', solve('session-only-reset', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('session-only-reset scenario 4', solve('session-only-reset', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('session-only-reset scenario 5', solve('session-only-reset', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'light'})
check('session-only-reset scenario 6', solve('session-only-reset', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':3})
check('device-layer-serialization scenario 1', solve('device-layer-serialization', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark'})
check('device-layer-serialization scenario 2', solve('device-layer-serialization', ({'theme':'light'}, {},{}, {},[],[])), {})
check('device-layer-serialization scenario 3', solve('device-layer-serialization', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':0})
check('device-layer-serialization scenario 4', solve('device-layer-serialization', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('device-layer-serialization scenario 5', solve('device-layer-serialization', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'dark'})
check('device-layer-serialization scenario 6', solve('device-layer-serialization', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':2})
check('explicit-session-keys scenario 1', solve('explicit-session-keys', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), ['theme'])
check('explicit-session-keys scenario 2', solve('explicit-session-keys', ({'theme':'light'}, {},{}, {},[],[])), [])
check('explicit-session-keys scenario 3', solve('explicit-session-keys', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), ['size'])
check('explicit-session-keys scenario 4', solve('explicit-session-keys', ({'theme':'light'},{'theme':None},{},{},[],[])), [])
check('explicit-session-keys scenario 5', solve('explicit-session-keys', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), ['theme'])
check('explicit-session-keys scenario 6', solve('explicit-session-keys', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), ['size'])
check('session-key-removal-falls-through scenario 1', solve('session-key-removal-falls-through', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('session-key-removal-falls-through scenario 2', solve('session-key-removal-falls-through', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('session-key-removal-falls-through scenario 3', solve('session-key-removal-falls-through', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('session-key-removal-falls-through scenario 4', solve('session-key-removal-falls-through', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('session-key-removal-falls-through scenario 5', solve('session-key-removal-falls-through', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'light'})
check('session-key-removal-falls-through scenario 6', solve('session-key-removal-falls-through', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('writable-preference-projection scenario 1', solve('writable-preference-projection', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':''})
check('writable-preference-projection scenario 2', solve('writable-preference-projection', ({'theme':'light'}, {},{}, {},[],[])), {})
check('writable-preference-projection scenario 3', solve('writable-preference-projection', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {})
check('writable-preference-projection scenario 4', solve('writable-preference-projection', ({'theme':'light'},{'theme':None},{},{},[],[])), {})
check('writable-preference-projection scenario 5', solve('writable-preference-projection', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('writable-preference-projection scenario 6', solve('writable-preference-projection', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('preference-source-attribution scenario 1', solve('preference-source-attribution', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'size':'workspace','theme':'session'})
check('preference-source-attribution scenario 2', solve('preference-source-attribution', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'default'})
check('preference-source-attribution scenario 3', solve('preference-source-attribution', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':'session'})
check('preference-source-attribution scenario 4', solve('preference-source-attribution', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':'device'})
check('preference-source-attribution scenario 5', solve('preference-source-attribution', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'session'})
check('preference-source-attribution scenario 6', solve('preference-source-attribution', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':'session'})
check('redundant-device-override-pruning scenario 1', solve('redundant-device-override-pruning', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark'})
check('redundant-device-override-pruning scenario 2', solve('redundant-device-override-pruning', ({'theme':'light'}, {},{}, {},[],[])), {})
check('redundant-device-override-pruning scenario 3', solve('redundant-device-override-pruning', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':0})
check('redundant-device-override-pruning scenario 4', solve('redundant-device-override-pruning', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('redundant-device-override-pruning scenario 5', solve('redundant-device-override-pruning', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'dark'})
check('redundant-device-override-pruning scenario 6', solve('redundant-device-override-pruning', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':2})
check('workspace-lock-report scenario 1', solve('workspace-lock-report', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), ['size'])
check('workspace-lock-report scenario 2', solve('workspace-lock-report', ({'theme':'light'}, {},{}, {},[],[])), [])
check('workspace-lock-report scenario 3', solve('workspace-lock-report', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), ['size'])
check('workspace-lock-report scenario 4', solve('workspace-lock-report', ({'theme':'light'},{'theme':None},{},{},[],[])), [])
check('workspace-lock-report scenario 5', solve('workspace-lock-report', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), [])
check('workspace-lock-report scenario 6', solve('workspace-lock-report', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), [])
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
layer-precedence scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
layer-precedence scenario 2{'theme': 'light'}{'theme': 'light'}Passed
layer-precedence scenario 3{'size': 4}{'size': 4}Passed
layer-precedence scenario 4{'theme': None}{'theme': None}Passed
layer-precedence scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
layer-precedence scenario 6{'size': 0}{'size': 0}Passed
locked-workspace-values scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
locked-workspace-values scenario 2{'theme': 'light'}{'theme': 'light'}Passed
locked-workspace-values scenario 3{'size': 3}{'size': 3}Passed
locked-workspace-values scenario 4{'theme': None}{'theme': None}Passed
locked-workspace-values scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
locked-workspace-values scenario 6{'size': 0}{'size': 0}Passed
session-only-reset scenario 1{'size': 1, 'theme': 'dark'}{'size': 1, 'theme': 'dark'}Passed
session-only-reset scenario 2{'theme': 'light'}{'theme': 'light'}Passed
session-only-reset scenario 3{'size': 3}{'size': 3}Passed
session-only-reset scenario 4{'theme': None}{'theme': None}Passed
session-only-reset scenario 5{'theme': 'light'}{'theme': 'light'}Passed
session-only-reset scenario 6{'size': 3}{'size': 3}Passed
device-layer-serialization scenario 1{'theme': 'dark'}{'theme': 'dark'}Passed
device-layer-serialization scenario 2{}{}Passed
device-layer-serialization scenario 3{'size': 0}{'size': 0}Passed
device-layer-serialization scenario 4{'theme': None}{'theme': None}Passed
device-layer-serialization scenario 5{'theme': 'dark'}{'theme': 'dark'}Passed
device-layer-serialization scenario 6{'size': 2}{'size': 2}Passed
explicit-session-keys scenario 1['theme']['theme']Passed
explicit-session-keys scenario 2[][]Passed
explicit-session-keys scenario 3['size']['size']Passed
explicit-session-keys scenario 4[][]Passed
explicit-session-keys scenario 5['theme']['theme']Passed
explicit-session-keys scenario 6['size']['size']Passed
session-key-removal-falls-through scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
session-key-removal-falls-through scenario 2{'theme': 'light'}{'theme': 'light'}Passed
session-key-removal-falls-through scenario 3{'size': 3}{'size': 3}Passed
session-key-removal-falls-through scenario 4{'theme': None}{'theme': None}Passed
session-key-removal-falls-through scenario 5{'theme': 'light'}{'theme': 'light'}Passed
session-key-removal-falls-through scenario 6{'size': 0}{'size': 0}Passed
writable-preference-projection scenario 1{'theme': ''}{'theme': ''}Passed
writable-preference-projection scenario 2{}{}Passed
writable-preference-projection scenario 3{}{}Passed
writable-preference-projection scenario 4{}{}Passed
writable-preference-projection scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
writable-preference-projection scenario 6{'size': 0}{'size': 0}Passed
preference-source-attribution scenario 1{'size': 'workspace', 'theme': 'session'}{'size': 'workspace', 'theme': 'session'}Passed
preference-source-attribution scenario 2{'theme': 'default'}{'theme': 'default'}Passed
preference-source-attribution scenario 3{'size': 'session'}{'size': 'session'}Passed
preference-source-attribution scenario 4{'theme': 'device'}{'theme': 'device'}Passed
preference-source-attribution scenario 5{'theme': 'session'}{'theme': 'session'}Passed
preference-source-attribution scenario 6{'size': 'session'}{'size': 'session'}Passed
redundant-device-override-pruning scenario 1{'theme': 'dark'}{'theme': 'dark'}Passed
redundant-device-override-pruning scenario 2{}{}Passed
redundant-device-override-pruning scenario 3{'size': 0}{'size': 0}Passed
redundant-device-override-pruning scenario 4{'theme': None}{'theme': None}Passed
redundant-device-override-pruning scenario 5{'theme': 'dark'}{'theme': 'dark'}Passed
redundant-device-override-pruning scenario 6{'size': 2}{'size': 2}Passed
workspace-lock-report scenario 1['size', 'theme']['size']Failed
workspace-lock-report scenario 2[][]Passed
workspace-lock-report scenario 3['size', 'size']['size']Failed
workspace-lock-report scenario 4[][]Passed
workspace-lock-report scenario 5['theme'][]Failed
workspace-lock-report scenario 6['size'][]Failed

SHA-256 / c78a0ad0f81fcd0a961907b249d375993133f0750f5615cf19d3668e9df7e849

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(operation, s):
    defaults, device, workspace, session, locked, removed = s
    if operation == 'layer-precedence':
        return {**defaults,**device,**workspace,**session}
    if operation == 'locked-workspace-values':
        return {**defaults,**device,**workspace,**{k:v for k,v in session.items() if k not in locked}}
    if operation == 'session-only-reset':
        return {**defaults,**device,**workspace}
    if operation == 'device-layer-serialization':
        return dict(device)
    if operation == 'explicit-session-keys':
        return list(session)
    if operation == 'session-key-removal-falls-through':
        return {**defaults,**device,**workspace,**{k:v for k,v in session.items() if k not in removed}}
    if operation == 'writable-preference-projection':
        return {k:v for k,v in session.items() if k not in locked}
    if operation == 'preference-source-attribution':
        return {k:next(layer for layer,values in [('session',session),('workspace',workspace),('device',device),('default',defaults)] if k in values) for k in sorted(set(defaults)|set(device)|set(workspace)|set(session))}
    if operation == 'redundant-device-override-pruning':
        return {k:v for k,v in device.items() if k not in defaults or defaults[k]!=v}
    if operation == 'workspace-lock-report':
        return [k for k in locked if k in session]
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('layer-precedence scenario 1', solve('layer-precedence', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('layer-precedence scenario 2', solve('layer-precedence', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('layer-precedence scenario 3', solve('layer-precedence', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':4})
check('layer-precedence scenario 4', solve('layer-precedence', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('layer-precedence scenario 5', solve('layer-precedence', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('layer-precedence scenario 6', solve('layer-precedence', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('locked-workspace-values scenario 1', solve('locked-workspace-values', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('locked-workspace-values scenario 2', solve('locked-workspace-values', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('locked-workspace-values scenario 3', solve('locked-workspace-values', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('locked-workspace-values scenario 4', solve('locked-workspace-values', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('locked-workspace-values scenario 5', solve('locked-workspace-values', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('locked-workspace-values scenario 6', solve('locked-workspace-values', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('session-only-reset scenario 1', solve('session-only-reset', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark','size':N})
check('session-only-reset scenario 2', solve('session-only-reset', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('session-only-reset scenario 3', solve('session-only-reset', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('session-only-reset scenario 4', solve('session-only-reset', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('session-only-reset scenario 5', solve('session-only-reset', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'light'})
check('session-only-reset scenario 6', solve('session-only-reset', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':3})
check('device-layer-serialization scenario 1', solve('device-layer-serialization', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark'})
check('device-layer-serialization scenario 2', solve('device-layer-serialization', ({'theme':'light'}, {},{}, {},[],[])), {})
check('device-layer-serialization scenario 3', solve('device-layer-serialization', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':0})
check('device-layer-serialization scenario 4', solve('device-layer-serialization', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('device-layer-serialization scenario 5', solve('device-layer-serialization', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'dark'})
check('device-layer-serialization scenario 6', solve('device-layer-serialization', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':2})
check('explicit-session-keys scenario 1', solve('explicit-session-keys', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), ['theme'])
check('explicit-session-keys scenario 2', solve('explicit-session-keys', ({'theme':'light'}, {},{}, {},[],[])), [])
check('explicit-session-keys scenario 3', solve('explicit-session-keys', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), ['size'])
check('explicit-session-keys scenario 4', solve('explicit-session-keys', ({'theme':'light'},{'theme':None},{},{},[],[])), [])
check('explicit-session-keys scenario 5', solve('explicit-session-keys', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), ['theme'])
check('explicit-session-keys scenario 6', solve('explicit-session-keys', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), ['size'])
check('session-key-removal-falls-through scenario 1', solve('session-key-removal-falls-through', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('session-key-removal-falls-through scenario 2', solve('session-key-removal-falls-through', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('session-key-removal-falls-through scenario 3', solve('session-key-removal-falls-through', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('session-key-removal-falls-through scenario 4', solve('session-key-removal-falls-through', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('session-key-removal-falls-through scenario 5', solve('session-key-removal-falls-through', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'light'})
check('session-key-removal-falls-through scenario 6', solve('session-key-removal-falls-through', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('writable-preference-projection scenario 1', solve('writable-preference-projection', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':''})
check('writable-preference-projection scenario 2', solve('writable-preference-projection', ({'theme':'light'}, {},{}, {},[],[])), {})
check('writable-preference-projection scenario 3', solve('writable-preference-projection', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {})
check('writable-preference-projection scenario 4', solve('writable-preference-projection', ({'theme':'light'},{'theme':None},{},{},[],[])), {})
check('writable-preference-projection scenario 5', solve('writable-preference-projection', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('writable-preference-projection scenario 6', solve('writable-preference-projection', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('preference-source-attribution scenario 1', solve('preference-source-attribution', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'size':'workspace','theme':'session'})
check('preference-source-attribution scenario 2', solve('preference-source-attribution', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'default'})
check('preference-source-attribution scenario 3', solve('preference-source-attribution', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':'session'})
check('preference-source-attribution scenario 4', solve('preference-source-attribution', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':'device'})
check('preference-source-attribution scenario 5', solve('preference-source-attribution', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'session'})
check('preference-source-attribution scenario 6', solve('preference-source-attribution', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':'session'})
check('redundant-device-override-pruning scenario 1', solve('redundant-device-override-pruning', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark'})
check('redundant-device-override-pruning scenario 2', solve('redundant-device-override-pruning', ({'theme':'light'}, {},{}, {},[],[])), {})
check('redundant-device-override-pruning scenario 3', solve('redundant-device-override-pruning', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':0})
check('redundant-device-override-pruning scenario 4', solve('redundant-device-override-pruning', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('redundant-device-override-pruning scenario 5', solve('redundant-device-override-pruning', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'dark'})
check('redundant-device-override-pruning scenario 6', solve('redundant-device-override-pruning', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':2})
check('workspace-lock-report scenario 1', solve('workspace-lock-report', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), ['size'])
check('workspace-lock-report scenario 2', solve('workspace-lock-report', ({'theme':'light'}, {},{}, {},[],[])), [])
check('workspace-lock-report scenario 3', solve('workspace-lock-report', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), ['size'])
check('workspace-lock-report scenario 4', solve('workspace-lock-report', ({'theme':'light'},{'theme':None},{},{},[],[])), [])
check('workspace-lock-report scenario 5', solve('workspace-lock-report', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), [])
check('workspace-lock-report scenario 6', solve('workspace-lock-report', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), [])
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
layer-precedence scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
layer-precedence scenario 2{'theme': 'light'}{'theme': 'light'}Passed
layer-precedence scenario 3{'size': 4}{'size': 4}Passed
layer-precedence scenario 4{'theme': None}{'theme': None}Passed
layer-precedence scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
layer-precedence scenario 6{'size': 0}{'size': 0}Passed
locked-workspace-values scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
locked-workspace-values scenario 2{'theme': 'light'}{'theme': 'light'}Passed
locked-workspace-values scenario 3{'size': 3}{'size': 3}Passed
locked-workspace-values scenario 4{'theme': None}{'theme': None}Passed
locked-workspace-values scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
locked-workspace-values scenario 6{'size': 0}{'size': 0}Passed
session-only-reset scenario 1{'size': 1, 'theme': 'dark'}{'size': 1, 'theme': 'dark'}Passed
session-only-reset scenario 2{'theme': 'light'}{'theme': 'light'}Passed
session-only-reset scenario 3{'size': 3}{'size': 3}Passed
session-only-reset scenario 4{'theme': None}{'theme': None}Passed
session-only-reset scenario 5{'theme': 'light'}{'theme': 'light'}Passed
session-only-reset scenario 6{'size': 3}{'size': 3}Passed
device-layer-serialization scenario 1{'theme': 'dark'}{'theme': 'dark'}Passed
device-layer-serialization scenario 2{}{}Passed
device-layer-serialization scenario 3{'size': 0}{'size': 0}Passed
device-layer-serialization scenario 4{'theme': None}{'theme': None}Passed
device-layer-serialization scenario 5{'theme': 'dark'}{'theme': 'dark'}Passed
device-layer-serialization scenario 6{'size': 2}{'size': 2}Passed
explicit-session-keys scenario 1['theme']['theme']Passed
explicit-session-keys scenario 2[][]Passed
explicit-session-keys scenario 3['size']['size']Passed
explicit-session-keys scenario 4[][]Passed
explicit-session-keys scenario 5['theme']['theme']Passed
explicit-session-keys scenario 6['size']['size']Passed
session-key-removal-falls-through scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
session-key-removal-falls-through scenario 2{'theme': 'light'}{'theme': 'light'}Passed
session-key-removal-falls-through scenario 3{'size': 3}{'size': 3}Passed
session-key-removal-falls-through scenario 4{'theme': None}{'theme': None}Passed
session-key-removal-falls-through scenario 5{'theme': 'light'}{'theme': 'light'}Passed
session-key-removal-falls-through scenario 6{'size': 0}{'size': 0}Passed
writable-preference-projection scenario 1{'theme': ''}{'theme': ''}Passed
writable-preference-projection scenario 2{}{}Passed
writable-preference-projection scenario 3{}{}Passed
writable-preference-projection scenario 4{}{}Passed
writable-preference-projection scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
writable-preference-projection scenario 6{'size': 0}{'size': 0}Passed
preference-source-attribution scenario 1{'size': 'workspace', 'theme': 'session'}{'size': 'workspace', 'theme': 'session'}Passed
preference-source-attribution scenario 2{'theme': 'default'}{'theme': 'default'}Passed
preference-source-attribution scenario 3{'size': 'session'}{'size': 'session'}Passed
preference-source-attribution scenario 4{'theme': 'device'}{'theme': 'device'}Passed
preference-source-attribution scenario 5{'theme': 'session'}{'theme': 'session'}Passed
preference-source-attribution scenario 6{'size': 'session'}{'size': 'session'}Passed
redundant-device-override-pruning scenario 1{'theme': 'dark'}{'theme': 'dark'}Passed
redundant-device-override-pruning scenario 2{}{}Passed
redundant-device-override-pruning scenario 3{'size': 0}{'size': 0}Passed
redundant-device-override-pruning scenario 4{'theme': None}{'theme': None}Passed
redundant-device-override-pruning scenario 5{'theme': 'dark'}{'theme': 'dark'}Passed
redundant-device-override-pruning scenario 6{'size': 2}{'size': 2}Passed
workspace-lock-report scenario 1[]['size']Failed
workspace-lock-report scenario 2[][]Passed
workspace-lock-report scenario 3['size']['size']Passed
workspace-lock-report scenario 4[][]Passed
workspace-lock-report scenario 5[][]Passed
workspace-lock-report scenario 6[][]Passed

SHA-256 / c7e3aa1a860dff64e61313124d36f5836f5f2c3b006fd30dbc2fa74c4ac773f5

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(operation, s):
    defaults, device, workspace, session, locked, removed = s
    if operation == 'layer-precedence':
        return {**defaults,**device,**workspace,**session}
    if operation == 'locked-workspace-values':
        return {**defaults,**device,**workspace,**{k:v for k,v in session.items() if k not in locked}}
    if operation == 'session-only-reset':
        return {**defaults,**device,**workspace}
    if operation == 'device-layer-serialization':
        return dict(device)
    if operation == 'explicit-session-keys':
        return list(session)
    if operation == 'session-key-removal-falls-through':
        return {**defaults,**device,**workspace,**{k:v for k,v in session.items() if k not in removed}}
    if operation == 'writable-preference-projection':
        return {k:v for k,v in session.items() if k not in locked}
    if operation == 'preference-source-attribution':
        return {k:next(layer for layer,values in [('session',session),('workspace',workspace),('device',device),('default',defaults)] if k in values) for k in sorted(set(defaults)|set(device)|set(workspace)|set(session))}
    if operation == 'redundant-device-override-pruning':
        return {k:v for k,v in device.items() if k not in defaults or defaults[k]!=v}
    if operation == 'workspace-lock-report':
        return [k for k in locked if k in workspace]
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('layer-precedence scenario 1', solve('layer-precedence', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('layer-precedence scenario 2', solve('layer-precedence', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('layer-precedence scenario 3', solve('layer-precedence', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':4})
check('layer-precedence scenario 4', solve('layer-precedence', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('layer-precedence scenario 5', solve('layer-precedence', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('layer-precedence scenario 6', solve('layer-precedence', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('locked-workspace-values scenario 1', solve('locked-workspace-values', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('locked-workspace-values scenario 2', solve('locked-workspace-values', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('locked-workspace-values scenario 3', solve('locked-workspace-values', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('locked-workspace-values scenario 4', solve('locked-workspace-values', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('locked-workspace-values scenario 5', solve('locked-workspace-values', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('locked-workspace-values scenario 6', solve('locked-workspace-values', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('session-only-reset scenario 1', solve('session-only-reset', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark','size':N})
check('session-only-reset scenario 2', solve('session-only-reset', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('session-only-reset scenario 3', solve('session-only-reset', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('session-only-reset scenario 4', solve('session-only-reset', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('session-only-reset scenario 5', solve('session-only-reset', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'light'})
check('session-only-reset scenario 6', solve('session-only-reset', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':3})
check('device-layer-serialization scenario 1', solve('device-layer-serialization', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark'})
check('device-layer-serialization scenario 2', solve('device-layer-serialization', ({'theme':'light'}, {},{}, {},[],[])), {})
check('device-layer-serialization scenario 3', solve('device-layer-serialization', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':0})
check('device-layer-serialization scenario 4', solve('device-layer-serialization', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('device-layer-serialization scenario 5', solve('device-layer-serialization', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'dark'})
check('device-layer-serialization scenario 6', solve('device-layer-serialization', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':2})
check('explicit-session-keys scenario 1', solve('explicit-session-keys', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), ['theme'])
check('explicit-session-keys scenario 2', solve('explicit-session-keys', ({'theme':'light'}, {},{}, {},[],[])), [])
check('explicit-session-keys scenario 3', solve('explicit-session-keys', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), ['size'])
check('explicit-session-keys scenario 4', solve('explicit-session-keys', ({'theme':'light'},{'theme':None},{},{},[],[])), [])
check('explicit-session-keys scenario 5', solve('explicit-session-keys', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), ['theme'])
check('explicit-session-keys scenario 6', solve('explicit-session-keys', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), ['size'])
check('session-key-removal-falls-through scenario 1', solve('session-key-removal-falls-through', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'','size':N})
check('session-key-removal-falls-through scenario 2', solve('session-key-removal-falls-through', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'light'})
check('session-key-removal-falls-through scenario 3', solve('session-key-removal-falls-through', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':3})
check('session-key-removal-falls-through scenario 4', solve('session-key-removal-falls-through', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('session-key-removal-falls-through scenario 5', solve('session-key-removal-falls-through', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'light'})
check('session-key-removal-falls-through scenario 6', solve('session-key-removal-falls-through', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('writable-preference-projection scenario 1', solve('writable-preference-projection', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':''})
check('writable-preference-projection scenario 2', solve('writable-preference-projection', ({'theme':'light'}, {},{}, {},[],[])), {})
check('writable-preference-projection scenario 3', solve('writable-preference-projection', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {})
check('writable-preference-projection scenario 4', solve('writable-preference-projection', ({'theme':'light'},{'theme':None},{},{},[],[])), {})
check('writable-preference-projection scenario 5', solve('writable-preference-projection', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'blue'})
check('writable-preference-projection scenario 6', solve('writable-preference-projection', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':0})
check('preference-source-attribution scenario 1', solve('preference-source-attribution', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'size':'workspace','theme':'session'})
check('preference-source-attribution scenario 2', solve('preference-source-attribution', ({'theme':'light'}, {},{}, {},[],[])), {'theme':'default'})
check('preference-source-attribution scenario 3', solve('preference-source-attribution', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':'session'})
check('preference-source-attribution scenario 4', solve('preference-source-attribution', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':'device'})
check('preference-source-attribution scenario 5', solve('preference-source-attribution', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'session'})
check('preference-source-attribution scenario 6', solve('preference-source-attribution', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':'session'})
check('redundant-device-override-pruning scenario 1', solve('redundant-device-override-pruning', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), {'theme':'dark'})
check('redundant-device-override-pruning scenario 2', solve('redundant-device-override-pruning', ({'theme':'light'}, {},{}, {},[],[])), {})
check('redundant-device-override-pruning scenario 3', solve('redundant-device-override-pruning', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), {'size':0})
check('redundant-device-override-pruning scenario 4', solve('redundant-device-override-pruning', ({'theme':'light'},{'theme':None},{},{},[],[])), {'theme':None})
check('redundant-device-override-pruning scenario 5', solve('redundant-device-override-pruning', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), {'theme':'dark'})
check('redundant-device-override-pruning scenario 6', solve('redundant-device-override-pruning', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), {'size':2})
check('workspace-lock-report scenario 1', solve('workspace-lock-report', ({'theme':'light','size':1},{'theme':'dark'},{'size':N},{'theme':''},['size'],[])), ['size'])
check('workspace-lock-report scenario 2', solve('workspace-lock-report', ({'theme':'light'}, {},{}, {},[],[])), [])
check('workspace-lock-report scenario 3', solve('workspace-lock-report', ({'size':2},{'size':0},{'size':3},{'size':4},['size'],['size'])), ['size'])
check('workspace-lock-report scenario 4', solve('workspace-lock-report', ({'theme':'light'},{'theme':None},{},{},[],[])), [])
check('workspace-lock-report scenario 5', solve('workspace-lock-report', ({}, {'theme':'dark'},{'theme':'light'},{'theme':'blue'},[],['theme'])), [])
check('workspace-lock-report scenario 6', solve('workspace-lock-report', ({'size':1}, {'size':2},{'size':3},{'size':0},[],[])), [])
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
layer-precedence scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
layer-precedence scenario 2{'theme': 'light'}{'theme': 'light'}Passed
layer-precedence scenario 3{'size': 4}{'size': 4}Passed
layer-precedence scenario 4{'theme': None}{'theme': None}Passed
layer-precedence scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
layer-precedence scenario 6{'size': 0}{'size': 0}Passed
locked-workspace-values scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
locked-workspace-values scenario 2{'theme': 'light'}{'theme': 'light'}Passed
locked-workspace-values scenario 3{'size': 3}{'size': 3}Passed
locked-workspace-values scenario 4{'theme': None}{'theme': None}Passed
locked-workspace-values scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
locked-workspace-values scenario 6{'size': 0}{'size': 0}Passed
session-only-reset scenario 1{'size': 1, 'theme': 'dark'}{'size': 1, 'theme': 'dark'}Passed
session-only-reset scenario 2{'theme': 'light'}{'theme': 'light'}Passed
session-only-reset scenario 3{'size': 3}{'size': 3}Passed
session-only-reset scenario 4{'theme': None}{'theme': None}Passed
session-only-reset scenario 5{'theme': 'light'}{'theme': 'light'}Passed
session-only-reset scenario 6{'size': 3}{'size': 3}Passed
device-layer-serialization scenario 1{'theme': 'dark'}{'theme': 'dark'}Passed
device-layer-serialization scenario 2{}{}Passed
device-layer-serialization scenario 3{'size': 0}{'size': 0}Passed
device-layer-serialization scenario 4{'theme': None}{'theme': None}Passed
device-layer-serialization scenario 5{'theme': 'dark'}{'theme': 'dark'}Passed
device-layer-serialization scenario 6{'size': 2}{'size': 2}Passed
explicit-session-keys scenario 1['theme']['theme']Passed
explicit-session-keys scenario 2[][]Passed
explicit-session-keys scenario 3['size']['size']Passed
explicit-session-keys scenario 4[][]Passed
explicit-session-keys scenario 5['theme']['theme']Passed
explicit-session-keys scenario 6['size']['size']Passed
session-key-removal-falls-through scenario 1{'size': 1, 'theme': ''}{'size': 1, 'theme': ''}Passed
session-key-removal-falls-through scenario 2{'theme': 'light'}{'theme': 'light'}Passed
session-key-removal-falls-through scenario 3{'size': 3}{'size': 3}Passed
session-key-removal-falls-through scenario 4{'theme': None}{'theme': None}Passed
session-key-removal-falls-through scenario 5{'theme': 'light'}{'theme': 'light'}Passed
session-key-removal-falls-through scenario 6{'size': 0}{'size': 0}Passed
writable-preference-projection scenario 1{'theme': ''}{'theme': ''}Passed
writable-preference-projection scenario 2{}{}Passed
writable-preference-projection scenario 3{}{}Passed
writable-preference-projection scenario 4{}{}Passed
writable-preference-projection scenario 5{'theme': 'blue'}{'theme': 'blue'}Passed
writable-preference-projection scenario 6{'size': 0}{'size': 0}Passed
preference-source-attribution scenario 1{'size': 'workspace', 'theme': 'session'}{'size': 'workspace', 'theme': 'session'}Passed
preference-source-attribution scenario 2{'theme': 'default'}{'theme': 'default'}Passed
preference-source-attribution scenario 3{'size': 'session'}{'size': 'session'}Passed
preference-source-attribution scenario 4{'theme': 'device'}{'theme': 'device'}Passed
preference-source-attribution scenario 5{'theme': 'session'}{'theme': 'session'}Passed
preference-source-attribution scenario 6{'size': 'session'}{'size': 'session'}Passed
redundant-device-override-pruning scenario 1{'theme': 'dark'}{'theme': 'dark'}Passed
redundant-device-override-pruning scenario 2{}{}Passed
redundant-device-override-pruning scenario 3{'size': 0}{'size': 0}Passed
redundant-device-override-pruning scenario 4{'theme': None}{'theme': None}Passed
redundant-device-override-pruning scenario 5{'theme': 'dark'}{'theme': 'dark'}Passed
redundant-device-override-pruning scenario 6{'size': 2}{'size': 2}Passed
workspace-lock-report scenario 1['size']['size']Passed
workspace-lock-report scenario 2[][]Passed
workspace-lock-report scenario 3['size']['size']Passed
workspace-lock-report scenario 4[][]Passed
workspace-lock-report scenario 5[][]Passed
workspace-lock-report scenario 6[][]Passed

SHA-256 / 3ccea91cc3e1c4ddcafb4ca2d8bbb22e8dcb67d3e1c53de10bcb42d147f9ca5e

Verification & scope

Only the explicitly specified operations and finite deterministic records are modeled; no browser or framework conformance is claimed. 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:41:00.035940+00:00.

Case digest / 98681201beb9f1c487ff1b582fa11cbddd8ba5d94eed58bc14c96611be70d9ee