{"abstract":"Explicitly pinned releases are deleted.","category":"Deployment models","checks":7,"contract":"Retain active and explicitly pinned releases regardless of age, retain newest successful unpinned releases up to limit, exclude unsuccessful unpinned releases, and return sorted unique revision IDs.","evaluation_group":"xt-release-retention","failed_approach":"The attempted repair substitutes keep = {active} | set(pinned[:1]). Fixture 2 still yields [1, 4] instead of [1, 2, 4].","family":"xt-release-retention-pin-retention","id":"FA-10186","implementations":{"attempt":{"sha256":"84ce52845b832d6a5975f9b6736309f0e22ee0921ac3fb282cf14460b6fcc051","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(releases, active, pinned, limit):\n    keep = {active} | set(pinned[:1])\n    eligible = sorted([number for number, success in releases if success and number not in keep], reverse=True)\n    keep.update(eligible[:limit])\n    return sorted(keep)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve([], 1, [], 0), [1])\ncheck('fixture 2', solve([], 4, [1, 2], 0), [1, 2, 4])\ncheck('fixture 3', solve([(1, True), (2, True), (3, True)], 3, [], 1), [2, 3])\ncheck('fixture 4', solve([(1, True), (2, False), (3, True)], 3, [], 1), [1, 3])\ncheck('fixture 5', solve([(1, True), (2, True), (3, True)], 3, [1], 0), [1, 3])\ncheck('fixture 6', solve([(1, True), (2, True), (3, True), (4, True)], 4, [2], 1), [2, 3, 4])\ncheck('fixture 7', solve([(1, True), (2, True)], 2, [], 0), [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":"745ed764f8a621185d87180ab958003ae42f9b9cb9e03da0031ede7542b92b2b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(releases, active, pinned, limit):\n    keep = {active}\n    eligible = sorted([number for number, success in releases if success and number not in keep], reverse=True)\n    keep.update(eligible[:limit])\n    return sorted(keep)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve([], 1, [], 0), [1])\ncheck('fixture 2', solve([], 4, [1, 2], 0), [1, 2, 4])\ncheck('fixture 3', solve([(1, True), (2, True), (3, True)], 3, [], 1), [2, 3])\ncheck('fixture 4', solve([(1, True), (2, False), (3, True)], 3, [], 1), [1, 3])\ncheck('fixture 5', solve([(1, True), (2, True), (3, True)], 3, [1], 0), [1, 3])\ncheck('fixture 6', solve([(1, True), (2, True), (3, True), (4, True)], 4, [2], 1), [2, 3, 4])\ncheck('fixture 7', solve([(1, True), (2, True)], 2, [], 0), [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"},"fixed":{"sha256":"09ec1ec3899e60247bda85442d4576dab83f29eb220be8fdd5d7c35e1c55b908","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(releases, active, pinned, limit):\n    keep = {active} | set(pinned)\n    eligible = sorted([number for number, success in releases if success and number not in keep], reverse=True)\n    keep.update(eligible[:limit])\n    return sorted(keep)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1', solve([], 1, [], 0), [1])\ncheck('fixture 2', solve([], 4, [1, 2], 0), [1, 2, 4])\ncheck('fixture 3', solve([(1, True), (2, True), (3, True)], 3, [], 1), [2, 3])\ncheck('fixture 4', solve([(1, True), (2, False), (3, True)], 3, [], 1), [1, 3])\ncheck('fixture 5', solve([(1, True), (2, True), (3, True)], 3, [1], 0), [1, 3])\ncheck('fixture 6', solve([(1, True), (2, True), (3, True), (4, True)], 4, [2], 1), [2, 3, 4])\ncheck('fixture 7', solve([(1, True), (2, True)], 2, [], 0), [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 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":"xt-release-retention-pin-retention","generated_at":"2026-09-29T14:38:36.631163+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline model of release retention selection, suitable for testing build and release tooling without external services.","repair":"Retain every explicitly pinned release.","root_cause":"The implementation substitutes keep = {active} for keep = {active} | set(pinned), so explicitly pinned releases are deleted.","sha256":"39f66ff448156040dcff873832fd57a3648f6cb1d1b35219a42974b70e982cc4","title":"Release retention selection: Explicitly pinned releases are deleted · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.997,"exit_code":1,"observations":[{"actual":[1],"check":"fixture 1","expected":[1],"passed":true},{"actual":[1,4],"check":"fixture 2","expected":[1,2,4],"passed":false},{"actual":[2,3],"check":"fixture 3","expected":[2,3],"passed":true},{"actual":[1,3],"check":"fixture 4","expected":[1,3],"passed":true},{"actual":[1,3],"check":"fixture 5","expected":[1,3],"passed":true},{"actual":[2,3,4],"check":"fixture 6","expected":[2,3,4],"passed":true},{"actual":[2],"check":"fixture 7","expected":[2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [1, 4], \"expected\": [1, 2, 4], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [2, 3], \"expected\": [2, 3], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [1, 3], \"expected\": [1, 3], \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": [1, 3], \"expected\": [1, 3], \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": [2, 3, 4], \"expected\": [2, 3, 4], \"passed\": true}, {\"check\": \"fixture 7\", \"actual\": [2], \"expected\": [2], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.952,"exit_code":1,"observations":[{"actual":[1],"check":"fixture 1","expected":[1],"passed":true},{"actual":[4],"check":"fixture 2","expected":[1,2,4],"passed":false},{"actual":[2,3],"check":"fixture 3","expected":[2,3],"passed":true},{"actual":[1,3],"check":"fixture 4","expected":[1,3],"passed":true},{"actual":[3],"check":"fixture 5","expected":[1,3],"passed":false},{"actual":[3,4],"check":"fixture 6","expected":[2,3,4],"passed":false},{"actual":[2],"check":"fixture 7","expected":[2],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [4], \"expected\": [1, 2, 4], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [2, 3], \"expected\": [2, 3], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [1, 3], \"expected\": [1, 3], \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": [3], \"expected\": [1, 3], \"passed\": false}, {\"check\": \"fixture 6\", \"actual\": [3, 4], \"expected\": [2, 3, 4], \"passed\": false}, {\"check\": \"fixture 7\", \"actual\": [2], \"expected\": [2], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.265,"exit_code":0,"observations":[{"actual":[1],"check":"fixture 1","expected":[1],"passed":true},{"actual":[1,2,4],"check":"fixture 2","expected":[1,2,4],"passed":true},{"actual":[2,3],"check":"fixture 3","expected":[2,3],"passed":true},{"actual":[1,3],"check":"fixture 4","expected":[1,3],"passed":true},{"actual":[1,3],"check":"fixture 5","expected":[1,3],"passed":true},{"actual":[2,3,4],"check":"fixture 6","expected":[2,3,4],"passed":true},{"actual":[2],"check":"fixture 7","expected":[2],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [1, 2, 4], \"expected\": [1, 2, 4], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [2, 3], \"expected\": [2, 3], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [1, 3], \"expected\": [1, 3], \"passed\": true}, {\"check\": \"fixture 5\", \"actual\": [1, 3], \"expected\": [1, 3], \"passed\": true}, {\"check\": \"fixture 6\", \"actual\": [2, 3, 4], \"expected\": [2, 3, 4], \"passed\": true}, {\"check\": \"fixture 7\", \"actual\": [2], \"expected\": [2], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}