{"abstract":"The tab workspace reports an incorrect document link scope.","category":"Tab interfaces","checks":6,"contract":"Linked views of one document synchronize only scroll events from the elected source; map proportional content positions into the peer range and suppress echoed tokens.","evaluation_group":"s3-tabs-linked-pane-scroll","failed_approach":"The partial repair x['doc'] is None still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-linked-pane-scroll-document-link-scope","id":"FA-35856","implementations":{"attempt":{"sha256":"0bf8a1c37a1cfbc7daf5a9cd5ba43219e0bfb4cab7f1b0ad30cc5de123c107f1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['event_view']==x['source']\n    r1 = x['doc'] is None\n    r2 = x['token']!=x['last']\n    r3 = x['scroll']*x['peer_range']//x['source_range']\n    r4 = min(x['peer_range'],max(0,x['scroll']*x['peer_range']//x['source_range']))\n    r5 = x['token']\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: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, True, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [False, True, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, False, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 3, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, True, False, 100, 100, 3]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 0, 'source_range': 100, 'peer_range': 250}, [True, True, True, 0, 0, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 100, 'source_range': 100, 'peer_range': 250}, [True, True, True, 250, 250, 4])], 2: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, True, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [False, True, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, False, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 6, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, True, False, 200, 200, 6]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 0, 'source_range': 200, 'peer_range': 500}, [True, True, True, 0, 0, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 200, 'source_range': 200, 'peer_range': 500}, [True, True, True, 500, 500, 8])], 3: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, True, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [False, True, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, False, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 9, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, True, False, 300, 300, 9]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 0, 'source_range': 300, 'peer_range': 750}, [True, True, True, 0, 0, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 300, 'source_range': 300, 'peer_range': 750}, [True, True, True, 750, 750, 12])], 4: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [False, True, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, False, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, True, False, 400, 400, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 0, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 0, 0, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 400, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 1000, 1000, 16])], 5: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [False, True, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, False, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 15, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, True, False, 500, 500, 15]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 0, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 0, 0, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 500, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 1250, 1250, 20])]}\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":"870b56089581ed5f5b906ef6e8640053c3f55d5473b97874763b1cbc3692d931","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['event_view']==x['source']\n    r1 = True\n    r2 = x['token']!=x['last']\n    r3 = x['scroll']*x['peer_range']//x['source_range']\n    r4 = min(x['peer_range'],max(0,x['scroll']*x['peer_range']//x['source_range']))\n    r5 = x['token']\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: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, True, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [False, True, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, False, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 3, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, True, False, 100, 100, 3]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 0, 'source_range': 100, 'peer_range': 250}, [True, True, True, 0, 0, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 100, 'source_range': 100, 'peer_range': 250}, [True, True, True, 250, 250, 4])], 2: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, True, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [False, True, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, False, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 6, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, True, False, 200, 200, 6]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 0, 'source_range': 200, 'peer_range': 500}, [True, True, True, 0, 0, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 200, 'source_range': 200, 'peer_range': 500}, [True, True, True, 500, 500, 8])], 3: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, True, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [False, True, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, False, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 9, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, True, False, 300, 300, 9]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 0, 'source_range': 300, 'peer_range': 750}, [True, True, True, 0, 0, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 300, 'source_range': 300, 'peer_range': 750}, [True, True, True, 750, 750, 12])], 4: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [False, True, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, False, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, True, False, 400, 400, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 0, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 0, 0, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 400, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 1000, 1000, 16])], 5: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [False, True, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, False, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 15, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, True, False, 500, 500, 15]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 0, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 0, 0, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 500, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 1250, 1250, 20])]}\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"},"fixed":{"sha256":"8b7c65341074705a361da484f48e02a22dbd87888632c6f8e0061a3a6d96df15","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['event_view']==x['source']\n    r1 = x['doc']==x['peer_doc']\n    r2 = x['token']!=x['last']\n    r3 = x['scroll']*x['peer_range']//x['source_range']\n    r4 = min(x['peer_range'],max(0,x['scroll']*x['peer_range']//x['source_range']))\n    r5 = x['token']\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: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, True, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [False, True, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 4, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, False, True, 100, 100, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 3, 'last': 3, 'scroll': 40, 'source_range': 100, 'peer_range': 250}, [True, True, False, 100, 100, 3]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 0, 'source_range': 100, 'peer_range': 250}, [True, True, True, 0, 0, 4]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 4, 'last': 3, 'scroll': 100, 'source_range': 100, 'peer_range': 250}, [True, True, True, 250, 250, 4])], 2: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, True, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [False, True, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 8, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, False, True, 200, 200, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 6, 'last': 6, 'scroll': 80, 'source_range': 200, 'peer_range': 500}, [True, True, False, 200, 200, 6]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 0, 'source_range': 200, 'peer_range': 500}, [True, True, True, 0, 0, 8]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 8, 'last': 6, 'scroll': 200, 'source_range': 200, 'peer_range': 500}, [True, True, True, 500, 500, 8])], 3: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, True, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [False, True, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 12, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, False, True, 300, 300, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 9, 'last': 9, 'scroll': 120, 'source_range': 300, 'peer_range': 750}, [True, True, False, 300, 300, 9]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 0, 'source_range': 300, 'peer_range': 750}, [True, True, True, 0, 0, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 9, 'scroll': 300, 'source_range': 300, 'peer_range': 750}, [True, True, True, 750, 750, 12])], 4: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [False, True, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 16, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, False, True, 400, 400, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 12, 'last': 12, 'scroll': 160, 'source_range': 400, 'peer_range': 1000}, [True, True, False, 400, 400, 12]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 0, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 0, 0, 16]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 16, 'last': 12, 'scroll': 400, 'source_range': 400, 'peer_range': 1000}, [True, True, True, 1000, 1000, 16])], 5: [({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'b', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [False, True, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'e', 'token': 20, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, False, True, 500, 500, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 15, 'last': 15, 'scroll': 200, 'source_range': 500, 'peer_range': 1250}, [True, True, False, 500, 500, 15]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 0, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 0, 0, 20]), ({'source': 'a', 'event_view': 'a', 'doc': 'd', 'peer_doc': 'd', 'token': 20, 'last': 15, 'scroll': 500, 'source_range': 500, 'peer_range': 1250}, [True, True, True, 1250, 1250, 20])]}\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-linked-pane-scroll-document-link-scope","generated_at":"2026-09-29T14:42:45.589722+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.","repair":"Use the stipulated workspace rule: x['doc']==x['peer_doc'].","root_cause":"The document link scope decision uses True instead of x['doc']==x['peer_doc'].","sha256":"fa47d4a719e838c65f187e063fd85afbac31d9fde0f73563b0159f823d6bb20f","title":"Linked pane scroll: document link scope · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.863,"exit_code":1,"observations":[{"actual":[true,false,true,100,100,4],"check":"workspace regression 0","expected":[true,true,true,100,100,4],"passed":false},{"actual":[false,false,true,100,100,4],"check":"workspace regression 1","expected":[false,true,true,100,100,4],"passed":false},{"actual":[true,false,true,100,100,4],"check":"workspace regression 2","expected":[true,false,true,100,100,4],"passed":true},{"actual":[true,false,false,100,100,3],"check":"workspace regression 3","expected":[true,true,false,100,100,3],"passed":false},{"actual":[true,false,true,0,0,4],"check":"workspace regression 4","expected":[true,true,true,0,0,4],"passed":false},{"actual":[true,false,true,250,250,4],"check":"workspace regression 5","expected":[true,true,true,250,250,4],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, false, true, 100, 100, 4], \"expected\": [true, true, true, 100, 100, 4], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [false, false, true, 100, 100, 4], \"expected\": [false, true, true, 100, 100, 4], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [true, false, true, 100, 100, 4], \"expected\": [true, false, true, 100, 100, 4], \"passed\": true}, {\"check\": \"workspace regression 3\", \"actual\": [true, false, false, 100, 100, 3], \"expected\": [true, true, false, 100, 100, 3], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [true, false, true, 0, 0, 4], \"expected\": [true, true, true, 0, 0, 4], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [true, false, true, 250, 250, 4], \"expected\": [true, true, true, 250, 250, 4], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.59,"exit_code":1,"observations":[{"actual":[true,true,true,100,100,4],"check":"workspace regression 0","expected":[true,true,true,100,100,4],"passed":true},{"actual":[false,true,true,100,100,4],"check":"workspace regression 1","expected":[false,true,true,100,100,4],"passed":true},{"actual":[true,true,true,100,100,4],"check":"workspace regression 2","expected":[true,false,true,100,100,4],"passed":false},{"actual":[true,true,false,100,100,3],"check":"workspace regression 3","expected":[true,true,false,100,100,3],"passed":true},{"actual":[true,true,true,0,0,4],"check":"workspace regression 4","expected":[true,true,true,0,0,4],"passed":true},{"actual":[true,true,true,250,250,4],"check":"workspace regression 5","expected":[true,true,true,250,250,4],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, true, true, 100, 100, 4], \"expected\": [true, true, true, 100, 100, 4], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [false, true, true, 100, 100, 4], \"expected\": [false, true, true, 100, 100, 4], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [true, true, true, 100, 100, 4], \"expected\": [true, false, true, 100, 100, 4], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [true, true, false, 100, 100, 3], \"expected\": [true, true, false, 100, 100, 3], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [true, true, true, 0, 0, 4], \"expected\": [true, true, true, 0, 0, 4], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [true, true, true, 250, 250, 4], \"expected\": [true, true, true, 250, 250, 4], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.825,"exit_code":0,"observations":[{"actual":[true,true,true,100,100,4],"check":"workspace regression 0","expected":[true,true,true,100,100,4],"passed":true},{"actual":[false,true,true,100,100,4],"check":"workspace regression 1","expected":[false,true,true,100,100,4],"passed":true},{"actual":[true,false,true,100,100,4],"check":"workspace regression 2","expected":[true,false,true,100,100,4],"passed":true},{"actual":[true,true,false,100,100,3],"check":"workspace regression 3","expected":[true,true,false,100,100,3],"passed":true},{"actual":[true,true,true,0,0,4],"check":"workspace regression 4","expected":[true,true,true,0,0,4],"passed":true},{"actual":[true,true,true,250,250,4],"check":"workspace regression 5","expected":[true,true,true,250,250,4],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [true, true, true, 100, 100, 4], \"expected\": [true, true, true, 100, 100, 4], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [false, true, true, 100, 100, 4], \"expected\": [false, true, true, 100, 100, 4], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [true, false, true, 100, 100, 4], \"expected\": [true, false, true, 100, 100, 4], \"passed\": true}, {\"check\": \"workspace regression 3\", \"actual\": [true, true, false, 100, 100, 3], \"expected\": [true, true, false, 100, 100, 3], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [true, true, true, 0, 0, 4], \"expected\": [true, true, true, 0, 0, 4], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [true, true, true, 250, 250, 4], \"expected\": [true, true, true, 250, 250, 4], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}