{"abstract":"Workspace draft eviction discards unsaved work to meet a retention cap.","category":"Client state","checks":6,"contract":"Retention preserves every dirty workspace draft even above capacity, then fills any remaining slots with the most recently visited clean drafts while preserving source order.","contract_signature":"drafts, capacity","evaluation_group":"s3-client-state-workspace-draft-retention","failed_approach":"The partial repair still violates at least one explicit regression oracle.","family":"s3-client-state-workspace-draft-retention","id":"FA-24781","implementations":{"attempt":{"sha256":"1f9d521df604c30676f48e99dc03f8997c053c0677982f27a8dc5a8c0e75c976","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(drafts, capacity):\n    return [x for x in drafts if x[1]][-capacity:]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('dirty older than clean', solve([('dirty',True),('a',False),('b',False)],2), [('dirty',True),('b',False)])\ncheck('dirty exceeds cap', solve([('a',True),('b',True)],1), [('a',True),('b',True)])\ncheck('zero cap keeps dirty', solve([('a',False),('b',True)],0), [('b',True)])\ncheck('all clean newest', solve([('a',False),('b',False)],1), [('b',False)])\ncheck('empty', solve([],2), [])\ncheck('parameterized clean cap', solve([(str(i),False) for i in range(N+2)],N), [(str(i),False) for i in range(2,N+2)])\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":"25e892afab05c709b6f806111daee10067c52bbfe38f8fce63782cbd533ddb37","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(drafts, capacity):\n    return drafts[-capacity:]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('dirty older than clean', solve([('dirty',True),('a',False),('b',False)],2), [('dirty',True),('b',False)])\ncheck('dirty exceeds cap', solve([('a',True),('b',True)],1), [('a',True),('b',True)])\ncheck('zero cap keeps dirty', solve([('a',False),('b',True)],0), [('b',True)])\ncheck('all clean newest', solve([('a',False),('b',False)],1), [('b',False)])\ncheck('empty', solve([],2), [])\ncheck('parameterized clean cap', solve([(str(i),False) for i in range(N+2)],N), [(str(i),False) for i in range(2,N+2)])\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 models the stated application policy only; no browser or framework conformance is claimed. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-client-state-workspace-draft-retention","generated_at":"2026-09-29T14:41:00.675064+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded offline client-state transition with explicit lifecycle inputs.","root_cause":"The faulty implementation violates Retention preserves every dirty workspace draft even above capacity, then fills any remaining slots with the most recently visited clean drafts while preserving source order.","sha256":"e820dbf7c2401d580c5b74364a87167176bdd366f11b6e4f54c0c455c291262e","title":"Workspace draft eviction discards unsaved work to meet a retention cap · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.666,"exit_code":1,"observations":[{"actual":[["dirty",true]],"check":"dirty older than clean","expected":[["dirty",true],["b",false]],"passed":false},{"actual":[["b",true]],"check":"dirty exceeds cap","expected":[["a",true],["b",true]],"passed":false},{"actual":[["b",true]],"check":"zero cap keeps dirty","expected":[["b",true]],"passed":true},{"actual":[],"check":"all clean newest","expected":[["b",false]],"passed":false},{"actual":[],"check":"empty","expected":[],"passed":true},{"actual":[],"check":"parameterized clean cap","expected":[["2",false]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"dirty older than clean\", \"actual\": [[\"dirty\", true]], \"expected\": [[\"dirty\", true], [\"b\", false]], \"passed\": false}, {\"check\": \"dirty exceeds cap\", \"actual\": [[\"b\", true]], \"expected\": [[\"a\", true], [\"b\", true]], \"passed\": false}, {\"check\": \"zero cap keeps dirty\", \"actual\": [[\"b\", true]], \"expected\": [[\"b\", true]], \"passed\": true}, {\"check\": \"all clean newest\", \"actual\": [], \"expected\": [[\"b\", false]], \"passed\": false}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"parameterized clean cap\", \"actual\": [], \"expected\": [[\"2\", false]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.434,"exit_code":1,"observations":[{"actual":[["a",false],["b",false]],"check":"dirty older than clean","expected":[["dirty",true],["b",false]],"passed":false},{"actual":[["b",true]],"check":"dirty exceeds cap","expected":[["a",true],["b",true]],"passed":false},{"actual":[["a",false],["b",true]],"check":"zero cap keeps dirty","expected":[["b",true]],"passed":false},{"actual":[["b",false]],"check":"all clean newest","expected":[["b",false]],"passed":true},{"actual":[],"check":"empty","expected":[],"passed":true},{"actual":[["2",false]],"check":"parameterized clean cap","expected":[["2",false]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"dirty older than clean\", \"actual\": [[\"a\", false], [\"b\", false]], \"expected\": [[\"dirty\", true], [\"b\", false]], \"passed\": false}, {\"check\": \"dirty exceeds cap\", \"actual\": [[\"b\", true]], \"expected\": [[\"a\", true], [\"b\", true]], \"passed\": false}, {\"check\": \"zero cap keeps dirty\", \"actual\": [[\"a\", false], [\"b\", true]], \"expected\": [[\"b\", true]], \"passed\": false}, {\"check\": \"all clean newest\", \"actual\": [[\"b\", false]], \"expected\": [[\"b\", false]], \"passed\": true}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"parameterized clean cap\", \"actual\": [[\"2\", false]], \"expected\": [[\"2\", false]], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}