{"abstract":"Workspace route rewrite.","category":"Client state","checks":60,"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 workspace-route-rewrite has the six explicit input/output oracles below.","contract_signature":"operation, s","evaluation_group":"s3-client-state-workspace-switch","failed_approach":"The partial repair `'/'+new` still violates the explicit fixture contract.","family":"s3-client-state-workspace-switch-workspace-route-rewrite","id":"FA-24076","implementations":{"attempt":{"sha256":"51a8328d85d52593e59a3c0036a5efcb374ef794aed317320e702bbcb11e93eb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    old, new, drafts, resources, pending, location, allowed = s\n    if operation == 'workspace-draft-selection':\n        return drafts.get(new)\n    if operation == 'outgoing-resource-detach':\n        return [(w,k) for w,k in resources if w!=old]\n    if operation == 'outgoing-request-cancel':\n        return [k for w,k in pending if w==old]\n    if operation == 'switch-authorization':\n        return new in allowed\n    if operation == 'draft-preservation-on-switch':\n        return dict(drafts)\n    if operation == 'workspace-route-rewrite':\n        return '/'+new\n    if operation == 'same-workspace-no-switch':\n        return old!=new\n    if operation == 'resource-scope-key':\n        return [(new,k) for w,k in resources if w==new]\n    if operation == 'forbidden-switch-retains-owner':\n        return new if new in allowed else old\n    if operation == 'pending-other-workspaces':\n        return [(w,k) for w,k in pending if w!=old]\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('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)\ncheck('workspace-draft-selection scenario 2', solve('workspace-draft-selection', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 0)\ncheck('workspace-draft-selection scenario 3', solve('workspace-draft-selection', ('a','c',{},[],[('a','p')],'/a/doc',[])), None)\ncheck('workspace-draft-selection scenario 4', solve('workspace-draft-selection', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), None)\ncheck('workspace-draft-selection scenario 5', solve('workspace-draft-selection', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), False)\ncheck('workspace-draft-selection scenario 6', solve('workspace-draft-selection', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), None)\ncheck('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')])\ncheck('outgoing-resource-detach scenario 2', solve('outgoing-resource-detach', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-resource-detach scenario 3', solve('outgoing-resource-detach', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('outgoing-resource-detach scenario 4', solve('outgoing-resource-detach', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-resource-detach scenario 5', solve('outgoing-resource-detach', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','x')])\ncheck('outgoing-resource-detach scenario 6', solve('outgoing-resource-detach', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('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'])\ncheck('outgoing-request-cancel scenario 2', solve('outgoing-request-cancel', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-request-cancel scenario 3', solve('outgoing-request-cancel', ('a','c',{},[],[('a','p')],'/a/doc',[])), ['p'])\ncheck('outgoing-request-cancel scenario 4', solve('outgoing-request-cancel', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-request-cancel scenario 5', solve('outgoing-request-cancel', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('outgoing-request-cancel scenario 6', solve('outgoing-request-cancel', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), ['p','q'])\ncheck('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)\ncheck('switch-authorization scenario 2', solve('switch-authorization', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), True)\ncheck('switch-authorization scenario 3', solve('switch-authorization', ('a','c',{},[],[('a','p')],'/a/doc',[])), False)\ncheck('switch-authorization scenario 4', solve('switch-authorization', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('switch-authorization scenario 5', solve('switch-authorization', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('switch-authorization scenario 6', solve('switch-authorization', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('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})\ncheck('draft-preservation-on-switch scenario 2', solve('draft-preservation-on-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), {'a':0})\ncheck('draft-preservation-on-switch scenario 3', solve('draft-preservation-on-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), {})\ncheck('draft-preservation-on-switch scenario 4', solve('draft-preservation-on-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), {'b':None})\ncheck('draft-preservation-on-switch scenario 5', solve('draft-preservation-on-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), {'b':False})\ncheck('draft-preservation-on-switch scenario 6', solve('draft-preservation-on-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), {'a':N})\ncheck('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')\ncheck('workspace-route-rewrite scenario 2', solve('workspace-route-rewrite', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), '/a')\ncheck('workspace-route-rewrite scenario 3', solve('workspace-route-rewrite', ('a','c',{},[],[('a','p')],'/a/doc',[])), '/c/doc')\ncheck('workspace-route-rewrite scenario 4', solve('workspace-route-rewrite', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), '/a')\ncheck('workspace-route-rewrite scenario 5', solve('workspace-route-rewrite', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), '/shared')\ncheck('workspace-route-rewrite scenario 6', solve('workspace-route-rewrite', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), '/b')\ncheck('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)\ncheck('same-workspace-no-switch scenario 2', solve('same-workspace-no-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), False)\ncheck('same-workspace-no-switch scenario 3', solve('same-workspace-no-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), True)\ncheck('same-workspace-no-switch scenario 4', solve('same-workspace-no-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('same-workspace-no-switch scenario 5', solve('same-workspace-no-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('same-workspace-no-switch scenario 6', solve('same-workspace-no-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('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')])\ncheck('resource-scope-key scenario 2', solve('resource-scope-key', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [('a','x')])\ncheck('resource-scope-key scenario 3', solve('resource-scope-key', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('resource-scope-key scenario 4', solve('resource-scope-key', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('resource-scope-key scenario 5', solve('resource-scope-key', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('resource-scope-key scenario 6', solve('resource-scope-key', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('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')\ncheck('forbidden-switch-retains-owner scenario 2', solve('forbidden-switch-retains-owner', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 3', solve('forbidden-switch-retains-owner', ('a','c',{},[],[('a','p')],'/a/doc',[])), 'a')\ncheck('forbidden-switch-retains-owner scenario 4', solve('forbidden-switch-retains-owner', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 5', solve('forbidden-switch-retains-owner', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), 'b')\ncheck('forbidden-switch-retains-owner scenario 6', solve('forbidden-switch-retains-owner', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), 'b')\ncheck('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')])\ncheck('pending-other-workspaces scenario 2', solve('pending-other-workspaces', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('pending-other-workspaces scenario 3', solve('pending-other-workspaces', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('pending-other-workspaces scenario 4', solve('pending-other-workspaces', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('pending-other-workspaces scenario 5', solve('pending-other-workspaces', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','p')])\ncheck('pending-other-workspaces scenario 6', solve('pending-other-workspaces', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"4e59054b38bf6f5a0334b5b8251a7d7b8608a787f8d0d857b8ba62481b29430e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    old, new, drafts, resources, pending, location, allowed = s\n    if operation == 'workspace-draft-selection':\n        return drafts.get(new)\n    if operation == 'outgoing-resource-detach':\n        return [(w,k) for w,k in resources if w!=old]\n    if operation == 'outgoing-request-cancel':\n        return [k for w,k in pending if w==old]\n    if operation == 'switch-authorization':\n        return new in allowed\n    if operation == 'draft-preservation-on-switch':\n        return dict(drafts)\n    if operation == 'workspace-route-rewrite':\n        return location\n    if operation == 'same-workspace-no-switch':\n        return old!=new\n    if operation == 'resource-scope-key':\n        return [(new,k) for w,k in resources if w==new]\n    if operation == 'forbidden-switch-retains-owner':\n        return new if new in allowed else old\n    if operation == 'pending-other-workspaces':\n        return [(w,k) for w,k in pending if w!=old]\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('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)\ncheck('workspace-draft-selection scenario 2', solve('workspace-draft-selection', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 0)\ncheck('workspace-draft-selection scenario 3', solve('workspace-draft-selection', ('a','c',{},[],[('a','p')],'/a/doc',[])), None)\ncheck('workspace-draft-selection scenario 4', solve('workspace-draft-selection', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), None)\ncheck('workspace-draft-selection scenario 5', solve('workspace-draft-selection', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), False)\ncheck('workspace-draft-selection scenario 6', solve('workspace-draft-selection', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), None)\ncheck('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')])\ncheck('outgoing-resource-detach scenario 2', solve('outgoing-resource-detach', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-resource-detach scenario 3', solve('outgoing-resource-detach', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('outgoing-resource-detach scenario 4', solve('outgoing-resource-detach', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-resource-detach scenario 5', solve('outgoing-resource-detach', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','x')])\ncheck('outgoing-resource-detach scenario 6', solve('outgoing-resource-detach', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('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'])\ncheck('outgoing-request-cancel scenario 2', solve('outgoing-request-cancel', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-request-cancel scenario 3', solve('outgoing-request-cancel', ('a','c',{},[],[('a','p')],'/a/doc',[])), ['p'])\ncheck('outgoing-request-cancel scenario 4', solve('outgoing-request-cancel', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-request-cancel scenario 5', solve('outgoing-request-cancel', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('outgoing-request-cancel scenario 6', solve('outgoing-request-cancel', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), ['p','q'])\ncheck('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)\ncheck('switch-authorization scenario 2', solve('switch-authorization', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), True)\ncheck('switch-authorization scenario 3', solve('switch-authorization', ('a','c',{},[],[('a','p')],'/a/doc',[])), False)\ncheck('switch-authorization scenario 4', solve('switch-authorization', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('switch-authorization scenario 5', solve('switch-authorization', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('switch-authorization scenario 6', solve('switch-authorization', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('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})\ncheck('draft-preservation-on-switch scenario 2', solve('draft-preservation-on-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), {'a':0})\ncheck('draft-preservation-on-switch scenario 3', solve('draft-preservation-on-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), {})\ncheck('draft-preservation-on-switch scenario 4', solve('draft-preservation-on-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), {'b':None})\ncheck('draft-preservation-on-switch scenario 5', solve('draft-preservation-on-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), {'b':False})\ncheck('draft-preservation-on-switch scenario 6', solve('draft-preservation-on-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), {'a':N})\ncheck('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')\ncheck('workspace-route-rewrite scenario 2', solve('workspace-route-rewrite', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), '/a')\ncheck('workspace-route-rewrite scenario 3', solve('workspace-route-rewrite', ('a','c',{},[],[('a','p')],'/a/doc',[])), '/c/doc')\ncheck('workspace-route-rewrite scenario 4', solve('workspace-route-rewrite', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), '/a')\ncheck('workspace-route-rewrite scenario 5', solve('workspace-route-rewrite', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), '/shared')\ncheck('workspace-route-rewrite scenario 6', solve('workspace-route-rewrite', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), '/b')\ncheck('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)\ncheck('same-workspace-no-switch scenario 2', solve('same-workspace-no-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), False)\ncheck('same-workspace-no-switch scenario 3', solve('same-workspace-no-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), True)\ncheck('same-workspace-no-switch scenario 4', solve('same-workspace-no-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('same-workspace-no-switch scenario 5', solve('same-workspace-no-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('same-workspace-no-switch scenario 6', solve('same-workspace-no-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('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')])\ncheck('resource-scope-key scenario 2', solve('resource-scope-key', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [('a','x')])\ncheck('resource-scope-key scenario 3', solve('resource-scope-key', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('resource-scope-key scenario 4', solve('resource-scope-key', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('resource-scope-key scenario 5', solve('resource-scope-key', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('resource-scope-key scenario 6', solve('resource-scope-key', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('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')\ncheck('forbidden-switch-retains-owner scenario 2', solve('forbidden-switch-retains-owner', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 3', solve('forbidden-switch-retains-owner', ('a','c',{},[],[('a','p')],'/a/doc',[])), 'a')\ncheck('forbidden-switch-retains-owner scenario 4', solve('forbidden-switch-retains-owner', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 5', solve('forbidden-switch-retains-owner', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), 'b')\ncheck('forbidden-switch-retains-owner scenario 6', solve('forbidden-switch-retains-owner', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), 'b')\ncheck('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')])\ncheck('pending-other-workspaces scenario 2', solve('pending-other-workspaces', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('pending-other-workspaces scenario 3', solve('pending-other-workspaces', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('pending-other-workspaces scenario 4', solve('pending-other-workspaces', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('pending-other-workspaces scenario 5', solve('pending-other-workspaces', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','p')])\ncheck('pending-other-workspaces scenario 6', solve('pending-other-workspaces', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-client-state-workspace-switch-workspace-route-rewrite","generated_at":"2026-09-29T14:40:53.881047+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.","root_cause":"The workspace-route-rewrite client decision evaluates `location` instead of `'/'+new+location[len('/'+old):] if location=='/'+old or location.startswith('/'+old+'/') else location`.","sha256":"92e1e0fb371a9ebfcea006603a8f26f9e7fcfde7015d70bbada470bf6dceba9b","title":"Application workspace switch transaction: Workspace route rewrite · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.906,"exit_code":1,"observations":[{"actual":2,"check":"workspace-draft-selection scenario 1","expected":2,"passed":true},{"actual":0,"check":"workspace-draft-selection scenario 2","expected":0,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 3","expected":null,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 4","expected":null,"passed":true},{"actual":false,"check":"workspace-draft-selection scenario 5","expected":false,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 6","expected":null,"passed":true},{"actual":[["b","y"]],"check":"outgoing-resource-detach scenario 1","expected":[["b","y"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 2","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 3","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 4","expected":[],"passed":true},{"actual":[["c","x"]],"check":"outgoing-resource-detach scenario 5","expected":[["c","x"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 6","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 1","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 2","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 3","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 4","expected":[],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 5","expected":[],"passed":true},{"actual":["p","q"],"check":"outgoing-request-cancel scenario 6","expected":["p","q"],"passed":true},{"actual":true,"check":"switch-authorization scenario 1","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 2","expected":true,"passed":true},{"actual":false,"check":"switch-authorization scenario 3","expected":false,"passed":true},{"actual":true,"check":"switch-authorization scenario 4","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 5","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 6","expected":true,"passed":true},{"actual":{"a":1,"b":2},"check":"draft-preservation-on-switch scenario 1","expected":{"a":1,"b":2},"passed":true},{"actual":{"a":0},"check":"draft-preservation-on-switch scenario 2","expected":{"a":0},"passed":true},{"actual":{},"check":"draft-preservation-on-switch scenario 3","expected":{},"passed":true},{"actual":{"b":null},"check":"draft-preservation-on-switch scenario 4","expected":{"b":null},"passed":true},{"actual":{"b":false},"check":"draft-preservation-on-switch scenario 5","expected":{"b":false},"passed":true},{"actual":{"a":1},"check":"draft-preservation-on-switch scenario 6","expected":{"a":1},"passed":true},{"actual":"/b","check":"workspace-route-rewrite scenario 1","expected":"/b/doc","passed":false},{"actual":"/a","check":"workspace-route-rewrite scenario 2","expected":"/a","passed":true},{"actual":"/c","check":"workspace-route-rewrite scenario 3","expected":"/c/doc","passed":false},{"actual":"/a","check":"workspace-route-rewrite scenario 4","expected":"/a","passed":true},{"actual":"/b","check":"workspace-route-rewrite scenario 5","expected":"/shared","passed":false},{"actual":"/b","check":"workspace-route-rewrite scenario 6","expected":"/b","passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 1","expected":true,"passed":true},{"actual":false,"check":"same-workspace-no-switch scenario 2","expected":false,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 3","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 4","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 5","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 6","expected":true,"passed":true},{"actual":[["b","y"]],"check":"resource-scope-key scenario 1","expected":[["b","y"]],"passed":true},{"actual":[["a","x"]],"check":"resource-scope-key scenario 2","expected":[["a","x"]],"passed":true},{"actual":[],"check":"resource-scope-key scenario 3","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 4","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 5","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 6","expected":[],"passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 1","expected":"b","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 2","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 3","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 4","expected":"a","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 5","expected":"b","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 6","expected":"b","passed":true},{"actual":[["b","q"]],"check":"pending-other-workspaces scenario 1","expected":[["b","q"]],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 2","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 3","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 4","expected":[],"passed":true},{"actual":[["c","p"]],"check":"pending-other-workspaces scenario 5","expected":[["c","p"]],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 6","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace-draft-selection scenario 1\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 5\", \"actual\": [[\"c\", \"x\"]], \"expected\": [[\"c\", \"x\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 1\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 3\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 6\", \"actual\": [\"p\", \"q\"], \"expected\": [\"p\", \"q\"], \"passed\": true}, {\"check\": \"switch-authorization scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"switch-authorization scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 1\", \"actual\": {\"a\": 1, \"b\": 2}, \"expected\": {\"a\": 1, \"b\": 2}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 2\", \"actual\": {\"a\": 0}, \"expected\": {\"a\": 0}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 4\", \"actual\": {\"b\": null}, \"expected\": {\"b\": null}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 5\", \"actual\": {\"b\": false}, \"expected\": {\"b\": false}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 6\", \"actual\": {\"a\": 1}, \"expected\": {\"a\": 1}, \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 1\", \"actual\": \"/b\", \"expected\": \"/b/doc\", \"passed\": false}, {\"check\": \"workspace-route-rewrite scenario 2\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 3\", \"actual\": \"/c\", \"expected\": \"/c/doc\", \"passed\": false}, {\"check\": \"workspace-route-rewrite scenario 4\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 5\", \"actual\": \"/b\", \"expected\": \"/shared\", \"passed\": false}, {\"check\": \"workspace-route-rewrite scenario 6\", \"actual\": \"/b\", \"expected\": \"/b\", \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-scope-key scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 2\", \"actual\": [[\"a\", \"x\"]], \"expected\": [[\"a\", \"x\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 1\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 2\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 3\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 4\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 5\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 6\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 1\", \"actual\": [[\"b\", \"q\"]], \"expected\": [[\"b\", \"q\"]], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 5\", \"actual\": [[\"c\", \"p\"]], \"expected\": [[\"c\", \"p\"]], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.074,"exit_code":1,"observations":[{"actual":2,"check":"workspace-draft-selection scenario 1","expected":2,"passed":true},{"actual":0,"check":"workspace-draft-selection scenario 2","expected":0,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 3","expected":null,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 4","expected":null,"passed":true},{"actual":false,"check":"workspace-draft-selection scenario 5","expected":false,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 6","expected":null,"passed":true},{"actual":[["b","y"]],"check":"outgoing-resource-detach scenario 1","expected":[["b","y"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 2","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 3","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 4","expected":[],"passed":true},{"actual":[["c","x"]],"check":"outgoing-resource-detach scenario 5","expected":[["c","x"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 6","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 1","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 2","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 3","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 4","expected":[],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 5","expected":[],"passed":true},{"actual":["p","q"],"check":"outgoing-request-cancel scenario 6","expected":["p","q"],"passed":true},{"actual":true,"check":"switch-authorization scenario 1","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 2","expected":true,"passed":true},{"actual":false,"check":"switch-authorization scenario 3","expected":false,"passed":true},{"actual":true,"check":"switch-authorization scenario 4","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 5","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 6","expected":true,"passed":true},{"actual":{"a":1,"b":2},"check":"draft-preservation-on-switch scenario 1","expected":{"a":1,"b":2},"passed":true},{"actual":{"a":0},"check":"draft-preservation-on-switch scenario 2","expected":{"a":0},"passed":true},{"actual":{},"check":"draft-preservation-on-switch scenario 3","expected":{},"passed":true},{"actual":{"b":null},"check":"draft-preservation-on-switch scenario 4","expected":{"b":null},"passed":true},{"actual":{"b":false},"check":"draft-preservation-on-switch scenario 5","expected":{"b":false},"passed":true},{"actual":{"a":1},"check":"draft-preservation-on-switch scenario 6","expected":{"a":1},"passed":true},{"actual":"/a/doc","check":"workspace-route-rewrite scenario 1","expected":"/b/doc","passed":false},{"actual":"/a","check":"workspace-route-rewrite scenario 2","expected":"/a","passed":true},{"actual":"/a/doc","check":"workspace-route-rewrite scenario 3","expected":"/c/doc","passed":false},{"actual":"/b","check":"workspace-route-rewrite scenario 4","expected":"/a","passed":false},{"actual":"/shared","check":"workspace-route-rewrite scenario 5","expected":"/shared","passed":true},{"actual":"/a","check":"workspace-route-rewrite scenario 6","expected":"/b","passed":false},{"actual":true,"check":"same-workspace-no-switch scenario 1","expected":true,"passed":true},{"actual":false,"check":"same-workspace-no-switch scenario 2","expected":false,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 3","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 4","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 5","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 6","expected":true,"passed":true},{"actual":[["b","y"]],"check":"resource-scope-key scenario 1","expected":[["b","y"]],"passed":true},{"actual":[["a","x"]],"check":"resource-scope-key scenario 2","expected":[["a","x"]],"passed":true},{"actual":[],"check":"resource-scope-key scenario 3","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 4","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 5","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 6","expected":[],"passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 1","expected":"b","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 2","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 3","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 4","expected":"a","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 5","expected":"b","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 6","expected":"b","passed":true},{"actual":[["b","q"]],"check":"pending-other-workspaces scenario 1","expected":[["b","q"]],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 2","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 3","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 4","expected":[],"passed":true},{"actual":[["c","p"]],"check":"pending-other-workspaces scenario 5","expected":[["c","p"]],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 6","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace-draft-selection scenario 1\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 5\", \"actual\": [[\"c\", \"x\"]], \"expected\": [[\"c\", \"x\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 1\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 3\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 6\", \"actual\": [\"p\", \"q\"], \"expected\": [\"p\", \"q\"], \"passed\": true}, {\"check\": \"switch-authorization scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"switch-authorization scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 1\", \"actual\": {\"a\": 1, \"b\": 2}, \"expected\": {\"a\": 1, \"b\": 2}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 2\", \"actual\": {\"a\": 0}, \"expected\": {\"a\": 0}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 4\", \"actual\": {\"b\": null}, \"expected\": {\"b\": null}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 5\", \"actual\": {\"b\": false}, \"expected\": {\"b\": false}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 6\", \"actual\": {\"a\": 1}, \"expected\": {\"a\": 1}, \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 1\", \"actual\": \"/a/doc\", \"expected\": \"/b/doc\", \"passed\": false}, {\"check\": \"workspace-route-rewrite scenario 2\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 3\", \"actual\": \"/a/doc\", \"expected\": \"/c/doc\", \"passed\": false}, {\"check\": \"workspace-route-rewrite scenario 4\", \"actual\": \"/b\", \"expected\": \"/a\", \"passed\": false}, {\"check\": \"workspace-route-rewrite scenario 5\", \"actual\": \"/shared\", \"expected\": \"/shared\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 6\", \"actual\": \"/a\", \"expected\": \"/b\", \"passed\": false}, {\"check\": \"same-workspace-no-switch scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-scope-key scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 2\", \"actual\": [[\"a\", \"x\"]], \"expected\": [[\"a\", \"x\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 1\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 2\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 3\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 4\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 5\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 6\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 1\", \"actual\": [[\"b\", \"q\"]], \"expected\": [[\"b\", \"q\"]], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 5\", \"actual\": [[\"c\", \"p\"]], \"expected\": [[\"c\", \"p\"]], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}