{"abstract":"The tab workspace reports an incorrect rename retains view ids.","category":"Tab interfaces","checks":6,"contract":"Renaming an open document updates path and basename for every view of that document while retaining view IDs, dirty state and unrelated document labels.","contract_signature":"x","evaluation_group":"s3-tabs-open-document-rename","failed_approach":"The partial repair list(x['views'].values()) still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-open-document-rename-rename-retains-view-ids","id":"FA-36256","implementations":{"attempt":{"sha256":"9bcade703fac8f3ea503b314cc25ee4876b8be538263bdc7014603a4102b2e8a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = [v for v,d in x['views'].items() if d==x['renamed']]\n    r1 = x['new_path'].rsplit('/',1)[-1]\n    r2 = {d:(x['new_path'] if d==x['renamed'] else p) for d,p in x['paths'].items()}\n    r3 = list(x['views'].values())\n    r4 = x['dirty']\n    r5 = x['active']\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3'])], 2: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3'])], 3: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3'])], 4: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3'])], 5: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e', 'extra3': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2', 'extra3'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3'])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), expected)\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":"db71befa8616f3d40cfb0c0540d2e3c40b1e8b844fb91af87f4b5597bcdb8369","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = [v for v,d in x['views'].items() if d==x['renamed']]\n    r1 = x['new_path'].rsplit('/',1)[-1]\n    r2 = {d:(x['new_path'] if d==x['renamed'] else p) for d,p in x['paths'].items()}\n    r3 = [x['new_path']]\n    r4 = x['dirty']\n    r5 = x['active']\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3'])], 2: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3'])], 3: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3'])], 4: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3'])], 5: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e', 'extra3': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2', 'extra3'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3'])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), expected)\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":"Finite stipulated workspace snapshots only. Independent result fields describe observable obligations, not a full UI runtime. 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-tab-interfaces-open-document-rename-rename-retains-view-ids","generated_at":"2026-09-29T14:42:49.632375+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline tab/panel workspace behavior; no browser or desktop framework is emulated.","root_cause":"The rename retains view ids decision uses [x['new_path']] instead of list(x['views']).","sha256":"66d847fcbac425c8db4862f5eec75480558eeaf452c39cf71f8012e52b00af22","title":"Open document rename: rename retains view ids · 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":45.578,"exit_code":1,"observations":[{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["d","e","d"],["d"],"v3"],"check":"workspace regression 0","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v2"],"z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["d","e","d"],["d"],"v3"],"check":"workspace regression 1","expected":[["v2"],"z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["d","e","d"],[],"v3"],"check":"workspace regression 2","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],[],"v3"],"passed":false},{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["d","e","d"],["d"],"v2"],"check":"workspace regression 3","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v2"],"passed":false},{"actual":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["d","e","d"],["d"],"v3"],"check":"workspace regression 4","expected":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v1","v3"],"report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["d","e","d"],["d"],"v3"],"check":"workspace regression 5","expected":[["v1","v3"],"report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"d\", \"e\", \"d\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [[\"v2\"], \"z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"d\", \"e\", \"d\"], [\"d\"], \"v3\"], \"expected\": [[\"v2\"], \"z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"d\", \"e\", \"d\"], [], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"d\", \"e\", \"d\"], [\"d\"], \"v2\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v2\"], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"d\", \"e\", \"d\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [[\"v1\", \"v3\"], \"report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"d\", \"e\", \"d\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.395,"exit_code":1,"observations":[{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["/new/c.txt"],["d"],"v3"],"check":"workspace regression 0","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v2"],"z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["/new/z.txt"],["d"],"v3"],"check":"workspace regression 1","expected":[["v2"],"z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["/new/c.txt"],[],"v3"],"check":"workspace regression 2","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],[],"v3"],"passed":false},{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["/new/c.txt"],["d"],"v2"],"check":"workspace regression 3","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v2"],"passed":false},{"actual":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["c.txt"],["d"],"v3"],"check":"workspace regression 4","expected":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v1","v3"],"report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["/deep/path/report.md"],["d"],"v3"],"check":"workspace regression 5","expected":[["v1","v3"],"report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"/new/c.txt\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [[\"v2\"], \"z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"/new/z.txt\"], [\"d\"], \"v3\"], \"expected\": [[\"v2\"], \"z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"/new/c.txt\"], [], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"/new/c.txt\"], [\"d\"], \"v2\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v2\"], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"c.txt\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [[\"v1\", \"v3\"], \"report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"/deep/path/report.md\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}], \"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."}}