{"abstract":"The announcement trace violates the stated progress-narration contract.","category":"Assistive announcements","checks":8,"contract":"A task start records total and resets spoken milestone. Advance clamps monotone completion to total; a 25-percent bucket is announced only when it increases and before terminal status. Unknown total uses item-count messages. Complete announces exactly once, even for zero total. Fail announces failure and blocks progress. Retry reopens at zero and resets milestone. Rename affects future messages. Cancel drops task silently. Return speech and [id,done,status,bucket].","evaluation_group":"s3-announcement-progress-narration","failed_approach":"The attempted repair substitutes if bucket>t[4]: out.append(t[0]+': '+str(bucket*25)+'%') and still violates a regression oracle.","family":"s3-assistive-announcements-progress-narration-watermark","id":"FA-21036","implementations":{"attempt":{"sha256":"79826124b398a247e2909dc18b66a96dc47769cef8ee3bf9916fd9b76169a5c8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    tasks={}; out=[]\n    for e in events:\n        if e[0]=='start': tasks[e[1]]=[e[2],e[3],0,'running',0]\n        elif e[0]=='cancel': tasks.pop(e[1],None)\n        elif e[1] in tasks:\n            t=tasks[e[1]]\n            if e[0]=='rename': t[0]=e[2]\n            elif e[0]=='retry': t[2]=0; t[3]='running'; t[4]=0\n            elif e[0]=='fail' and t[3]=='running': t[3]='failed'; out.append(t[0]+': failed')\n            elif e[0]=='complete' and t[3]=='running': t[3]='complete'; out.append(t[0]+': complete')\n            elif e[0]=='advance' and t[3]=='running':\n                t[2]=max(t[2],min(e[2],t[1]) if t[1]>=0 else e[2])\n                if t[1]<0: out.append(t[0]+': '+str(t[2])+' items')\n                elif t[1]>0:\n                    bucket=t[2]*4//t[1]\n                    if bucket>t[4]: out.append(t[0]+': '+str(bucket*25)+'%')\n    return [out,[[k,v[2],v[3],v[4]] for k,v in tasks.items()]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['start','a','Download',4*N],['advance','a',N],['advance','a',N],['advance','a',0],['advance','a',8*N],['complete','a'],['complete','a']]\", \"[['start','a','Work',4*N],['advance','a',N],['fail','a'],['advance','a',4*N],['retry','a'],['advance','a',N],['rename','a','Retry'],['complete','a']]\", \"[['start','a','Unknown',-1],['advance','a',N+2],['advance','a',N],['complete','a']]\", \"[['start','a','Work',4*N],['advance','a',N],['fail','a'],['retry','a']]\", \"[['start','a','Zero',0],['complete','a'],['start','a','Again',N],['complete','a']]\", \"[['start','a','A',N],['start','b','B',N],['cancel','a']]\", \"[['start','a','Round',4*N+1],['advance','a',N]]\", '[]']\nexpected = {1: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 4, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 1, 'complete', 1]]], [['Unknown: 3 items', 'Unknown: 3 items', 'Unknown: complete'], [['a', 3, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 1, 'running', 0]]], [[], []]], 2: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 8, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 2, 'complete', 1]]], [['Unknown: 4 items', 'Unknown: 4 items', 'Unknown: complete'], [['a', 4, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 2, 'running', 0]]], [[], []]], 3: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 12, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 3, 'complete', 1]]], [['Unknown: 5 items', 'Unknown: 5 items', 'Unknown: complete'], [['a', 5, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 3, 'running', 0]]], [[], []]], 4: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 16, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 4, 'complete', 1]]], [['Unknown: 6 items', 'Unknown: 6 items', 'Unknown: complete'], [['a', 6, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 4, 'running', 0]]], [[], []]], 5: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 20, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 5, 'complete', 1]]], [['Unknown: 7 items', 'Unknown: 7 items', 'Unknown: complete'], [['a', 7, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 5, 'running', 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":"755e00762dd3a6c7aa9cbb21a9bfffb3c496049d5394e8458d5aded14b3fd764","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    tasks={}; out=[]\n    for e in events:\n        if e[0]=='start': tasks[e[1]]=[e[2],e[3],0,'running',0]\n        elif e[0]=='cancel': tasks.pop(e[1],None)\n        elif e[1] in tasks:\n            t=tasks[e[1]]\n            if e[0]=='rename': t[0]=e[2]\n            elif e[0]=='retry': t[2]=0; t[3]='running'; t[4]=0\n            elif e[0]=='fail' and t[3]=='running': t[3]='failed'; out.append(t[0]+': failed')\n            elif e[0]=='complete' and t[3]=='running': t[3]='complete'; out.append(t[0]+': complete')\n            elif e[0]=='advance' and t[3]=='running':\n                t[2]=max(t[2],min(e[2],t[1]) if t[1]>=0 else e[2])\n                if t[1]<0: out.append(t[0]+': '+str(t[2])+' items')\n                elif t[1]>0:\n                    bucket=t[2]*4//t[1]\n                    if bucket>=t[4]: out.append(t[0]+': '+str(bucket*25)+'%'); t[4]=bucket\n    return [out,[[k,v[2],v[3],v[4]] for k,v in tasks.items()]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['start','a','Download',4*N],['advance','a',N],['advance','a',N],['advance','a',0],['advance','a',8*N],['complete','a'],['complete','a']]\", \"[['start','a','Work',4*N],['advance','a',N],['fail','a'],['advance','a',4*N],['retry','a'],['advance','a',N],['rename','a','Retry'],['complete','a']]\", \"[['start','a','Unknown',-1],['advance','a',N+2],['advance','a',N],['complete','a']]\", \"[['start','a','Work',4*N],['advance','a',N],['fail','a'],['retry','a']]\", \"[['start','a','Zero',0],['complete','a'],['start','a','Again',N],['complete','a']]\", \"[['start','a','A',N],['start','b','B',N],['cancel','a']]\", \"[['start','a','Round',4*N+1],['advance','a',N]]\", '[]']\nexpected = {1: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 4, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 1, 'complete', 1]]], [['Unknown: 3 items', 'Unknown: 3 items', 'Unknown: complete'], [['a', 3, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 1, 'running', 0]]], [[], []]], 2: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 8, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 2, 'complete', 1]]], [['Unknown: 4 items', 'Unknown: 4 items', 'Unknown: complete'], [['a', 4, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 2, 'running', 0]]], [[], []]], 3: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 12, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 3, 'complete', 1]]], [['Unknown: 5 items', 'Unknown: 5 items', 'Unknown: complete'], [['a', 5, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 3, 'running', 0]]], [[], []]], 4: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 16, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 4, 'complete', 1]]], [['Unknown: 6 items', 'Unknown: 6 items', 'Unknown: complete'], [['a', 6, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 4, 'running', 0]]], [[], []]], 5: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 20, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 5, 'complete', 1]]], [['Unknown: 7 items', 'Unknown: 7 items', 'Unknown: complete'], [['a', 7, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 5, 'running', 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":"c55b571569059db6f4393d6a07583784fbf331fb0d653cdf2bc1fa81215398b3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events):\n    tasks={}; out=[]\n    for e in events:\n        if e[0]=='start': tasks[e[1]]=[e[2],e[3],0,'running',0]\n        elif e[0]=='cancel': tasks.pop(e[1],None)\n        elif e[1] in tasks:\n            t=tasks[e[1]]\n            if e[0]=='rename': t[0]=e[2]\n            elif e[0]=='retry': t[2]=0; t[3]='running'; t[4]=0\n            elif e[0]=='fail' and t[3]=='running': t[3]='failed'; out.append(t[0]+': failed')\n            elif e[0]=='complete' and t[3]=='running': t[3]='complete'; out.append(t[0]+': complete')\n            elif e[0]=='advance' and t[3]=='running':\n                t[2]=max(t[2],min(e[2],t[1]) if t[1]>=0 else e[2])\n                if t[1]<0: out.append(t[0]+': '+str(t[2])+' items')\n                elif t[1]>0:\n                    bucket=t[2]*4//t[1]\n                    if bucket>t[4]: out.append(t[0]+': '+str(bucket*25)+'%'); t[4]=bucket\n    return [out,[[k,v[2],v[3],v[4]] for k,v in tasks.items()]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [\"[['start','a','Download',4*N],['advance','a',N],['advance','a',N],['advance','a',0],['advance','a',8*N],['complete','a'],['complete','a']]\", \"[['start','a','Work',4*N],['advance','a',N],['fail','a'],['advance','a',4*N],['retry','a'],['advance','a',N],['rename','a','Retry'],['complete','a']]\", \"[['start','a','Unknown',-1],['advance','a',N+2],['advance','a',N],['complete','a']]\", \"[['start','a','Work',4*N],['advance','a',N],['fail','a'],['retry','a']]\", \"[['start','a','Zero',0],['complete','a'],['start','a','Again',N],['complete','a']]\", \"[['start','a','A',N],['start','b','B',N],['cancel','a']]\", \"[['start','a','Round',4*N+1],['advance','a',N]]\", '[]']\nexpected = {1: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 4, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 1, 'complete', 1]]], [['Unknown: 3 items', 'Unknown: 3 items', 'Unknown: complete'], [['a', 3, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 1, 'running', 0]]], [[], []]], 2: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 8, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 2, 'complete', 1]]], [['Unknown: 4 items', 'Unknown: 4 items', 'Unknown: complete'], [['a', 4, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 2, 'running', 0]]], [[], []]], 3: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 12, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 3, 'complete', 1]]], [['Unknown: 5 items', 'Unknown: 5 items', 'Unknown: complete'], [['a', 5, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 3, 'running', 0]]], [[], []]], 4: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 16, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 4, 'complete', 1]]], [['Unknown: 6 items', 'Unknown: 6 items', 'Unknown: complete'], [['a', 6, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 4, 'running', 0]]], [[], []]], 5: [[['Download: 25%', 'Download: 100%', 'Download: complete'], [['a', 20, 'complete', 4]]], [['Work: 25%', 'Work: failed', 'Work: 25%', 'Retry: complete'], [['a', 5, 'complete', 1]]], [['Unknown: 7 items', 'Unknown: 7 items', 'Unknown: complete'], [['a', 7, 'complete', 0]]], [['Work: 25%', 'Work: failed'], [['a', 0, 'running', 0]]], [['Zero: complete', 'Again: complete'], [['a', 0, 'complete', 0]]], [[], [['b', 0, 'running', 0]]], [[], [['a', 5, 'running', 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-progress-narration-watermark","generated_at":"2026-09-29T14:40:24.669192+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: if bucket>t[4]: out.append(t[0]+': '+str(bucket*25)+'%'); t[4]=bucket","root_cause":"Fault site: if bucket>t[4]: out.append(t[0]+': '+str(bucket*25)+'%'); t[4]=bucket is implemented as if bucket>=t[4]: out.append(t[0]+': '+str(bucket*25)+'%'); t[4]=bucket","sha256":"58fa8cab2a41889c7f9f9d50e1e04be81df0a6bfadae5f3baf1f122548fd0737","title":"Repeated progress speaks the same milestone again · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.166,"exit_code":1,"observations":[{"actual":[["Download: 25%","Download: 25%","Download: 25%","Download: 100%","Download: complete"],[["a",4,"complete",0]]],"check":"trace-1","expected":[["Download: 25%","Download: 100%","Download: complete"],[["a",4,"complete",4]]],"passed":false},{"actual":[["Work: 25%","Work: failed","Work: 25%","Retry: complete"],[["a",1,"complete",0]]],"check":"trace-2","expected":[["Work: 25%","Work: failed","Work: 25%","Retry: complete"],[["a",1,"complete",1]]],"passed":false},{"actual":[["Unknown: 3 items","Unknown: 3 items","Unknown: complete"],[["a",3,"complete",0]]],"check":"trace-3","expected":[["Unknown: 3 items","Unknown: 3 items","Unknown: complete"],[["a",3,"complete",0]]],"passed":true},{"actual":[["Work: 25%","Work: failed"],[["a",0,"running",0]]],"check":"trace-4","expected":[["Work: 25%","Work: failed"],[["a",0,"running",0]]],"passed":true},{"actual":[["Zero: complete","Again: complete"],[["a",0,"complete",0]]],"check":"trace-5","expected":[["Zero: complete","Again: complete"],[["a",0,"complete",0]]],"passed":true},{"actual":[[],[["b",0,"running",0]]],"check":"trace-6","expected":[[],[["b",0,"running",0]]],"passed":true},{"actual":[[],[["a",1,"running",0]]],"check":"trace-7","expected":[[],[["a",1,"running",0]]],"passed":true},{"actual":[[],[]],"check":"trace-8","expected":[[],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"Download: 25%\", \"Download: 25%\", \"Download: 25%\", \"Download: 100%\", \"Download: complete\"], [[\"a\", 4, \"complete\", 0]]], \"expected\": [[\"Download: 25%\", \"Download: 100%\", \"Download: complete\"], [[\"a\", 4, \"complete\", 4]]], \"passed\": false}, {\"check\": \"trace-2\", \"actual\": [[\"Work: 25%\", \"Work: failed\", \"Work: 25%\", \"Retry: complete\"], [[\"a\", 1, \"complete\", 0]]], \"expected\": [[\"Work: 25%\", \"Work: failed\", \"Work: 25%\", \"Retry: complete\"], [[\"a\", 1, \"complete\", 1]]], \"passed\": false}, {\"check\": \"trace-3\", \"actual\": [[\"Unknown: 3 items\", \"Unknown: 3 items\", \"Unknown: complete\"], [[\"a\", 3, \"complete\", 0]]], \"expected\": [[\"Unknown: 3 items\", \"Unknown: 3 items\", \"Unknown: complete\"], [[\"a\", 3, \"complete\", 0]]], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"Work: 25%\", \"Work: failed\"], [[\"a\", 0, \"running\", 0]]], \"expected\": [[\"Work: 25%\", \"Work: failed\"], [[\"a\", 0, \"running\", 0]]], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"Zero: complete\", \"Again: complete\"], [[\"a\", 0, \"complete\", 0]]], \"expected\": [[\"Zero: complete\", \"Again: complete\"], [[\"a\", 0, \"complete\", 0]]], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [[\"b\", 0, \"running\", 0]]], \"expected\": [[], [[\"b\", 0, \"running\", 0]]], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[], [[\"a\", 1, \"running\", 0]]], \"expected\": [[], [[\"a\", 1, \"running\", 0]]], \"passed\": true}, {\"check\": \"trace-8\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.436,"exit_code":1,"observations":[{"actual":[["Download: 25%","Download: 25%","Download: 25%","Download: 100%","Download: complete"],[["a",4,"complete",4]]],"check":"trace-1","expected":[["Download: 25%","Download: 100%","Download: complete"],[["a",4,"complete",4]]],"passed":false},{"actual":[["Work: 25%","Work: failed","Work: 25%","Retry: complete"],[["a",1,"complete",1]]],"check":"trace-2","expected":[["Work: 25%","Work: failed","Work: 25%","Retry: complete"],[["a",1,"complete",1]]],"passed":true},{"actual":[["Unknown: 3 items","Unknown: 3 items","Unknown: complete"],[["a",3,"complete",0]]],"check":"trace-3","expected":[["Unknown: 3 items","Unknown: 3 items","Unknown: complete"],[["a",3,"complete",0]]],"passed":true},{"actual":[["Work: 25%","Work: failed"],[["a",0,"running",0]]],"check":"trace-4","expected":[["Work: 25%","Work: failed"],[["a",0,"running",0]]],"passed":true},{"actual":[["Zero: complete","Again: complete"],[["a",0,"complete",0]]],"check":"trace-5","expected":[["Zero: complete","Again: complete"],[["a",0,"complete",0]]],"passed":true},{"actual":[[],[["b",0,"running",0]]],"check":"trace-6","expected":[[],[["b",0,"running",0]]],"passed":true},{"actual":[["Round: 0%"],[["a",1,"running",0]]],"check":"trace-7","expected":[[],[["a",1,"running",0]]],"passed":false},{"actual":[[],[]],"check":"trace-8","expected":[[],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"Download: 25%\", \"Download: 25%\", \"Download: 25%\", \"Download: 100%\", \"Download: complete\"], [[\"a\", 4, \"complete\", 4]]], \"expected\": [[\"Download: 25%\", \"Download: 100%\", \"Download: complete\"], [[\"a\", 4, \"complete\", 4]]], \"passed\": false}, {\"check\": \"trace-2\", \"actual\": [[\"Work: 25%\", \"Work: failed\", \"Work: 25%\", \"Retry: complete\"], [[\"a\", 1, \"complete\", 1]]], \"expected\": [[\"Work: 25%\", \"Work: failed\", \"Work: 25%\", \"Retry: complete\"], [[\"a\", 1, \"complete\", 1]]], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[\"Unknown: 3 items\", \"Unknown: 3 items\", \"Unknown: complete\"], [[\"a\", 3, \"complete\", 0]]], \"expected\": [[\"Unknown: 3 items\", \"Unknown: 3 items\", \"Unknown: complete\"], [[\"a\", 3, \"complete\", 0]]], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"Work: 25%\", \"Work: failed\"], [[\"a\", 0, \"running\", 0]]], \"expected\": [[\"Work: 25%\", \"Work: failed\"], [[\"a\", 0, \"running\", 0]]], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"Zero: complete\", \"Again: complete\"], [[\"a\", 0, \"complete\", 0]]], \"expected\": [[\"Zero: complete\", \"Again: complete\"], [[\"a\", 0, \"complete\", 0]]], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [[\"b\", 0, \"running\", 0]]], \"expected\": [[], [[\"b\", 0, \"running\", 0]]], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[\"Round: 0%\"], [[\"a\", 1, \"running\", 0]]], \"expected\": [[], [[\"a\", 1, \"running\", 0]]], \"passed\": false}, {\"check\": \"trace-8\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.488,"exit_code":0,"observations":[{"actual":[["Download: 25%","Download: 100%","Download: complete"],[["a",4,"complete",4]]],"check":"trace-1","expected":[["Download: 25%","Download: 100%","Download: complete"],[["a",4,"complete",4]]],"passed":true},{"actual":[["Work: 25%","Work: failed","Work: 25%","Retry: complete"],[["a",1,"complete",1]]],"check":"trace-2","expected":[["Work: 25%","Work: failed","Work: 25%","Retry: complete"],[["a",1,"complete",1]]],"passed":true},{"actual":[["Unknown: 3 items","Unknown: 3 items","Unknown: complete"],[["a",3,"complete",0]]],"check":"trace-3","expected":[["Unknown: 3 items","Unknown: 3 items","Unknown: complete"],[["a",3,"complete",0]]],"passed":true},{"actual":[["Work: 25%","Work: failed"],[["a",0,"running",0]]],"check":"trace-4","expected":[["Work: 25%","Work: failed"],[["a",0,"running",0]]],"passed":true},{"actual":[["Zero: complete","Again: complete"],[["a",0,"complete",0]]],"check":"trace-5","expected":[["Zero: complete","Again: complete"],[["a",0,"complete",0]]],"passed":true},{"actual":[[],[["b",0,"running",0]]],"check":"trace-6","expected":[[],[["b",0,"running",0]]],"passed":true},{"actual":[[],[["a",1,"running",0]]],"check":"trace-7","expected":[[],[["a",1,"running",0]]],"passed":true},{"actual":[[],[]],"check":"trace-8","expected":[[],[]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"trace-1\", \"actual\": [[\"Download: 25%\", \"Download: 100%\", \"Download: complete\"], [[\"a\", 4, \"complete\", 4]]], \"expected\": [[\"Download: 25%\", \"Download: 100%\", \"Download: complete\"], [[\"a\", 4, \"complete\", 4]]], \"passed\": true}, {\"check\": \"trace-2\", \"actual\": [[\"Work: 25%\", \"Work: failed\", \"Work: 25%\", \"Retry: complete\"], [[\"a\", 1, \"complete\", 1]]], \"expected\": [[\"Work: 25%\", \"Work: failed\", \"Work: 25%\", \"Retry: complete\"], [[\"a\", 1, \"complete\", 1]]], \"passed\": true}, {\"check\": \"trace-3\", \"actual\": [[\"Unknown: 3 items\", \"Unknown: 3 items\", \"Unknown: complete\"], [[\"a\", 3, \"complete\", 0]]], \"expected\": [[\"Unknown: 3 items\", \"Unknown: 3 items\", \"Unknown: complete\"], [[\"a\", 3, \"complete\", 0]]], \"passed\": true}, {\"check\": \"trace-4\", \"actual\": [[\"Work: 25%\", \"Work: failed\"], [[\"a\", 0, \"running\", 0]]], \"expected\": [[\"Work: 25%\", \"Work: failed\"], [[\"a\", 0, \"running\", 0]]], \"passed\": true}, {\"check\": \"trace-5\", \"actual\": [[\"Zero: complete\", \"Again: complete\"], [[\"a\", 0, \"complete\", 0]]], \"expected\": [[\"Zero: complete\", \"Again: complete\"], [[\"a\", 0, \"complete\", 0]]], \"passed\": true}, {\"check\": \"trace-6\", \"actual\": [[], [[\"b\", 0, \"running\", 0]]], \"expected\": [[], [[\"b\", 0, \"running\", 0]]], \"passed\": true}, {\"check\": \"trace-7\", \"actual\": [[], [[\"a\", 1, \"running\", 0]]], \"expected\": [[], [[\"a\", 1, \"running\", 0]]], \"passed\": true}, {\"check\": \"trace-8\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}