{"abstract":"The saved state aliases a mutable color list and changes when current state changes.","category":"Rendering state","checks":4,"contract":"State maps names to flat lists and contains four-channel color. Save a snapshot, mutate a current color channel, and return the untouched full snapshot; do not mutate input.","evaluation_group":"xg-state-push-deep-copy","failed_approach":"Saving only color omits viewport and other render state from restoration.","family":"xg-state-push-deep-copy","id":"FA-10681","implementations":{"attempt":{"sha256":"cc53b05a9ba28ba8bee42b10c80343ff19d30ecf68bfe0d9cad5a6acfd35ed4b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(state, channel, value):\n    return {'color':list(state['color'])}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*({'color': [1, 2, 3, 4], 'viewport': [0, 0, 8, 8]}, 0, 9)), {'color': [1, 2, 3, 4], 'viewport': [0, 0, 8, 8]})\ncheck('fixture 2', solve(*({'color': [0, 0, 0, 0]}, 3, 5)), {'color': [0, 0, 0, 0]})\ncheck('fixture 3', solve(*({'color': [1, 1, 1, 1], 'other': [2]}, 1, 7)), {'color': [1, 1, 1, 1], 'other': [2]})\ncheck('fixture 4', solve(*({'color': [4, 3, 2, 1]}, 0, 4)), {'color': [4, 3, 2, 1]})\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":"a5a4617467018817e5c8226e7fec4bf38ad3df383d0857c775efc21c3f8abebe","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(state, channel, value):\n    saved=dict(state)\n    current=dict(state)\n    current['color']=list(current['color'])\n    saved['color']=current['color']\n    current['color'][channel]=value\n    return saved\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*({'color': [1, 2, 3, 4], 'viewport': [0, 0, 8, 8]}, 0, 9)), {'color': [1, 2, 3, 4], 'viewport': [0, 0, 8, 8]})\ncheck('fixture 2', solve(*({'color': [0, 0, 0, 0]}, 3, 5)), {'color': [0, 0, 0, 0]})\ncheck('fixture 3', solve(*({'color': [1, 1, 1, 1], 'other': [2]}, 1, 7)), {'color': [1, 1, 1, 1], 'other': [2]})\ncheck('fixture 4', solve(*({'color': [4, 3, 2, 1]}, 0, 4)), {'color': [4, 3, 2, 1]})\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":"9bcfbfb88a840b86abe1dcd6f55e083bbbb4c59e3428b55c7e5952750a37710f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(state, channel, value):\n    saved={k:list(v) for k,v in state.items()}\n    current={k:list(v) for k,v in state.items()}\n    current['color'][channel]=value\n    return saved\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve(*({'color': [1, 2, 3, 4], 'viewport': [0, 0, 8, 8]}, 0, 9)), {'color': [1, 2, 3, 4], 'viewport': [0, 0, 8, 8]})\ncheck('fixture 2', solve(*({'color': [0, 0, 0, 0]}, 3, 5)), {'color': [0, 0, 0, 0]})\ncheck('fixture 3', solve(*({'color': [1, 1, 1, 1], 'other': [2]}, 1, 7)), {'color': [1, 1, 1, 1], 'other': [2]})\ncheck('fixture 4', solve(*({'color': [4, 3, 2, 1]}, 0, 4)), {'color': [4, 3, 2, 1]})\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":" 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":"xg-state-push-deep-copy","generated_at":"2026-09-29T14:38:41.242462+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic software graphics stage with explicit channel and coordinate conventions; no hardware, device profile or API behavior is inferred.","repair":"Use the stage contract: State maps names to flat lists and contains four-channel color. Save a snapshot, mutate a current color channel, and return the untouched full snapshot; do not mutate input.","root_cause":"The saved state aliases a mutable color list and changes when current state changes.","sha256":"575f5e80145395506e901cfb4dc28186143ab2d3912c3804eccc9f0bb854e9df","title":"State push deep copy · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.317,"exit_code":1,"observations":[{"actual":{"color":[1,2,3,4]},"check":"fixture 1","expected":{"color":[1,2,3,4],"viewport":[0,0,8,8]},"passed":false},{"actual":{"color":[0,0,0,0]},"check":"fixture 2","expected":{"color":[0,0,0,0]},"passed":true},{"actual":{"color":[1,1,1,1]},"check":"fixture 3","expected":{"color":[1,1,1,1],"other":[2]},"passed":false},{"actual":{"color":[4,3,2,1]},"check":"fixture 4","expected":{"color":[4,3,2,1]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": {\"color\": [1, 2, 3, 4]}, \"expected\": {\"color\": [1, 2, 3, 4], \"viewport\": [0, 0, 8, 8]}, \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": {\"color\": [0, 0, 0, 0]}, \"expected\": {\"color\": [0, 0, 0, 0]}, \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": {\"color\": [1, 1, 1, 1]}, \"expected\": {\"color\": [1, 1, 1, 1], \"other\": [2]}, \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": {\"color\": [4, 3, 2, 1]}, \"expected\": {\"color\": [4, 3, 2, 1]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.353,"exit_code":1,"observations":[{"actual":{"color":[9,2,3,4],"viewport":[0,0,8,8]},"check":"fixture 1","expected":{"color":[1,2,3,4],"viewport":[0,0,8,8]},"passed":false},{"actual":{"color":[0,0,0,5]},"check":"fixture 2","expected":{"color":[0,0,0,0]},"passed":false},{"actual":{"color":[1,7,1,1],"other":[2]},"check":"fixture 3","expected":{"color":[1,1,1,1],"other":[2]},"passed":false},{"actual":{"color":[4,3,2,1]},"check":"fixture 4","expected":{"color":[4,3,2,1]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": {\"color\": [9, 2, 3, 4], \"viewport\": [0, 0, 8, 8]}, \"expected\": {\"color\": [1, 2, 3, 4], \"viewport\": [0, 0, 8, 8]}, \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": {\"color\": [0, 0, 0, 5]}, \"expected\": {\"color\": [0, 0, 0, 0]}, \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": {\"color\": [1, 7, 1, 1], \"other\": [2]}, \"expected\": {\"color\": [1, 1, 1, 1], \"other\": [2]}, \"passed\": false}, {\"check\": \"fixture 4\", \"actual\": {\"color\": [4, 3, 2, 1]}, \"expected\": {\"color\": [4, 3, 2, 1]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.274,"exit_code":0,"observations":[{"actual":{"color":[1,2,3,4],"viewport":[0,0,8,8]},"check":"fixture 1","expected":{"color":[1,2,3,4],"viewport":[0,0,8,8]},"passed":true},{"actual":{"color":[0,0,0,0]},"check":"fixture 2","expected":{"color":[0,0,0,0]},"passed":true},{"actual":{"color":[1,1,1,1],"other":[2]},"check":"fixture 3","expected":{"color":[1,1,1,1],"other":[2]},"passed":true},{"actual":{"color":[4,3,2,1]},"check":"fixture 4","expected":{"color":[4,3,2,1]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": {\"color\": [1, 2, 3, 4], \"viewport\": [0, 0, 8, 8]}, \"expected\": {\"color\": [1, 2, 3, 4], \"viewport\": [0, 0, 8, 8]}, \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": {\"color\": [0, 0, 0, 0]}, \"expected\": {\"color\": [0, 0, 0, 0]}, \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": {\"color\": [1, 1, 1, 1], \"other\": [2]}, \"expected\": {\"color\": [1, 1, 1, 1], \"other\": [2]}, \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": {\"color\": [4, 3, 2, 1]}, \"expected\": {\"color\": [4, 3, 2, 1]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}