{"abstract":"The event trace violates the start reset rule and produces incorrect keyboard state or command output.","category":"Keyboard interactions","checks":10,"contract":"Events [kind,key,time,injected]. Start resets capture and origin; physical down/up record relative active time; injected events are ignored. Pause freezes recording and resume excludes paused duration. Stop ends recording; clear erases recording. Return [kind,key,offset] records, recording flag, paused flag and excluded time. Ordered times and paired pause/resume. Inputs are finite ordered event traces; return the stated deterministic state. Batch entries are independent. N varies the number of independent input transactions.","evaluation_group":"s3-keyboard-macro-record","failed_approach":"The partial repair changes this transition to recording=True; origin=now; paused=None; records=[], which still violates the model contract on the explicit regression traces.","family":"s3-keyboard-interactions-macro-record-start-reset","id":"FA-31541","implementations":{"attempt":{"sha256":"6355cf77cabbdbfcf95c81952efe45232541941b3b8b0f152ba6811caa812018","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cases):\n    def run(c):\n        recording=False; origin=0; paused=None; excluded=0; records=[]\n        for kind,key,now,injected in c:\n            if kind=='start':\n                recording=True; origin=now; paused=None; records=[]\n            elif kind=='pause' and recording and paused is None:\n                paused=now\n            elif kind=='resume' and recording and paused is not None:\n                excluded+=now-paused\n                paused=None\n            elif kind=='stop': recording=False; paused=None\n            elif kind=='clear': records=[]\n            elif kind in ('down','up') and recording and paused is None and not injected:\n                records.append([kind,key,now-origin-excluded])\n        return [records,recording,paused is not None,excluded]\n    return [run(c) for c in cases]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('macro-record scenario 0', solve([[]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 1', solve([[['start', '', 10, False], ['down', 'A', 12, False], ['up', 'A', 13, False], ['text', 'A', 14, False]]] * N), [[[['down', 'A', 2], ['up', 'A', 3]], True, False, 0]] * N)\ncheck('macro-record scenario 2', solve([[['start', '', 10, False], ['down', 'A', 12, True], ['up', 'A', 13, True]]] * N), [[[], True, False, 0]] * N)\ncheck('macro-record scenario 3', solve([[['start', '', 10, False], ['pause', '', 12, False], ['pause', '', 13, False], ['resume', '', 15, False], ['down', 'A', 16, False]]] * N), [[[['down', 'A', 3]], True, False, 3]] * N)\ncheck('macro-record scenario 4', solve([[['start', '', 10, False], ['pause', '', 12, False], ['resume', '', 15, False], ['pause', '', 17, False], ['resume', '', 20, False], ['down', 'A', 21, False]]] * N), [[[['down', 'A', 5]], True, False, 6]] * N)\ncheck('macro-record scenario 5', solve([[['start', '', 10, False], ['down', 'A', 11, False], ['start', '', 20, False]]] * N), [[[], True, False, 0]] * N)\ncheck('macro-record scenario 6', solve([[['start', '', 10, False], ['pause', '', 12, False], ['resume', '', 15, False], ['start', '', 20, False], ['down', 'A', 21, False]]] * N), [[[['down', 'A', 1]], True, False, 0]] * N)\ncheck('macro-record scenario 7', solve([[['start', '', 10, False], ['pause', '', 12, False], ['stop', '', 15, False], ['down', 'A', 16, False]]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 8', solve([[['pause', '', 10, False]]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 9', solve([[['start', '', 10, False], ['down', 'A', 11, False], ['up', 'A', 12, False], ['clear', '', 13, False]]] * N), [[[], True, False, 0]] * N)\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":"979793337b2a9ac35279ee6c8e6727de11917c3456d749ebd3c3aad4b172a6d5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cases):\n    def run(c):\n        recording=False; origin=0; paused=None; excluded=0; records=[]\n        for kind,key,now,injected in c:\n            if kind=='start':\n                recording=True; origin=now; paused=None; excluded=0\n            elif kind=='pause' and recording and paused is None:\n                paused=now\n            elif kind=='resume' and recording and paused is not None:\n                excluded+=now-paused\n                paused=None\n            elif kind=='stop': recording=False; paused=None\n            elif kind=='clear': records=[]\n            elif kind in ('down','up') and recording and paused is None and not injected:\n                records.append([kind,key,now-origin-excluded])\n        return [records,recording,paused is not None,excluded]\n    return [run(c) for c in cases]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('macro-record scenario 0', solve([[]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 1', solve([[['start', '', 10, False], ['down', 'A', 12, False], ['up', 'A', 13, False], ['text', 'A', 14, False]]] * N), [[[['down', 'A', 2], ['up', 'A', 3]], True, False, 0]] * N)\ncheck('macro-record scenario 2', solve([[['start', '', 10, False], ['down', 'A', 12, True], ['up', 'A', 13, True]]] * N), [[[], True, False, 0]] * N)\ncheck('macro-record scenario 3', solve([[['start', '', 10, False], ['pause', '', 12, False], ['pause', '', 13, False], ['resume', '', 15, False], ['down', 'A', 16, False]]] * N), [[[['down', 'A', 3]], True, False, 3]] * N)\ncheck('macro-record scenario 4', solve([[['start', '', 10, False], ['pause', '', 12, False], ['resume', '', 15, False], ['pause', '', 17, False], ['resume', '', 20, False], ['down', 'A', 21, False]]] * N), [[[['down', 'A', 5]], True, False, 6]] * N)\ncheck('macro-record scenario 5', solve([[['start', '', 10, False], ['down', 'A', 11, False], ['start', '', 20, False]]] * N), [[[], True, False, 0]] * N)\ncheck('macro-record scenario 6', solve([[['start', '', 10, False], ['pause', '', 12, False], ['resume', '', 15, False], ['start', '', 20, False], ['down', 'A', 21, False]]] * N), [[[['down', 'A', 1]], True, False, 0]] * N)\ncheck('macro-record scenario 7', solve([[['start', '', 10, False], ['pause', '', 12, False], ['stop', '', 15, False], ['down', 'A', 16, False]]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 8', solve([[['pause', '', 10, False]]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 9', solve([[['start', '', 10, False], ['down', 'A', 11, False], ['up', 'A', 12, False], ['clear', '', 13, False]]] * N), [[[], True, False, 0]] * N)\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":"918e29b69f359d8b3a103ff0686e718411cb605180b75135e0f6fbf0085c74ec","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cases):\n    def run(c):\n        recording=False; origin=0; paused=None; excluded=0; records=[]\n        for kind,key,now,injected in c:\n            if kind=='start':\n                recording=True; origin=now; paused=None; excluded=0; records=[]\n            elif kind=='pause' and recording and paused is None:\n                paused=now\n            elif kind=='resume' and recording and paused is not None:\n                excluded+=now-paused\n                paused=None\n            elif kind=='stop': recording=False; paused=None\n            elif kind=='clear': records=[]\n            elif kind in ('down','up') and recording and paused is None and not injected:\n                records.append([kind,key,now-origin-excluded])\n        return [records,recording,paused is not None,excluded]\n    return [run(c) for c in cases]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('macro-record scenario 0', solve([[]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 1', solve([[['start', '', 10, False], ['down', 'A', 12, False], ['up', 'A', 13, False], ['text', 'A', 14, False]]] * N), [[[['down', 'A', 2], ['up', 'A', 3]], True, False, 0]] * N)\ncheck('macro-record scenario 2', solve([[['start', '', 10, False], ['down', 'A', 12, True], ['up', 'A', 13, True]]] * N), [[[], True, False, 0]] * N)\ncheck('macro-record scenario 3', solve([[['start', '', 10, False], ['pause', '', 12, False], ['pause', '', 13, False], ['resume', '', 15, False], ['down', 'A', 16, False]]] * N), [[[['down', 'A', 3]], True, False, 3]] * N)\ncheck('macro-record scenario 4', solve([[['start', '', 10, False], ['pause', '', 12, False], ['resume', '', 15, False], ['pause', '', 17, False], ['resume', '', 20, False], ['down', 'A', 21, False]]] * N), [[[['down', 'A', 5]], True, False, 6]] * N)\ncheck('macro-record scenario 5', solve([[['start', '', 10, False], ['down', 'A', 11, False], ['start', '', 20, False]]] * N), [[[], True, False, 0]] * N)\ncheck('macro-record scenario 6', solve([[['start', '', 10, False], ['pause', '', 12, False], ['resume', '', 15, False], ['start', '', 20, False], ['down', 'A', 21, False]]] * N), [[[['down', 'A', 1]], True, False, 0]] * N)\ncheck('macro-record scenario 7', solve([[['start', '', 10, False], ['pause', '', 12, False], ['stop', '', 15, False], ['down', 'A', 16, False]]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 8', solve([[['pause', '', 10, False]]] * N), [[[], False, False, 0]] * N)\ncheck('macro-record scenario 9', solve([[['start', '', 10, False], ['down', 'A', 11, False], ['up', 'A', 12, False], ['clear', '', 13, False]]] * N), [[[], True, False, 0]] * N)\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":"Offline stipulated event model, not a browser implementation or web standard conformance claim. 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-keyboard-interactions-macro-record-start-reset","generated_at":"2026-09-29T14:42:03.061839+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Controlled keyboard event processing model for debugging application event logic.","repair":"Use the contract transition `recording=True; origin=now; paused=None; excluded=0; records=[]` at the start reset fault site; preserve the other state transitions.","root_cause":"A new macro retains old events or accumulated paused duration.","sha256":"e2ce6a214268da6946006670fe2aca5b29210a436297272a393470a5b6e4c40c","title":"Keyboard macro recording timebase: A new macro retains old events or accumulated paused duration · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.38,"exit_code":1,"observations":[{"actual":[[[],false,false,0]],"check":"macro-record scenario 0","expected":[[[],false,false,0]],"passed":true},{"actual":[[[["down","A",2],["up","A",3]],true,false,0]],"check":"macro-record scenario 1","expected":[[[["down","A",2],["up","A",3]],true,false,0]],"passed":true},{"actual":[[[],true,false,0]],"check":"macro-record scenario 2","expected":[[[],true,false,0]],"passed":true},{"actual":[[[["down","A",3]],true,false,3]],"check":"macro-record scenario 3","expected":[[[["down","A",3]],true,false,3]],"passed":true},{"actual":[[[["down","A",5]],true,false,6]],"check":"macro-record scenario 4","expected":[[[["down","A",5]],true,false,6]],"passed":true},{"actual":[[[],true,false,0]],"check":"macro-record scenario 5","expected":[[[],true,false,0]],"passed":true},{"actual":[[[["down","A",-2]],true,false,3]],"check":"macro-record scenario 6","expected":[[[["down","A",1]],true,false,0]],"passed":false},{"actual":[[[],false,false,0]],"check":"macro-record scenario 7","expected":[[[],false,false,0]],"passed":true},{"actual":[[[],false,false,0]],"check":"macro-record scenario 8","expected":[[[],false,false,0]],"passed":true},{"actual":[[[],true,false,0]],"check":"macro-record scenario 9","expected":[[[],true,false,0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"macro-record scenario 0\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 1\", \"actual\": [[[[\"down\", \"A\", 2], [\"up\", \"A\", 3]], true, false, 0]], \"expected\": [[[[\"down\", \"A\", 2], [\"up\", \"A\", 3]], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 2\", \"actual\": [[[], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 3\", \"actual\": [[[[\"down\", \"A\", 3]], true, false, 3]], \"expected\": [[[[\"down\", \"A\", 3]], true, false, 3]], \"passed\": true}, {\"check\": \"macro-record scenario 4\", \"actual\": [[[[\"down\", \"A\", 5]], true, false, 6]], \"expected\": [[[[\"down\", \"A\", 5]], true, false, 6]], \"passed\": true}, {\"check\": \"macro-record scenario 5\", \"actual\": [[[], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 6\", \"actual\": [[[[\"down\", \"A\", -2]], true, false, 3]], \"expected\": [[[[\"down\", \"A\", 1]], true, false, 0]], \"passed\": false}, {\"check\": \"macro-record scenario 7\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 8\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 9\", \"actual\": [[[], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.529,"exit_code":1,"observations":[{"actual":[[[],false,false,0]],"check":"macro-record scenario 0","expected":[[[],false,false,0]],"passed":true},{"actual":[[[["down","A",2],["up","A",3]],true,false,0]],"check":"macro-record scenario 1","expected":[[[["down","A",2],["up","A",3]],true,false,0]],"passed":true},{"actual":[[[],true,false,0]],"check":"macro-record scenario 2","expected":[[[],true,false,0]],"passed":true},{"actual":[[[["down","A",3]],true,false,3]],"check":"macro-record scenario 3","expected":[[[["down","A",3]],true,false,3]],"passed":true},{"actual":[[[["down","A",5]],true,false,6]],"check":"macro-record scenario 4","expected":[[[["down","A",5]],true,false,6]],"passed":true},{"actual":[[[["down","A",1]],true,false,0]],"check":"macro-record scenario 5","expected":[[[],true,false,0]],"passed":false},{"actual":[[[["down","A",1]],true,false,0]],"check":"macro-record scenario 6","expected":[[[["down","A",1]],true,false,0]],"passed":true},{"actual":[[[],false,false,0]],"check":"macro-record scenario 7","expected":[[[],false,false,0]],"passed":true},{"actual":[[[],false,false,0]],"check":"macro-record scenario 8","expected":[[[],false,false,0]],"passed":true},{"actual":[[[],true,false,0]],"check":"macro-record scenario 9","expected":[[[],true,false,0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"macro-record scenario 0\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 1\", \"actual\": [[[[\"down\", \"A\", 2], [\"up\", \"A\", 3]], true, false, 0]], \"expected\": [[[[\"down\", \"A\", 2], [\"up\", \"A\", 3]], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 2\", \"actual\": [[[], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 3\", \"actual\": [[[[\"down\", \"A\", 3]], true, false, 3]], \"expected\": [[[[\"down\", \"A\", 3]], true, false, 3]], \"passed\": true}, {\"check\": \"macro-record scenario 4\", \"actual\": [[[[\"down\", \"A\", 5]], true, false, 6]], \"expected\": [[[[\"down\", \"A\", 5]], true, false, 6]], \"passed\": true}, {\"check\": \"macro-record scenario 5\", \"actual\": [[[[\"down\", \"A\", 1]], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": false}, {\"check\": \"macro-record scenario 6\", \"actual\": [[[[\"down\", \"A\", 1]], true, false, 0]], \"expected\": [[[[\"down\", \"A\", 1]], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 7\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 8\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 9\", \"actual\": [[[], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.59,"exit_code":0,"observations":[{"actual":[[[],false,false,0]],"check":"macro-record scenario 0","expected":[[[],false,false,0]],"passed":true},{"actual":[[[["down","A",2],["up","A",3]],true,false,0]],"check":"macro-record scenario 1","expected":[[[["down","A",2],["up","A",3]],true,false,0]],"passed":true},{"actual":[[[],true,false,0]],"check":"macro-record scenario 2","expected":[[[],true,false,0]],"passed":true},{"actual":[[[["down","A",3]],true,false,3]],"check":"macro-record scenario 3","expected":[[[["down","A",3]],true,false,3]],"passed":true},{"actual":[[[["down","A",5]],true,false,6]],"check":"macro-record scenario 4","expected":[[[["down","A",5]],true,false,6]],"passed":true},{"actual":[[[],true,false,0]],"check":"macro-record scenario 5","expected":[[[],true,false,0]],"passed":true},{"actual":[[[["down","A",1]],true,false,0]],"check":"macro-record scenario 6","expected":[[[["down","A",1]],true,false,0]],"passed":true},{"actual":[[[],false,false,0]],"check":"macro-record scenario 7","expected":[[[],false,false,0]],"passed":true},{"actual":[[[],false,false,0]],"check":"macro-record scenario 8","expected":[[[],false,false,0]],"passed":true},{"actual":[[[],true,false,0]],"check":"macro-record scenario 9","expected":[[[],true,false,0]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"macro-record scenario 0\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 1\", \"actual\": [[[[\"down\", \"A\", 2], [\"up\", \"A\", 3]], true, false, 0]], \"expected\": [[[[\"down\", \"A\", 2], [\"up\", \"A\", 3]], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 2\", \"actual\": [[[], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 3\", \"actual\": [[[[\"down\", \"A\", 3]], true, false, 3]], \"expected\": [[[[\"down\", \"A\", 3]], true, false, 3]], \"passed\": true}, {\"check\": \"macro-record scenario 4\", \"actual\": [[[[\"down\", \"A\", 5]], true, false, 6]], \"expected\": [[[[\"down\", \"A\", 5]], true, false, 6]], \"passed\": true}, {\"check\": \"macro-record scenario 5\", \"actual\": [[[], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 6\", \"actual\": [[[[\"down\", \"A\", 1]], true, false, 0]], \"expected\": [[[[\"down\", \"A\", 1]], true, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 7\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 8\", \"actual\": [[[], false, false, 0]], \"expected\": [[[], false, false, 0]], \"passed\": true}, {\"check\": \"macro-record scenario 9\", \"actual\": [[[], true, false, 0]], \"expected\": [[[], true, false, 0]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}