FAILURE MAP
← Case archive

FA-24081 / Client state / Open access

Application workspace switch transaction: Resource scope key · case 01

Resource scope key.

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

ROOT CAUSE

The resource-scope-key client decision evaluates `[(new,k) for w,k in resources]` instead of `[(new,k) for w,k in resources if w==new]`.

THE FAILURE

The resource-scope-key client decision evaluates `[(new,k) for w,k in resources]` instead of `[(new,k) for w,k in resources if w==new]`.

Unsuccessful approach: The partial repair `resources` still violates the explicit fixture contract.

Case contract

Workspace switches preserve each workspace draft, detach only outgoing subscriptions and requests, retain unrelated workspace work, rewrite only the old route prefix, and keep the old workspace if access is not allowed. Operation resource-scope-key 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):
    old, new, drafts, resources, pending, location, allowed = s
    if operation == 'workspace-draft-selection':
        return drafts.get(new)
    if operation == 'outgoing-resource-detach':
        return [(w,k) for w,k in resources if w!=old]
    if operation == 'outgoing-request-cancel':
        return [k for w,k in pending if w==old]
    if operation == 'switch-authorization':
        return new in allowed
    if operation == 'draft-preservation-on-switch':
        return dict(drafts)
    if operation == 'workspace-route-rewrite':
        return '/'+new+location[len('/'+old):] if location=='/'+old or location.startswith('/'+old+'/') else location
    if operation == 'same-workspace-no-switch':
        return old!=new
    if operation == 'resource-scope-key':
        return [(new,k) for w,k in resources]
    if operation == 'forbidden-switch-retains-owner':
        return new if new in allowed else old
    if operation == 'pending-other-workspaces':
        return [(w,k) for w,k in pending if w!=old]
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('workspace-draft-selection scenario 1', solve('workspace-draft-selection', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 2)
check('workspace-draft-selection scenario 2', solve('workspace-draft-selection', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 0)
check('workspace-draft-selection scenario 3', solve('workspace-draft-selection', ('a','c',{},[],[('a','p')],'/a/doc',[])), None)
check('workspace-draft-selection scenario 4', solve('workspace-draft-selection', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), None)
check('workspace-draft-selection scenario 5', solve('workspace-draft-selection', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), False)
check('workspace-draft-selection scenario 6', solve('workspace-draft-selection', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), None)
check('outgoing-resource-detach scenario 1', solve('outgoing-resource-detach', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])
check('outgoing-resource-detach scenario 2', solve('outgoing-resource-detach', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])
check('outgoing-resource-detach scenario 3', solve('outgoing-resource-detach', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])
check('outgoing-resource-detach scenario 4', solve('outgoing-resource-detach', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])
check('outgoing-resource-detach scenario 5', solve('outgoing-resource-detach', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','x')])
check('outgoing-resource-detach scenario 6', solve('outgoing-resource-detach', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])
check('outgoing-request-cancel scenario 1', solve('outgoing-request-cancel', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), ['p'])
check('outgoing-request-cancel scenario 2', solve('outgoing-request-cancel', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])
check('outgoing-request-cancel scenario 3', solve('outgoing-request-cancel', ('a','c',{},[],[('a','p')],'/a/doc',[])), ['p'])
check('outgoing-request-cancel scenario 4', solve('outgoing-request-cancel', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])
check('outgoing-request-cancel scenario 5', solve('outgoing-request-cancel', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])
check('outgoing-request-cancel scenario 6', solve('outgoing-request-cancel', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), ['p','q'])
check('switch-authorization scenario 1', solve('switch-authorization', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)
check('switch-authorization scenario 2', solve('switch-authorization', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), True)
check('switch-authorization scenario 3', solve('switch-authorization', ('a','c',{},[],[('a','p')],'/a/doc',[])), False)
check('switch-authorization scenario 4', solve('switch-authorization', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)
check('switch-authorization scenario 5', solve('switch-authorization', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)
check('switch-authorization scenario 6', solve('switch-authorization', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)
check('draft-preservation-on-switch scenario 1', solve('draft-preservation-on-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), {'a':N,'b':2})
check('draft-preservation-on-switch scenario 2', solve('draft-preservation-on-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), {'a':0})
check('draft-preservation-on-switch scenario 3', solve('draft-preservation-on-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), {})
check('draft-preservation-on-switch scenario 4', solve('draft-preservation-on-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), {'b':None})
check('draft-preservation-on-switch scenario 5', solve('draft-preservation-on-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), {'b':False})
check('draft-preservation-on-switch scenario 6', solve('draft-preservation-on-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), {'a':N})
check('workspace-route-rewrite scenario 1', solve('workspace-route-rewrite', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), '/b/doc')
check('workspace-route-rewrite scenario 2', solve('workspace-route-rewrite', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), '/a')
check('workspace-route-rewrite scenario 3', solve('workspace-route-rewrite', ('a','c',{},[],[('a','p')],'/a/doc',[])), '/c/doc')
check('workspace-route-rewrite scenario 4', solve('workspace-route-rewrite', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), '/a')
check('workspace-route-rewrite scenario 5', solve('workspace-route-rewrite', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), '/shared')
check('workspace-route-rewrite scenario 6', solve('workspace-route-rewrite', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), '/b')
check('same-workspace-no-switch scenario 1', solve('same-workspace-no-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)
check('same-workspace-no-switch scenario 2', solve('same-workspace-no-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), False)
check('same-workspace-no-switch scenario 3', solve('same-workspace-no-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), True)
check('same-workspace-no-switch scenario 4', solve('same-workspace-no-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)
check('same-workspace-no-switch scenario 5', solve('same-workspace-no-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)
check('same-workspace-no-switch scenario 6', solve('same-workspace-no-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)
check('resource-scope-key scenario 1', solve('resource-scope-key', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])
check('resource-scope-key scenario 2', solve('resource-scope-key', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [('a','x')])
check('resource-scope-key scenario 3', solve('resource-scope-key', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])
check('resource-scope-key scenario 4', solve('resource-scope-key', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])
check('resource-scope-key scenario 5', solve('resource-scope-key', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])
check('resource-scope-key scenario 6', solve('resource-scope-key', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])
check('forbidden-switch-retains-owner scenario 1', solve('forbidden-switch-retains-owner', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 'b')
check('forbidden-switch-retains-owner scenario 2', solve('forbidden-switch-retains-owner', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 'a')
check('forbidden-switch-retains-owner scenario 3', solve('forbidden-switch-retains-owner', ('a','c',{},[],[('a','p')],'/a/doc',[])), 'a')
check('forbidden-switch-retains-owner scenario 4', solve('forbidden-switch-retains-owner', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), 'a')
check('forbidden-switch-retains-owner scenario 5', solve('forbidden-switch-retains-owner', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), 'b')
check('forbidden-switch-retains-owner scenario 6', solve('forbidden-switch-retains-owner', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), 'b')
check('pending-other-workspaces scenario 1', solve('pending-other-workspaces', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','q')])
check('pending-other-workspaces scenario 2', solve('pending-other-workspaces', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])
check('pending-other-workspaces scenario 3', solve('pending-other-workspaces', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])
check('pending-other-workspaces scenario 4', solve('pending-other-workspaces', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])
check('pending-other-workspaces scenario 5', solve('pending-other-workspaces', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','p')])
check('pending-other-workspaces scenario 6', solve('pending-other-workspaces', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])
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
workspace-draft-selection scenario 122Passed
workspace-draft-selection scenario 200Passed
workspace-draft-selection scenario 3NoneNonePassed
workspace-draft-selection scenario 4NoneNonePassed
workspace-draft-selection scenario 5FalseFalsePassed
workspace-draft-selection scenario 6NoneNonePassed
outgoing-resource-detach scenario 1[['b', 'y']][['b', 'y']]Passed
outgoing-resource-detach scenario 2[][]Passed
outgoing-resource-detach scenario 3[][]Passed
outgoing-resource-detach scenario 4[][]Passed
outgoing-resource-detach scenario 5[['c', 'x']][['c', 'x']]Passed
outgoing-resource-detach scenario 6[][]Passed
outgoing-request-cancel scenario 1['p']['p']Passed
outgoing-request-cancel scenario 2[][]Passed
outgoing-request-cancel scenario 3['p']['p']Passed
outgoing-request-cancel scenario 4[][]Passed
outgoing-request-cancel scenario 5[][]Passed
outgoing-request-cancel scenario 6['p', 'q']['p', 'q']Passed
switch-authorization scenario 1TrueTruePassed
switch-authorization scenario 2TrueTruePassed
switch-authorization scenario 3FalseFalsePassed
switch-authorization scenario 4TrueTruePassed
switch-authorization scenario 5TrueTruePassed
switch-authorization scenario 6TrueTruePassed
draft-preservation-on-switch scenario 1{'a': 1, 'b': 2}{'a': 1, 'b': 2}Passed
draft-preservation-on-switch scenario 2{'a': 0}{'a': 0}Passed
draft-preservation-on-switch scenario 3{}{}Passed
draft-preservation-on-switch scenario 4{'b': None}{'b': None}Passed
draft-preservation-on-switch scenario 5{'b': False}{'b': False}Passed
draft-preservation-on-switch scenario 6{'a': 1}{'a': 1}Passed
workspace-route-rewrite scenario 1/b/doc/b/docPassed
workspace-route-rewrite scenario 2/a/aPassed
workspace-route-rewrite scenario 3/c/doc/c/docPassed
workspace-route-rewrite scenario 4/a/aPassed
workspace-route-rewrite scenario 5/shared/sharedPassed
workspace-route-rewrite scenario 6/b/bPassed
same-workspace-no-switch scenario 1TrueTruePassed
same-workspace-no-switch scenario 2FalseFalsePassed
same-workspace-no-switch scenario 3TrueTruePassed
same-workspace-no-switch scenario 4TrueTruePassed
same-workspace-no-switch scenario 5TrueTruePassed
same-workspace-no-switch scenario 6TrueTruePassed
resource-scope-key scenario 1[['b', 'x'], ['b', 'y']][['b', 'y']]Failed
resource-scope-key scenario 2[['a', 'x']][['a', 'x']]Passed
resource-scope-key scenario 3[][]Passed
resource-scope-key scenario 4[['a', 'x'], ['a', 'y']][]Failed
resource-scope-key scenario 5[['b', 'x']][]Failed
resource-scope-key scenario 6[][]Passed
forbidden-switch-retains-owner scenario 1bbPassed
forbidden-switch-retains-owner scenario 2aaPassed
forbidden-switch-retains-owner scenario 3aaPassed
forbidden-switch-retains-owner scenario 4aaPassed
forbidden-switch-retains-owner scenario 5bbPassed
forbidden-switch-retains-owner scenario 6bbPassed
pending-other-workspaces scenario 1[['b', 'q']][['b', 'q']]Passed
pending-other-workspaces scenario 2[][]Passed
pending-other-workspaces scenario 3[][]Passed
pending-other-workspaces scenario 4[][]Passed
pending-other-workspaces scenario 5[['c', 'p']][['c', 'p']]Passed
pending-other-workspaces scenario 6[][]Passed

SHA-256 / 6e0a1f4a28e0cf0bc350829f307e7edd50a70107cb6bee04123d3e05f350264b

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(operation, s):
    old, new, drafts, resources, pending, location, allowed = s
    if operation == 'workspace-draft-selection':
        return drafts.get(new)
    if operation == 'outgoing-resource-detach':
        return [(w,k) for w,k in resources if w!=old]
    if operation == 'outgoing-request-cancel':
        return [k for w,k in pending if w==old]
    if operation == 'switch-authorization':
        return new in allowed
    if operation == 'draft-preservation-on-switch':
        return dict(drafts)
    if operation == 'workspace-route-rewrite':
        return '/'+new+location[len('/'+old):] if location=='/'+old or location.startswith('/'+old+'/') else location
    if operation == 'same-workspace-no-switch':
        return old!=new
    if operation == 'resource-scope-key':
        return resources
    if operation == 'forbidden-switch-retains-owner':
        return new if new in allowed else old
    if operation == 'pending-other-workspaces':
        return [(w,k) for w,k in pending if w!=old]
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('workspace-draft-selection scenario 1', solve('workspace-draft-selection', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 2)
check('workspace-draft-selection scenario 2', solve('workspace-draft-selection', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 0)
check('workspace-draft-selection scenario 3', solve('workspace-draft-selection', ('a','c',{},[],[('a','p')],'/a/doc',[])), None)
check('workspace-draft-selection scenario 4', solve('workspace-draft-selection', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), None)
check('workspace-draft-selection scenario 5', solve('workspace-draft-selection', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), False)
check('workspace-draft-selection scenario 6', solve('workspace-draft-selection', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), None)
check('outgoing-resource-detach scenario 1', solve('outgoing-resource-detach', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])
check('outgoing-resource-detach scenario 2', solve('outgoing-resource-detach', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])
check('outgoing-resource-detach scenario 3', solve('outgoing-resource-detach', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])
check('outgoing-resource-detach scenario 4', solve('outgoing-resource-detach', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])
check('outgoing-resource-detach scenario 5', solve('outgoing-resource-detach', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','x')])
check('outgoing-resource-detach scenario 6', solve('outgoing-resource-detach', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])
check('outgoing-request-cancel scenario 1', solve('outgoing-request-cancel', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), ['p'])
check('outgoing-request-cancel scenario 2', solve('outgoing-request-cancel', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])
check('outgoing-request-cancel scenario 3', solve('outgoing-request-cancel', ('a','c',{},[],[('a','p')],'/a/doc',[])), ['p'])
check('outgoing-request-cancel scenario 4', solve('outgoing-request-cancel', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])
check('outgoing-request-cancel scenario 5', solve('outgoing-request-cancel', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])
check('outgoing-request-cancel scenario 6', solve('outgoing-request-cancel', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), ['p','q'])
check('switch-authorization scenario 1', solve('switch-authorization', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)
check('switch-authorization scenario 2', solve('switch-authorization', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), True)
check('switch-authorization scenario 3', solve('switch-authorization', ('a','c',{},[],[('a','p')],'/a/doc',[])), False)
check('switch-authorization scenario 4', solve('switch-authorization', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)
check('switch-authorization scenario 5', solve('switch-authorization', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)
check('switch-authorization scenario 6', solve('switch-authorization', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)
check('draft-preservation-on-switch scenario 1', solve('draft-preservation-on-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), {'a':N,'b':2})
check('draft-preservation-on-switch scenario 2', solve('draft-preservation-on-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), {'a':0})
check('draft-preservation-on-switch scenario 3', solve('draft-preservation-on-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), {})
check('draft-preservation-on-switch scenario 4', solve('draft-preservation-on-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), {'b':None})
check('draft-preservation-on-switch scenario 5', solve('draft-preservation-on-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), {'b':False})
check('draft-preservation-on-switch scenario 6', solve('draft-preservation-on-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), {'a':N})
check('workspace-route-rewrite scenario 1', solve('workspace-route-rewrite', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), '/b/doc')
check('workspace-route-rewrite scenario 2', solve('workspace-route-rewrite', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), '/a')
check('workspace-route-rewrite scenario 3', solve('workspace-route-rewrite', ('a','c',{},[],[('a','p')],'/a/doc',[])), '/c/doc')
check('workspace-route-rewrite scenario 4', solve('workspace-route-rewrite', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), '/a')
check('workspace-route-rewrite scenario 5', solve('workspace-route-rewrite', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), '/shared')
check('workspace-route-rewrite scenario 6', solve('workspace-route-rewrite', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), '/b')
check('same-workspace-no-switch scenario 1', solve('same-workspace-no-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)
check('same-workspace-no-switch scenario 2', solve('same-workspace-no-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), False)
check('same-workspace-no-switch scenario 3', solve('same-workspace-no-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), True)
check('same-workspace-no-switch scenario 4', solve('same-workspace-no-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)
check('same-workspace-no-switch scenario 5', solve('same-workspace-no-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)
check('same-workspace-no-switch scenario 6', solve('same-workspace-no-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)
check('resource-scope-key scenario 1', solve('resource-scope-key', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])
check('resource-scope-key scenario 2', solve('resource-scope-key', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [('a','x')])
check('resource-scope-key scenario 3', solve('resource-scope-key', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])
check('resource-scope-key scenario 4', solve('resource-scope-key', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])
check('resource-scope-key scenario 5', solve('resource-scope-key', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])
check('resource-scope-key scenario 6', solve('resource-scope-key', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])
check('forbidden-switch-retains-owner scenario 1', solve('forbidden-switch-retains-owner', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 'b')
check('forbidden-switch-retains-owner scenario 2', solve('forbidden-switch-retains-owner', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 'a')
check('forbidden-switch-retains-owner scenario 3', solve('forbidden-switch-retains-owner', ('a','c',{},[],[('a','p')],'/a/doc',[])), 'a')
check('forbidden-switch-retains-owner scenario 4', solve('forbidden-switch-retains-owner', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), 'a')
check('forbidden-switch-retains-owner scenario 5', solve('forbidden-switch-retains-owner', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), 'b')
check('forbidden-switch-retains-owner scenario 6', solve('forbidden-switch-retains-owner', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), 'b')
check('pending-other-workspaces scenario 1', solve('pending-other-workspaces', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','q')])
check('pending-other-workspaces scenario 2', solve('pending-other-workspaces', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])
check('pending-other-workspaces scenario 3', solve('pending-other-workspaces', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])
check('pending-other-workspaces scenario 4', solve('pending-other-workspaces', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])
check('pending-other-workspaces scenario 5', solve('pending-other-workspaces', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','p')])
check('pending-other-workspaces scenario 6', solve('pending-other-workspaces', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])
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
workspace-draft-selection scenario 122Passed
workspace-draft-selection scenario 200Passed
workspace-draft-selection scenario 3NoneNonePassed
workspace-draft-selection scenario 4NoneNonePassed
workspace-draft-selection scenario 5FalseFalsePassed
workspace-draft-selection scenario 6NoneNonePassed
outgoing-resource-detach scenario 1[['b', 'y']][['b', 'y']]Passed
outgoing-resource-detach scenario 2[][]Passed
outgoing-resource-detach scenario 3[][]Passed
outgoing-resource-detach scenario 4[][]Passed
outgoing-resource-detach scenario 5[['c', 'x']][['c', 'x']]Passed
outgoing-resource-detach scenario 6[][]Passed
outgoing-request-cancel scenario 1['p']['p']Passed
outgoing-request-cancel scenario 2[][]Passed
outgoing-request-cancel scenario 3['p']['p']Passed
outgoing-request-cancel scenario 4[][]Passed
outgoing-request-cancel scenario 5[][]Passed
outgoing-request-cancel scenario 6['p', 'q']['p', 'q']Passed
switch-authorization scenario 1TrueTruePassed
switch-authorization scenario 2TrueTruePassed
switch-authorization scenario 3FalseFalsePassed
switch-authorization scenario 4TrueTruePassed
switch-authorization scenario 5TrueTruePassed
switch-authorization scenario 6TrueTruePassed
draft-preservation-on-switch scenario 1{'a': 1, 'b': 2}{'a': 1, 'b': 2}Passed
draft-preservation-on-switch scenario 2{'a': 0}{'a': 0}Passed
draft-preservation-on-switch scenario 3{}{}Passed
draft-preservation-on-switch scenario 4{'b': None}{'b': None}Passed
draft-preservation-on-switch scenario 5{'b': False}{'b': False}Passed
draft-preservation-on-switch scenario 6{'a': 1}{'a': 1}Passed
workspace-route-rewrite scenario 1/b/doc/b/docPassed
workspace-route-rewrite scenario 2/a/aPassed
workspace-route-rewrite scenario 3/c/doc/c/docPassed
workspace-route-rewrite scenario 4/a/aPassed
workspace-route-rewrite scenario 5/shared/sharedPassed
workspace-route-rewrite scenario 6/b/bPassed
same-workspace-no-switch scenario 1TrueTruePassed
same-workspace-no-switch scenario 2FalseFalsePassed
same-workspace-no-switch scenario 3TrueTruePassed
same-workspace-no-switch scenario 4TrueTruePassed
same-workspace-no-switch scenario 5TrueTruePassed
same-workspace-no-switch scenario 6TrueTruePassed
resource-scope-key scenario 1[['a', 'x'], ['b', 'y']][['b', 'y']]Failed
resource-scope-key scenario 2[['a', 'x']][['a', 'x']]Passed
resource-scope-key scenario 3[][]Passed
resource-scope-key scenario 4[['b', 'x'], ['b', 'y']][]Failed
resource-scope-key scenario 5[['c', 'x']][]Failed
resource-scope-key scenario 6[][]Passed
forbidden-switch-retains-owner scenario 1bbPassed
forbidden-switch-retains-owner scenario 2aaPassed
forbidden-switch-retains-owner scenario 3aaPassed
forbidden-switch-retains-owner scenario 4aaPassed
forbidden-switch-retains-owner scenario 5bbPassed
forbidden-switch-retains-owner scenario 6bbPassed
pending-other-workspaces scenario 1[['b', 'q']][['b', 'q']]Passed
pending-other-workspaces scenario 2[][]Passed
pending-other-workspaces scenario 3[][]Passed
pending-other-workspaces scenario 4[][]Passed
pending-other-workspaces scenario 5[['c', 'p']][['c', 'p']]Passed
pending-other-workspaces scenario 6[][]Passed

SHA-256 / f7a3fe3023085f4bb9b7f89ee5314c306e49cf4ca23c72d33f2205f2bfaf9d08

HELD IN THE MEMBER ARCHIVE

The verified repair and its recorded checks are member-only.

This mechanism has 60 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.

Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.

Member access is invitation-based. Sign in with your invited account to inspect the repair.

Sign in to the archive ↗

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

Case digest / 920945eddeab0e4c9ae062d036450ff12bf3ebeaeef589eeca8d57b7aef0d818