{"abstract":"The tab workspace reports an incorrect per pane scroll retention.","category":"Tab interfaces","checks":7,"contract":"Maximizing a pane temporarily hides peers without changing split tree weights. Restoring returns saved divider positions, panel scroll positions and active pane.","contract_signature":"x","evaluation_group":"s3-tabs-maximize-pane-restore","failed_approach":"The partial repair {x['maximized']:x['scroll'][x['maximized']]} still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-maximize-pane-restore-per-pane-scroll-retention","id":"FA-36351","implementations":{"attempt":{"sha256":"eb03582e234cfc63116885507dcd4c640ad36117c4a63684197ae96e8e7678c1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['panes'] if x['restore'] else [x['maximized']]\n    r1 = x['saved_weights']\n    r2 = x['panes']\n    r3 = [] if x['restore'] else [p for p in x['panes'] if p!=x['maximized']]\n    r4 = {x['maximized']:x['scroll'][x['maximized']]}\n    r5 = x['active'] if x['restore'] else x['maximized']\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: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 20, 'q': 40, 'r': 60}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 20, 'q': 40, 'r': 60}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 20, 'q': 40, 'r': 60}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 20, 'q': 40, 'r': 60}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 1, 'r': 2}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 1, 'r': 2}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 20, 'q': 40, 'r': 60}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 20, 'q': 40, 'r': 60}, 'r'])], 2: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 40, 'q': 80, 'r': 120}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 40, 'q': 80, 'r': 120}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 40, 'q': 80, 'r': 120}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 40, 'q': 80, 'r': 120}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 2, 'r': 4}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 2, 'r': 4}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 40, 'q': 80, 'r': 120}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 40, 'q': 80, 'r': 120}, 'r'])], 3: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 60, 'q': 120, 'r': 180}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 60, 'q': 120, 'r': 180}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 60, 'q': 120, 'r': 180}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 60, 'q': 120, 'r': 180}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 3, 'r': 6}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 3, 'r': 6}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 60, 'q': 120, 'r': 180}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 60, 'q': 120, 'r': 180}, 'r'])], 4: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 80, 'q': 160, 'r': 240}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 80, 'q': 160, 'r': 240}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 80, 'q': 160, 'r': 240}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 80, 'q': 160, 'r': 240}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 4, 'r': 8}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 4, 'r': 8}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 80, 'q': 160, 'r': 240}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 80, 'q': 160, 'r': 240}, 'r'])], 5: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 100, 'q': 200, 'r': 300}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 100, 'q': 200, 'r': 300}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 100, 'q': 200, 'r': 300}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 100, 'q': 200, 'r': 300}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 5, 'r': 10}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 5, 'r': 10}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 100, 'q': 200, 'r': 300}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 100, 'q': 200, 'r': 300}, 'r'])]}\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":"c8611e72e6dcd24f76ed6150cb44e97a0d0b0ae339f49dab3a561f6cb12f2cfb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['panes'] if x['restore'] else [x['maximized']]\n    r1 = x['saved_weights']\n    r2 = x['panes']\n    r3 = [] if x['restore'] else [p for p in x['panes'] if p!=x['maximized']]\n    r4 = {p:0 for p in x['panes']}\n    r5 = x['active'] if x['restore'] else x['maximized']\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: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 20, 'q': 40, 'r': 60}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 20, 'q': 40, 'r': 60}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 20, 'q': 40, 'r': 60}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 20, 'q': 40, 'r': 60}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 1, 'r': 2}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 1, 'r': 2}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 20, 'q': 40, 'r': 60}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 20, 'q': 40, 'r': 60}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 20, 'q': 40, 'r': 60}, 'r'])], 2: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 40, 'q': 80, 'r': 120}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 40, 'q': 80, 'r': 120}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 40, 'q': 80, 'r': 120}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 40, 'q': 80, 'r': 120}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 2, 'r': 4}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 2, 'r': 4}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 40, 'q': 80, 'r': 120}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 40, 'q': 80, 'r': 120}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 40, 'q': 80, 'r': 120}, 'r'])], 3: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 60, 'q': 120, 'r': 180}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 60, 'q': 120, 'r': 180}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 60, 'q': 120, 'r': 180}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 60, 'q': 120, 'r': 180}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 3, 'r': 6}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 3, 'r': 6}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 60, 'q': 120, 'r': 180}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 60, 'q': 120, 'r': 180}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 60, 'q': 120, 'r': 180}, 'r'])], 4: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 80, 'q': 160, 'r': 240}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 80, 'q': 160, 'r': 240}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 80, 'q': 160, 'r': 240}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 80, 'q': 160, 'r': 240}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 4, 'r': 8}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 4, 'r': 8}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 80, 'q': 160, 'r': 240}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 80, 'q': 160, 'r': 240}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 80, 'q': 160, 'r': 240}, 'r'])], 5: [({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 100, 'q': 200, 'r': 300}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'q'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 100, 'q': 200, 'r': 300}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'p', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'q'}, [['p'], [2, 3, 5], ['p', 'q', 'r'], ['q', 'r'], {'p': 100, 'q': 200, 'r': 300}, 'p']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [1, 1, 1], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 100, 'q': 200, 'r': 300}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 0, 'q': 5, 'r': 10}, 'active': 'q'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 0, 'q': 5, 'r': 10}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': False, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'r'}, [['q'], [2, 3, 5], ['p', 'q', 'r'], ['p', 'r'], {'p': 100, 'q': 200, 'r': 300}, 'q']), ({'panes': ['p', 'q', 'r'], 'maximized': 'q', 'weights': [2, 3, 5], 'saved_weights': [2, 3, 5], 'restore': True, 'scroll': {'p': 100, 'q': 200, 'r': 300}, 'active': 'r'}, [['p', 'q', 'r'], [2, 3, 5], ['p', 'q', 'r'], [], {'p': 100, 'q': 200, 'r': 300}, 'r'])]}\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-maximize-pane-restore-per-pane-scroll-retention","generated_at":"2026-09-29T14:42:50.420865+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 per pane scroll retention decision uses {p:0 for p in x['panes']} instead of x['scroll'].","sha256":"1ac475849a162a23bc6ebe480462783a41da1d5dc175b16e4d8ae8f6e6033000","title":"Maximize pane restore: per pane scroll retention · 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":40.533,"exit_code":1,"observations":[{"actual":[["q"],[2,3,5],["p","q","r"],["p","r"],{"q":40},"q"],"check":"workspace regression 0","expected":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":20,"q":40,"r":60},"q"],"passed":false},{"actual":[["p","q","r"],[2,3,5],["p","q","r"],[],{"q":40},"q"],"check":"workspace regression 1","expected":[["p","q","r"],[2,3,5],["p","q","r"],[],{"p":20,"q":40,"r":60},"q"],"passed":false},{"actual":[["p"],[2,3,5],["p","q","r"],["q","r"],{"p":20},"p"],"check":"workspace regression 2","expected":[["p"],[2,3,5],["p","q","r"],["q","r"],{"p":20,"q":40,"r":60},"p"],"passed":false},{"actual":[["q"],[2,3,5],["p","q","r"],["p","r"],{"q":40},"q"],"check":"workspace regression 3","expected":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":20,"q":40,"r":60},"q"],"passed":false},{"actual":[["q"],[2,3,5],["p","q","r"],["p","r"],{"q":1},"q"],"check":"workspace regression 4","expected":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":0,"q":1,"r":2},"q"],"passed":false},{"actual":[["q"],[2,3,5],["p","q","r"],["p","r"],{"q":40},"q"],"check":"workspace regression 5","expected":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":20,"q":40,"r":60},"q"],"passed":false},{"actual":[["p","q","r"],[2,3,5],["p","q","r"],[],{"q":40},"r"],"check":"workspace regression 6","expected":[["p","q","r"],[2,3,5],["p","q","r"],[],{"p":20,"q":40,"r":60},"r"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"q\": 40}, \"q\"], \"expected\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 20, \"q\": 40, \"r\": 60}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [[\"p\", \"q\", \"r\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [], {\"q\": 40}, \"q\"], \"expected\": [[\"p\", \"q\", \"r\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [], {\"p\": 20, \"q\": 40, \"r\": 60}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [[\"p\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"q\", \"r\"], {\"p\": 20}, \"p\"], \"expected\": [[\"p\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"q\", \"r\"], {\"p\": 20, \"q\": 40, \"r\": 60}, \"p\"], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"q\": 40}, \"q\"], \"expected\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 20, \"q\": 40, \"r\": 60}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"q\": 1}, \"q\"], \"expected\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 0, \"q\": 1, \"r\": 2}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"q\": 40}, \"q\"], \"expected\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 20, \"q\": 40, \"r\": 60}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 6\", \"actual\": [[\"p\", \"q\", \"r\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [], {\"q\": 40}, \"r\"], \"expected\": [[\"p\", \"q\", \"r\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [], {\"p\": 20, \"q\": 40, \"r\": 60}, \"r\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.716,"exit_code":1,"observations":[{"actual":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":0,"q":0,"r":0},"q"],"check":"workspace regression 0","expected":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":20,"q":40,"r":60},"q"],"passed":false},{"actual":[["p","q","r"],[2,3,5],["p","q","r"],[],{"p":0,"q":0,"r":0},"q"],"check":"workspace regression 1","expected":[["p","q","r"],[2,3,5],["p","q","r"],[],{"p":20,"q":40,"r":60},"q"],"passed":false},{"actual":[["p"],[2,3,5],["p","q","r"],["q","r"],{"p":0,"q":0,"r":0},"p"],"check":"workspace regression 2","expected":[["p"],[2,3,5],["p","q","r"],["q","r"],{"p":20,"q":40,"r":60},"p"],"passed":false},{"actual":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":0,"q":0,"r":0},"q"],"check":"workspace regression 3","expected":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":20,"q":40,"r":60},"q"],"passed":false},{"actual":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":0,"q":0,"r":0},"q"],"check":"workspace regression 4","expected":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":0,"q":1,"r":2},"q"],"passed":false},{"actual":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":0,"q":0,"r":0},"q"],"check":"workspace regression 5","expected":[["q"],[2,3,5],["p","q","r"],["p","r"],{"p":20,"q":40,"r":60},"q"],"passed":false},{"actual":[["p","q","r"],[2,3,5],["p","q","r"],[],{"p":0,"q":0,"r":0},"r"],"check":"workspace regression 6","expected":[["p","q","r"],[2,3,5],["p","q","r"],[],{"p":20,"q":40,"r":60},"r"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 0, \"q\": 0, \"r\": 0}, \"q\"], \"expected\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 20, \"q\": 40, \"r\": 60}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [[\"p\", \"q\", \"r\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [], {\"p\": 0, \"q\": 0, \"r\": 0}, \"q\"], \"expected\": [[\"p\", \"q\", \"r\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [], {\"p\": 20, \"q\": 40, \"r\": 60}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [[\"p\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"q\", \"r\"], {\"p\": 0, \"q\": 0, \"r\": 0}, \"p\"], \"expected\": [[\"p\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"q\", \"r\"], {\"p\": 20, \"q\": 40, \"r\": 60}, \"p\"], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 0, \"q\": 0, \"r\": 0}, \"q\"], \"expected\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 20, \"q\": 40, \"r\": 60}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 0, \"q\": 0, \"r\": 0}, \"q\"], \"expected\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 0, \"q\": 1, \"r\": 2}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 0, \"q\": 0, \"r\": 0}, \"q\"], \"expected\": [[\"q\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [\"p\", \"r\"], {\"p\": 20, \"q\": 40, \"r\": 60}, \"q\"], \"passed\": false}, {\"check\": \"workspace regression 6\", \"actual\": [[\"p\", \"q\", \"r\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [], {\"p\": 0, \"q\": 0, \"r\": 0}, \"r\"], \"expected\": [[\"p\", \"q\", \"r\"], [2, 3, 5], [\"p\", \"q\", \"r\"], [], {\"p\": 20, \"q\": 40, \"r\": 60}, \"r\"], \"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."}}