{"abstract":"The announcement trace violates the stated speech-history contract.","category":"Assistive announcements","checks":8,"contract":"History retains the last three delivered utterances [id,text], newest last. Deliver same ID replaces its prior record and moves it newest. Replay speaks selected history text without adding history. Previous walks a separate cursor newest to oldest and clamps at oldest. Deliver resets cursor to newest. Forget deletes one ID and resets cursor. Clear removes history without changing spoken output. Limit clamps to at least one and trims oldest. Report spoken and history.","evaluation_group":"s3-announcement-speech-history","failed_approach":"The attempted repair substitutes elif e[0]=='forget': history=[x for x in history if x[0]!=e[1]]; cursor=0 and still violates a regression oracle.","family":"s3-assistive-announcements-speech-history-forget","id":"FA-21076","implementations":{"attempt":{"sha256":"32887621a3b8cc5e3629cefbc7ca5f31ebd85a76741209bba809836210621b33","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    history=[]; out=[]; cursor=0; limit=3\n    for e in events:\n        if e[0]=='deliver':\n            history=[x for x in history if x[0]!=e[1]]\n            history.append([e[1],e[2]])\n            history=history[-limit:]\n            cursor=len(history)\n            out.append(e[2])\n        elif e[0]=='replay':\n            match=next((x for x in history if x[0]==e[1]),None)\n            if match: out.append(match[1])\n        elif e[0]=='previous' and history:\n            cursor=max(0,cursor-1)\n            out.append(history[cursor][1])\n        elif e[0]=='forget': history=[x for x in history if x[0]!=e[1]]; cursor=0\n        elif e[0]=='clear': history=[]; cursor=0\n        elif e[0]=='limit': limit=max(1,e[1]); history=history[-limit:]; cursor=len(history)\n    return [out,history,cursor]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['deliver',str(i),'word'*N+str(i)] for i in range(N+4)]+[['previous'],['previous'],['previous'],['previous']]\", \"[['deliver','a','same'*N],['deliver','b','same'*N]]\", \"[['deliver','a','same'*N],['deliver','b','same'*N],['deliver','a','new'],['replay','a']]\", \"[['deliver','a','alpha'*N],['deliver','b','beta'],['previous'],['deliver','c','gamma'],['previous']]\", \"[['deliver','a','alpha'*N],['deliver','b','beta'],['deliver','c','gamma'],['forget','a'],['previous']]\", \"[['deliver','a','alpha'*N],['clear'],['replay','a']]\", \"[['deliver','a','a'*N],['deliver','b','b'],['deliver','c','c'],['limit',1],['previous']]\", '[]']\nexpected = {1: [[['word0', 'word1', 'word2', 'word3', 'word4', 'word4', 'word3', 'word2', 'word2'], [['2', 'word2'], ['3', 'word3'], ['4', 'word4']], 0], [['same', 'same'], [['a', 'same'], ['b', 'same']], 2], [['same', 'same', 'new', 'new'], [['b', 'same'], ['a', 'new']], 2], [['alpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alpha'], [], 0], [['a', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 2: [[['wordword0', 'wordword1', 'wordword2', 'wordword3', 'wordword4', 'wordword5', 'wordword5', 'wordword4', 'wordword3', 'wordword3'], [['3', 'wordword3'], ['4', 'wordword4'], ['5', 'wordword5']], 0], [['samesame', 'samesame'], [['a', 'samesame'], ['b', 'samesame']], 2], [['samesame', 'samesame', 'new', 'new'], [['b', 'samesame'], ['a', 'new']], 2], [['alphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalpha'], [], 0], [['aa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 3: [[['wordwordword0', 'wordwordword1', 'wordwordword2', 'wordwordword3', 'wordwordword4', 'wordwordword5', 'wordwordword6', 'wordwordword6', 'wordwordword5', 'wordwordword4', 'wordwordword4'], [['4', 'wordwordword4'], ['5', 'wordwordword5'], ['6', 'wordwordword6']], 0], [['samesamesame', 'samesamesame'], [['a', 'samesamesame'], ['b', 'samesamesame']], 2], [['samesamesame', 'samesamesame', 'new', 'new'], [['b', 'samesamesame'], ['a', 'new']], 2], [['alphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalpha'], [], 0], [['aaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 4: [[['wordwordwordword0', 'wordwordwordword1', 'wordwordwordword2', 'wordwordwordword3', 'wordwordwordword4', 'wordwordwordword5', 'wordwordwordword6', 'wordwordwordword7', 'wordwordwordword7', 'wordwordwordword6', 'wordwordwordword5', 'wordwordwordword5'], [['5', 'wordwordwordword5'], ['6', 'wordwordwordword6'], ['7', 'wordwordwordword7']], 0], [['samesamesamesame', 'samesamesamesame'], [['a', 'samesamesamesame'], ['b', 'samesamesamesame']], 2], [['samesamesamesame', 'samesamesamesame', 'new', 'new'], [['b', 'samesamesamesame'], ['a', 'new']], 2], [['alphaalphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalphaalpha'], [], 0], [['aaaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 5: [[['wordwordwordwordword0', 'wordwordwordwordword1', 'wordwordwordwordword2', 'wordwordwordwordword3', 'wordwordwordwordword4', 'wordwordwordwordword5', 'wordwordwordwordword6', 'wordwordwordwordword7', 'wordwordwordwordword8', 'wordwordwordwordword8', 'wordwordwordwordword7', 'wordwordwordwordword6', 'wordwordwordwordword6'], [['6', 'wordwordwordwordword6'], ['7', 'wordwordwordwordword7'], ['8', 'wordwordwordwordword8']], 0], [['samesamesamesamesame', 'samesamesamesamesame'], [['a', 'samesamesamesamesame'], ['b', 'samesamesamesamesame']], 2], [['samesamesamesamesame', 'samesamesamesamesame', 'new', 'new'], [['b', 'samesamesamesamesame'], ['a', 'new']], 2], [['alphaalphaalphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalphaalphaalpha'], [], 0], [['aaaaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]]}[N]\nfor i, expression in enumerate(fixtures):\n    check(\"trace-\"+str(i+1), solve(eval(expression)), expected[i])\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":"47254f25e2e3708ee5bc2cbbd05d5fb8e7d645e00eb1257983ef9a3b9cd15cc3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    history=[]; out=[]; cursor=0; limit=3\n    for e in events:\n        if e[0]=='deliver':\n            history=[x for x in history if x[0]!=e[1]]\n            history.append([e[1],e[2]])\n            history=history[-limit:]\n            cursor=len(history)\n            out.append(e[2])\n        elif e[0]=='replay':\n            match=next((x for x in history if x[0]==e[1]),None)\n            if match: out.append(match[1])\n        elif e[0]=='previous' and history:\n            cursor=max(0,cursor-1)\n            out.append(history[cursor][1])\n        elif e[0]=='forget': history=[]; cursor=0\n        elif e[0]=='clear': history=[]; cursor=0\n        elif e[0]=='limit': limit=max(1,e[1]); history=history[-limit:]; cursor=len(history)\n    return [out,history,cursor]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['deliver',str(i),'word'*N+str(i)] for i in range(N+4)]+[['previous'],['previous'],['previous'],['previous']]\", \"[['deliver','a','same'*N],['deliver','b','same'*N]]\", \"[['deliver','a','same'*N],['deliver','b','same'*N],['deliver','a','new'],['replay','a']]\", \"[['deliver','a','alpha'*N],['deliver','b','beta'],['previous'],['deliver','c','gamma'],['previous']]\", \"[['deliver','a','alpha'*N],['deliver','b','beta'],['deliver','c','gamma'],['forget','a'],['previous']]\", \"[['deliver','a','alpha'*N],['clear'],['replay','a']]\", \"[['deliver','a','a'*N],['deliver','b','b'],['deliver','c','c'],['limit',1],['previous']]\", '[]']\nexpected = {1: [[['word0', 'word1', 'word2', 'word3', 'word4', 'word4', 'word3', 'word2', 'word2'], [['2', 'word2'], ['3', 'word3'], ['4', 'word4']], 0], [['same', 'same'], [['a', 'same'], ['b', 'same']], 2], [['same', 'same', 'new', 'new'], [['b', 'same'], ['a', 'new']], 2], [['alpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alpha'], [], 0], [['a', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 2: [[['wordword0', 'wordword1', 'wordword2', 'wordword3', 'wordword4', 'wordword5', 'wordword5', 'wordword4', 'wordword3', 'wordword3'], [['3', 'wordword3'], ['4', 'wordword4'], ['5', 'wordword5']], 0], [['samesame', 'samesame'], [['a', 'samesame'], ['b', 'samesame']], 2], [['samesame', 'samesame', 'new', 'new'], [['b', 'samesame'], ['a', 'new']], 2], [['alphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalpha'], [], 0], [['aa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 3: [[['wordwordword0', 'wordwordword1', 'wordwordword2', 'wordwordword3', 'wordwordword4', 'wordwordword5', 'wordwordword6', 'wordwordword6', 'wordwordword5', 'wordwordword4', 'wordwordword4'], [['4', 'wordwordword4'], ['5', 'wordwordword5'], ['6', 'wordwordword6']], 0], [['samesamesame', 'samesamesame'], [['a', 'samesamesame'], ['b', 'samesamesame']], 2], [['samesamesame', 'samesamesame', 'new', 'new'], [['b', 'samesamesame'], ['a', 'new']], 2], [['alphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalpha'], [], 0], [['aaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 4: [[['wordwordwordword0', 'wordwordwordword1', 'wordwordwordword2', 'wordwordwordword3', 'wordwordwordword4', 'wordwordwordword5', 'wordwordwordword6', 'wordwordwordword7', 'wordwordwordword7', 'wordwordwordword6', 'wordwordwordword5', 'wordwordwordword5'], [['5', 'wordwordwordword5'], ['6', 'wordwordwordword6'], ['7', 'wordwordwordword7']], 0], [['samesamesamesame', 'samesamesamesame'], [['a', 'samesamesamesame'], ['b', 'samesamesamesame']], 2], [['samesamesamesame', 'samesamesamesame', 'new', 'new'], [['b', 'samesamesamesame'], ['a', 'new']], 2], [['alphaalphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalphaalpha'], [], 0], [['aaaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 5: [[['wordwordwordwordword0', 'wordwordwordwordword1', 'wordwordwordwordword2', 'wordwordwordwordword3', 'wordwordwordwordword4', 'wordwordwordwordword5', 'wordwordwordwordword6', 'wordwordwordwordword7', 'wordwordwordwordword8', 'wordwordwordwordword8', 'wordwordwordwordword7', 'wordwordwordwordword6', 'wordwordwordwordword6'], [['6', 'wordwordwordwordword6'], ['7', 'wordwordwordwordword7'], ['8', 'wordwordwordwordword8']], 0], [['samesamesamesamesame', 'samesamesamesamesame'], [['a', 'samesamesamesamesame'], ['b', 'samesamesamesamesame']], 2], [['samesamesamesamesame', 'samesamesamesamesame', 'new', 'new'], [['b', 'samesamesamesamesame'], ['a', 'new']], 2], [['alphaalphaalphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalphaalphaalpha'], [], 0], [['aaaaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]]}[N]\nfor i, expression in enumerate(fixtures):\n    check(\"trace-\"+str(i+1), solve(eval(expression)), expected[i])\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":"cfd407e872156262bf071ef5d3b0e688c703cc774b3245e2c91637cee05bca47","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    history=[]; out=[]; cursor=0; limit=3\n    for e in events:\n        if e[0]=='deliver':\n            history=[x for x in history if x[0]!=e[1]]\n            history.append([e[1],e[2]])\n            history=history[-limit:]\n            cursor=len(history)\n            out.append(e[2])\n        elif e[0]=='replay':\n            match=next((x for x in history if x[0]==e[1]),None)\n            if match: out.append(match[1])\n        elif e[0]=='previous' and history:\n            cursor=max(0,cursor-1)\n            out.append(history[cursor][1])\n        elif e[0]=='forget': history=[x for x in history if x[0]!=e[1]]; cursor=len(history)\n        elif e[0]=='clear': history=[]; cursor=0\n        elif e[0]=='limit': limit=max(1,e[1]); history=history[-limit:]; cursor=len(history)\n    return [out,history,cursor]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['deliver',str(i),'word'*N+str(i)] for i in range(N+4)]+[['previous'],['previous'],['previous'],['previous']]\", \"[['deliver','a','same'*N],['deliver','b','same'*N]]\", \"[['deliver','a','same'*N],['deliver','b','same'*N],['deliver','a','new'],['replay','a']]\", \"[['deliver','a','alpha'*N],['deliver','b','beta'],['previous'],['deliver','c','gamma'],['previous']]\", \"[['deliver','a','alpha'*N],['deliver','b','beta'],['deliver','c','gamma'],['forget','a'],['previous']]\", \"[['deliver','a','alpha'*N],['clear'],['replay','a']]\", \"[['deliver','a','a'*N],['deliver','b','b'],['deliver','c','c'],['limit',1],['previous']]\", '[]']\nexpected = {1: [[['word0', 'word1', 'word2', 'word3', 'word4', 'word4', 'word3', 'word2', 'word2'], [['2', 'word2'], ['3', 'word3'], ['4', 'word4']], 0], [['same', 'same'], [['a', 'same'], ['b', 'same']], 2], [['same', 'same', 'new', 'new'], [['b', 'same'], ['a', 'new']], 2], [['alpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alpha'], [], 0], [['a', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 2: [[['wordword0', 'wordword1', 'wordword2', 'wordword3', 'wordword4', 'wordword5', 'wordword5', 'wordword4', 'wordword3', 'wordword3'], [['3', 'wordword3'], ['4', 'wordword4'], ['5', 'wordword5']], 0], [['samesame', 'samesame'], [['a', 'samesame'], ['b', 'samesame']], 2], [['samesame', 'samesame', 'new', 'new'], [['b', 'samesame'], ['a', 'new']], 2], [['alphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalpha'], [], 0], [['aa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 3: [[['wordwordword0', 'wordwordword1', 'wordwordword2', 'wordwordword3', 'wordwordword4', 'wordwordword5', 'wordwordword6', 'wordwordword6', 'wordwordword5', 'wordwordword4', 'wordwordword4'], [['4', 'wordwordword4'], ['5', 'wordwordword5'], ['6', 'wordwordword6']], 0], [['samesamesame', 'samesamesame'], [['a', 'samesamesame'], ['b', 'samesamesame']], 2], [['samesamesame', 'samesamesame', 'new', 'new'], [['b', 'samesamesame'], ['a', 'new']], 2], [['alphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalpha'], [], 0], [['aaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 4: [[['wordwordwordword0', 'wordwordwordword1', 'wordwordwordword2', 'wordwordwordword3', 'wordwordwordword4', 'wordwordwordword5', 'wordwordwordword6', 'wordwordwordword7', 'wordwordwordword7', 'wordwordwordword6', 'wordwordwordword5', 'wordwordwordword5'], [['5', 'wordwordwordword5'], ['6', 'wordwordwordword6'], ['7', 'wordwordwordword7']], 0], [['samesamesamesame', 'samesamesamesame'], [['a', 'samesamesamesame'], ['b', 'samesamesamesame']], 2], [['samesamesamesame', 'samesamesamesame', 'new', 'new'], [['b', 'samesamesamesame'], ['a', 'new']], 2], [['alphaalphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalphaalpha'], [], 0], [['aaaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]], 5: [[['wordwordwordwordword0', 'wordwordwordwordword1', 'wordwordwordwordword2', 'wordwordwordwordword3', 'wordwordwordwordword4', 'wordwordwordwordword5', 'wordwordwordwordword6', 'wordwordwordwordword7', 'wordwordwordwordword8', 'wordwordwordwordword8', 'wordwordwordwordword7', 'wordwordwordwordword6', 'wordwordwordwordword6'], [['6', 'wordwordwordwordword6'], ['7', 'wordwordwordwordword7'], ['8', 'wordwordwordwordword8']], 0], [['samesamesamesamesame', 'samesamesamesamesame'], [['a', 'samesamesamesamesame'], ['b', 'samesamesamesamesame']], 2], [['samesamesamesamesame', 'samesamesamesamesame', 'new', 'new'], [['b', 'samesamesamesamesame'], ['a', 'new']], 2], [['alphaalphaalphaalphaalpha', 'beta', 'beta', 'gamma', 'gamma'], [['a', 'alphaalphaalphaalphaalpha'], ['b', 'beta'], ['c', 'gamma']], 2], [['alphaalphaalphaalphaalpha', 'beta', 'gamma', 'gamma'], [['b', 'beta'], ['c', 'gamma']], 1], [['alphaalphaalphaalphaalpha'], [], 0], [['aaaaa', 'b', 'c', 'c'], [['c', 'c']], 0], [[], [], 0]]}[N]\nfor i, expression in enumerate(fixtures):\n    check(\"trace-\"+str(i+1), solve(eval(expression)), expected[i])\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":"Stipulated bounded policy, not a browser, speech engine, platform API, or standards 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-assistive-announcements-speech-history-forget","generated_at":"2026-09-29T14:40:25.195150+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Deterministic controlled model of assistive announcement delivery.","repair":"Restore the stated transition: elif e[0]=='forget': history=[x for x in history if x[0]!=e[1]]; cursor=len(history)","root_cause":"Fault site: elif e[0]=='forget': history=[x for x in history if x[0]!=e[1]]; cursor=len(history) is implemented as elif e[0]=='forget': history=[]; cursor=0","sha256":"0a8bcc6059d8d83a2ad3c0ec6e5b6975961bbd8de2a3cffda5e36a251fbd946c","title":"Forget removes all replayable history · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.684,"exit_code":1,"observations":[{"actual":[["word0","word1","word2","word3","word4","word4","word3","word2","word2"],[["2","word2"],["3","word3"],["4","word4"]],0],"check":"trace-1","expected":[["word0","word1","word2","word3","word4","word4","word3","word2","word2"],[["2","word2"],["3","word3"],["4","word4"]],0],"passed":true},{"actual":[["same","same"],[["a","same"],["b","same"]],2],"check":"trace-2","expected":[["same","same"],[["a","same"],["b","same"]],2],"passed":true},{"actual":[["same","same","new","new"],[["b","same"],["a","new"]],2],"check":"trace-3","expected":[["same","same","new","new"],[["b","same"],["a","new"]],2],"passed":true},{"actual":[["alpha","beta","beta","gamma","gamma"],[["a","alpha"],["b","beta"],["c","gamma"]],2],"check":"trace-4","expected":[["alpha","beta","beta","gamma","gamma"],[["a","alpha"],["b","beta"],["c","gamma"]],2],"passed":true},{"actual":[["alpha","beta","gamma","beta"],[["b","beta"],["c","gamma"]],0],"check":"trace-5","expected":[["alpha","beta","gamma","gamma"],[["b","beta"],["c","gamma"]],1],"passed":false},{"actual":[["alpha"],[],0],"check":"trace-6","expected":[["alpha"],[],0],"passed":true},{"actual":[["a","b","c","c"],[["c","c"]],0],"check":"trace-7","expected":[["a","b","c","c"],[["c","c"]],0],"passed":true},{"actual":[[],[],0],"check":"trace-8","expected":[[],[],0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"word0\", \"word1\", \"word2\", \"word3\", \"word4\", \"word4\", \"word3\", \"word2\", \"word2\"], [[\"2\", \"word2\"], [\"3\", \"word3\"], [\"4\", \"word4\"]], 0], \"expected\": [[\"word0\", \"word1\", \"word2\", \"word3\", \"word4\", \"word4\", \"word3\", \"word2\", \"word2\"], [[\"2\", \"word2\"], [\"3\", \"word3\"], [\"4\", \"word4\"]], 0], \"passed\": true}, {\"check\": \"trace-2\", \"actual\": [[\"same\", \"same\"], [[\"a\", \"same\"], [\"b\", \"same\"]], 2], \"expected\": [[\"same\", \"same\"], [[\"a\", \"same\"], [\"b\", \"same\"]], 2], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[\"same\", \"same\", \"new\", \"new\"], [[\"b\", \"same\"], [\"a\", \"new\"]], 2], \"expected\": [[\"same\", \"same\", \"new\", \"new\"], [[\"b\", \"same\"], [\"a\", \"new\"]], 2], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"alpha\", \"beta\", \"beta\", \"gamma\", \"gamma\"], [[\"a\", \"alpha\"], [\"b\", \"beta\"], [\"c\", \"gamma\"]], 2], \"expected\": [[\"alpha\", \"beta\", \"beta\", \"gamma\", \"gamma\"], [[\"a\", \"alpha\"], [\"b\", \"beta\"], [\"c\", \"gamma\"]], 2], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"alpha\", \"beta\", \"gamma\", \"beta\"], [[\"b\", \"beta\"], [\"c\", \"gamma\"]], 0], \"expected\": [[\"alpha\", \"beta\", \"gamma\", \"gamma\"], [[\"b\", \"beta\"], [\"c\", \"gamma\"]], 1], \"passed\": false}, {\"check\": \"trace-6\", \"actual\": [[\"alpha\"], [], 0], \"expected\": [[\"alpha\"], [], 0], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[\"a\", \"b\", \"c\", \"c\"], [[\"c\", \"c\"]], 0], \"expected\": [[\"a\", \"b\", \"c\", \"c\"], [[\"c\", \"c\"]], 0], \"passed\": true}, {\"check\": \"trace-8\", \"actual\": [[], [], 0], \"expected\": [[], [], 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.521,"exit_code":1,"observations":[{"actual":[["word0","word1","word2","word3","word4","word4","word3","word2","word2"],[["2","word2"],["3","word3"],["4","word4"]],0],"check":"trace-1","expected":[["word0","word1","word2","word3","word4","word4","word3","word2","word2"],[["2","word2"],["3","word3"],["4","word4"]],0],"passed":true},{"actual":[["same","same"],[["a","same"],["b","same"]],2],"check":"trace-2","expected":[["same","same"],[["a","same"],["b","same"]],2],"passed":true},{"actual":[["same","same","new","new"],[["b","same"],["a","new"]],2],"check":"trace-3","expected":[["same","same","new","new"],[["b","same"],["a","new"]],2],"passed":true},{"actual":[["alpha","beta","beta","gamma","gamma"],[["a","alpha"],["b","beta"],["c","gamma"]],2],"check":"trace-4","expected":[["alpha","beta","beta","gamma","gamma"],[["a","alpha"],["b","beta"],["c","gamma"]],2],"passed":true},{"actual":[["alpha","beta","gamma"],[],0],"check":"trace-5","expected":[["alpha","beta","gamma","gamma"],[["b","beta"],["c","gamma"]],1],"passed":false},{"actual":[["alpha"],[],0],"check":"trace-6","expected":[["alpha"],[],0],"passed":true},{"actual":[["a","b","c","c"],[["c","c"]],0],"check":"trace-7","expected":[["a","b","c","c"],[["c","c"]],0],"passed":true},{"actual":[[],[],0],"check":"trace-8","expected":[[],[],0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"word0\", \"word1\", \"word2\", \"word3\", \"word4\", \"word4\", \"word3\", \"word2\", \"word2\"], [[\"2\", \"word2\"], [\"3\", \"word3\"], [\"4\", \"word4\"]], 0], \"expected\": [[\"word0\", \"word1\", \"word2\", \"word3\", \"word4\", \"word4\", \"word3\", \"word2\", \"word2\"], [[\"2\", \"word2\"], [\"3\", \"word3\"], [\"4\", \"word4\"]], 0], \"passed\": true}, {\"check\": \"trace-2\", \"actual\": [[\"same\", \"same\"], [[\"a\", \"same\"], [\"b\", \"same\"]], 2], \"expected\": [[\"same\", \"same\"], [[\"a\", \"same\"], [\"b\", \"same\"]], 2], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[\"same\", \"same\", \"new\", \"new\"], [[\"b\", \"same\"], [\"a\", \"new\"]], 2], \"expected\": [[\"same\", \"same\", \"new\", \"new\"], [[\"b\", \"same\"], [\"a\", \"new\"]], 2], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"alpha\", \"beta\", \"beta\", \"gamma\", \"gamma\"], [[\"a\", \"alpha\"], [\"b\", \"beta\"], [\"c\", \"gamma\"]], 2], \"expected\": [[\"alpha\", \"beta\", \"beta\", \"gamma\", \"gamma\"], [[\"a\", \"alpha\"], [\"b\", \"beta\"], [\"c\", \"gamma\"]], 2], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"alpha\", \"beta\", \"gamma\"], [], 0], \"expected\": [[\"alpha\", \"beta\", \"gamma\", \"gamma\"], [[\"b\", \"beta\"], [\"c\", \"gamma\"]], 1], \"passed\": false}, {\"check\": \"trace-6\", \"actual\": [[\"alpha\"], [], 0], \"expected\": [[\"alpha\"], [], 0], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[\"a\", \"b\", \"c\", \"c\"], [[\"c\", \"c\"]], 0], \"expected\": [[\"a\", \"b\", \"c\", \"c\"], [[\"c\", \"c\"]], 0], \"passed\": true}, {\"check\": \"trace-8\", \"actual\": [[], [], 0], \"expected\": [[], [], 0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.585,"exit_code":0,"observations":[{"actual":[["word0","word1","word2","word3","word4","word4","word3","word2","word2"],[["2","word2"],["3","word3"],["4","word4"]],0],"check":"trace-1","expected":[["word0","word1","word2","word3","word4","word4","word3","word2","word2"],[["2","word2"],["3","word3"],["4","word4"]],0],"passed":true},{"actual":[["same","same"],[["a","same"],["b","same"]],2],"check":"trace-2","expected":[["same","same"],[["a","same"],["b","same"]],2],"passed":true},{"actual":[["same","same","new","new"],[["b","same"],["a","new"]],2],"check":"trace-3","expected":[["same","same","new","new"],[["b","same"],["a","new"]],2],"passed":true},{"actual":[["alpha","beta","beta","gamma","gamma"],[["a","alpha"],["b","beta"],["c","gamma"]],2],"check":"trace-4","expected":[["alpha","beta","beta","gamma","gamma"],[["a","alpha"],["b","beta"],["c","gamma"]],2],"passed":true},{"actual":[["alpha","beta","gamma","gamma"],[["b","beta"],["c","gamma"]],1],"check":"trace-5","expected":[["alpha","beta","gamma","gamma"],[["b","beta"],["c","gamma"]],1],"passed":true},{"actual":[["alpha"],[],0],"check":"trace-6","expected":[["alpha"],[],0],"passed":true},{"actual":[["a","b","c","c"],[["c","c"]],0],"check":"trace-7","expected":[["a","b","c","c"],[["c","c"]],0],"passed":true},{"actual":[[],[],0],"check":"trace-8","expected":[[],[],0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"word0\", \"word1\", \"word2\", \"word3\", \"word4\", \"word4\", \"word3\", \"word2\", \"word2\"], [[\"2\", \"word2\"], [\"3\", \"word3\"], [\"4\", \"word4\"]], 0], \"expected\": [[\"word0\", \"word1\", \"word2\", \"word3\", \"word4\", \"word4\", \"word3\", \"word2\", \"word2\"], [[\"2\", \"word2\"], [\"3\", \"word3\"], [\"4\", \"word4\"]], 0], \"passed\": true}, {\"check\": \"trace-2\", \"actual\": [[\"same\", \"same\"], [[\"a\", \"same\"], [\"b\", \"same\"]], 2], \"expected\": [[\"same\", \"same\"], [[\"a\", \"same\"], [\"b\", \"same\"]], 2], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[\"same\", \"same\", \"new\", \"new\"], [[\"b\", \"same\"], [\"a\", \"new\"]], 2], \"expected\": [[\"same\", \"same\", \"new\", \"new\"], [[\"b\", \"same\"], [\"a\", \"new\"]], 2], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"alpha\", \"beta\", \"beta\", \"gamma\", \"gamma\"], [[\"a\", \"alpha\"], [\"b\", \"beta\"], [\"c\", \"gamma\"]], 2], \"expected\": [[\"alpha\", \"beta\", \"beta\", \"gamma\", \"gamma\"], [[\"a\", \"alpha\"], [\"b\", \"beta\"], [\"c\", \"gamma\"]], 2], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"alpha\", \"beta\", \"gamma\", \"gamma\"], [[\"b\", \"beta\"], [\"c\", \"gamma\"]], 1], \"expected\": [[\"alpha\", \"beta\", \"gamma\", \"gamma\"], [[\"b\", \"beta\"], [\"c\", \"gamma\"]], 1], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[\"alpha\"], [], 0], \"expected\": [[\"alpha\"], [], 0], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[\"a\", \"b\", \"c\", \"c\"], [[\"c\", \"c\"]], 0], \"expected\": [[\"a\", \"b\", \"c\", \"c\"], [[\"c\", \"c\"]], 0], \"passed\": true}, {\"check\": \"trace-8\", \"actual\": [[], [], 0], \"expected\": [[], [], 0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}