{"abstract":"Completion event once drained.","category":"Client state","checks":70,"contract":"The client stream view tracks a chunk cursor independently from rendered text. Per-frame budgets consume chunks including empty chunks. Completion waits for drain, and cancellation preserves committed text but discards pending output. Operation completion-event-once-drained has the six explicit input/output oracles below.","evaluation_group":"s3-client-state-stream-view","failed_approach":"The partial repair `cursor==len(chunks)` still violates the explicit fixture contract.","family":"s3-client-state-stream-view-completion-event-once-drained","id":"FA-24571","implementations":{"attempt":{"sha256":"13608ea507e376b916711dff0ceab124ee722131edea3575a6f6ff9c7bd08478","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    chunks, cursor, committed, finished, cancelled, limit = s\n    if operation == 'append-only-unseen-chunks':\n        return committed+''.join(chunks[cursor:])\n    if operation == 'render-budget-prefix':\n        return chunks[cursor:cursor+limit]\n    if operation == 'cursor-advances-by-consumed-count':\n        return cursor+len(chunks[cursor:cursor+limit])\n    if operation == 'cancel-freezes-visible-text':\n        return committed if cancelled else committed+''.join(chunks[cursor:])\n    if operation == 'finished-but-buffered-state':\n        return 'draining' if finished and cursor<len(chunks) else ('complete' if finished else 'streaming')\n    if operation == 'empty-chunk-consumes-position':\n        return len(chunks[cursor:])\n    if operation == 'unconsumed-tail-after-frame':\n        return chunks[cursor+limit:]\n    if operation == 'completion-event-once-drained':\n        return cursor==len(chunks)\n    if operation == 'render-frame-needed':\n        return not cancelled and cursor<len(chunks) and limit>0\n    if operation == 'abort-discards-buffered-suffix':\n        return [] if cancelled else chunks[cursor:]\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('append-only-unseen-chunks scenario 1', solve('append-only-unseen-chunks', (['a'*N,'b','c'],1,'old',False,False,2)), 'oldbc')\ncheck('append-only-unseen-chunks scenario 2', solve('append-only-unseen-chunks', ([],0,'',True,False,2)), '')\ncheck('append-only-unseen-chunks scenario 3', solve('append-only-unseen-chunks', (['a','b'],2,'ab',True,False,2)), 'ab')\ncheck('append-only-unseen-chunks scenario 4', solve('append-only-unseen-chunks', (['a','b'],0,'old',False,True,1)), 'oldab')\ncheck('append-only-unseen-chunks scenario 5', solve('append-only-unseen-chunks', (['','x'],0,'',False,False,0)), 'x')\ncheck('append-only-unseen-chunks scenario 6', solve('append-only-unseen-chunks', (['a','b','c'],1,'a',True,False,1)), 'abc')\ncheck('render-budget-prefix scenario 1', solve('render-budget-prefix', (['a'*N,'b','c'],1,'old',False,False,2)), ['b','c'])\ncheck('render-budget-prefix scenario 2', solve('render-budget-prefix', ([],0,'',True,False,2)), [])\ncheck('render-budget-prefix scenario 3', solve('render-budget-prefix', (['a','b'],2,'ab',True,False,2)), [])\ncheck('render-budget-prefix scenario 4', solve('render-budget-prefix', (['a','b'],0,'old',False,True,1)), ['a'])\ncheck('render-budget-prefix scenario 5', solve('render-budget-prefix', (['','x'],0,'',False,False,0)), [])\ncheck('render-budget-prefix scenario 6', solve('render-budget-prefix', (['a','b','c'],1,'a',True,False,1)), ['b'])\ncheck('cursor-advances-by-consumed-count scenario 1', solve('cursor-advances-by-consumed-count', (['a'*N,'b','c'],1,'old',False,False,2)), 3)\ncheck('cursor-advances-by-consumed-count scenario 2', solve('cursor-advances-by-consumed-count', ([],0,'',True,False,2)), 0)\ncheck('cursor-advances-by-consumed-count scenario 3', solve('cursor-advances-by-consumed-count', (['a','b'],2,'ab',True,False,2)), 2)\ncheck('cursor-advances-by-consumed-count scenario 4', solve('cursor-advances-by-consumed-count', (['a','b'],0,'old',False,True,1)), 1)\ncheck('cursor-advances-by-consumed-count scenario 5', solve('cursor-advances-by-consumed-count', (['','x'],0,'',False,False,0)), 0)\ncheck('cursor-advances-by-consumed-count scenario 6', solve('cursor-advances-by-consumed-count', (['a','b','c'],1,'a',True,False,1)), 2)\ncheck('cancel-freezes-visible-text scenario 1', solve('cancel-freezes-visible-text', (['a'*N,'b','c'],1,'old',False,False,2)), 'oldbc')\ncheck('cancel-freezes-visible-text scenario 2', solve('cancel-freezes-visible-text', ([],0,'',True,False,2)), '')\ncheck('cancel-freezes-visible-text scenario 3', solve('cancel-freezes-visible-text', (['a','b'],2,'ab',True,False,2)), 'ab')\ncheck('cancel-freezes-visible-text scenario 4', solve('cancel-freezes-visible-text', (['a','b'],0,'old',False,True,1)), 'old')\ncheck('cancel-freezes-visible-text scenario 5', solve('cancel-freezes-visible-text', (['','x'],0,'',False,False,0)), 'x')\ncheck('cancel-freezes-visible-text scenario 6', solve('cancel-freezes-visible-text', (['a','b','c'],1,'a',True,False,1)), 'abc')\ncheck('finished-but-buffered-state scenario 1', solve('finished-but-buffered-state', (['a'*N,'b','c'],1,'old',False,False,2)), 'streaming')\ncheck('finished-but-buffered-state scenario 2', solve('finished-but-buffered-state', ([],0,'',True,False,2)), 'complete')\ncheck('finished-but-buffered-state scenario 3', solve('finished-but-buffered-state', (['a','b'],2,'ab',True,False,2)), 'complete')\ncheck('finished-but-buffered-state scenario 4', solve('finished-but-buffered-state', (['a','b'],0,'old',False,True,1)), 'streaming')\ncheck('finished-but-buffered-state scenario 5', solve('finished-but-buffered-state', (['','x'],0,'',False,False,0)), 'streaming')\ncheck('finished-but-buffered-state scenario 6', solve('finished-but-buffered-state', (['a','b','c'],1,'a',True,False,1)), 'draining')\ncheck('empty-chunk-consumes-position scenario 1', solve('empty-chunk-consumes-position', (['a'*N,'b','c'],1,'old',False,False,2)), 2)\ncheck('empty-chunk-consumes-position scenario 2', solve('empty-chunk-consumes-position', ([],0,'',True,False,2)), 0)\ncheck('empty-chunk-consumes-position scenario 3', solve('empty-chunk-consumes-position', (['a','b'],2,'ab',True,False,2)), 0)\ncheck('empty-chunk-consumes-position scenario 4', solve('empty-chunk-consumes-position', (['a','b'],0,'old',False,True,1)), 2)\ncheck('empty-chunk-consumes-position scenario 5', solve('empty-chunk-consumes-position', (['','x'],0,'',False,False,0)), 2)\ncheck('empty-chunk-consumes-position scenario 6', solve('empty-chunk-consumes-position', (['a','b','c'],1,'a',True,False,1)), 2)\ncheck('unconsumed-tail-after-frame scenario 1', solve('unconsumed-tail-after-frame', (['a'*N,'b','c'],1,'old',False,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 2', solve('unconsumed-tail-after-frame', ([],0,'',True,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 3', solve('unconsumed-tail-after-frame', (['a','b'],2,'ab',True,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 4', solve('unconsumed-tail-after-frame', (['a','b'],0,'old',False,True,1)), ['b'])\ncheck('unconsumed-tail-after-frame scenario 5', solve('unconsumed-tail-after-frame', (['','x'],0,'',False,False,0)), ['','x'])\ncheck('unconsumed-tail-after-frame scenario 6', solve('unconsumed-tail-after-frame', (['a','b','c'],1,'a',True,False,1)), ['c'])\ncheck('completion-event-once-drained scenario 1', solve('completion-event-once-drained', (['a'*N,'b','c'],1,'old',False,False,2)), False)\ncheck('completion-event-once-drained scenario 2', solve('completion-event-once-drained', ([],0,'',True,False,2)), True)\ncheck('completion-event-once-drained scenario 3', solve('completion-event-once-drained', (['a','b'],2,'ab',True,False,2)), True)\ncheck('completion-event-once-drained scenario 4', solve('completion-event-once-drained', (['a','b'],0,'old',False,True,1)), False)\ncheck('completion-event-once-drained scenario 5', solve('completion-event-once-drained', (['','x'],0,'',False,False,0)), False)\ncheck('completion-event-once-drained scenario 6', solve('completion-event-once-drained', (['a','b','c'],1,'a',True,False,1)), False)\ncheck('render-frame-needed scenario 1', solve('render-frame-needed', (['a'*N,'b','c'],1,'old',False,False,2)), True)\ncheck('render-frame-needed scenario 2', solve('render-frame-needed', ([],0,'',True,False,2)), False)\ncheck('render-frame-needed scenario 3', solve('render-frame-needed', (['a','b'],2,'ab',True,False,2)), False)\ncheck('render-frame-needed scenario 4', solve('render-frame-needed', (['a','b'],0,'old',False,True,1)), False)\ncheck('render-frame-needed scenario 5', solve('render-frame-needed', (['','x'],0,'',False,False,0)), False)\ncheck('render-frame-needed scenario 6', solve('render-frame-needed', (['a','b','c'],1,'a',True,False,1)), True)\ncheck('abort-discards-buffered-suffix scenario 1', solve('abort-discards-buffered-suffix', (['a'*N,'b','c'],1,'old',False,False,2)), ['b','c'])\ncheck('abort-discards-buffered-suffix scenario 2', solve('abort-discards-buffered-suffix', ([],0,'',True,False,2)), [])\ncheck('abort-discards-buffered-suffix scenario 3', solve('abort-discards-buffered-suffix', (['a','b'],2,'ab',True,False,2)), [])\ncheck('abort-discards-buffered-suffix scenario 4', solve('abort-discards-buffered-suffix', (['a','b'],0,'old',False,True,1)), [])\ncheck('abort-discards-buffered-suffix scenario 5', solve('abort-discards-buffered-suffix', (['','x'],0,'',False,False,0)), ['','x'])\ncheck('abort-discards-buffered-suffix scenario 6', solve('abort-discards-buffered-suffix', (['a','b','c'],1,'a',True,False,1)), ['b','c'])\ncheck('empty response still streaming before end signal: append-only-unseen-chunks', solve('append-only-unseen-chunks', ([],0,'',False,False,1)), '')\ncheck('empty response still streaming before end signal: render-budget-prefix', solve('render-budget-prefix', ([],0,'',False,False,1)), [])\ncheck('empty response still streaming before end signal: cursor-advances-by-consumed-count', solve('cursor-advances-by-consumed-count', ([],0,'',False,False,1)), 0)\ncheck('empty response still streaming before end signal: cancel-freezes-visible-text', solve('cancel-freezes-visible-text', ([],0,'',False,False,1)), '')\ncheck('empty response still streaming before end signal: finished-but-buffered-state', solve('finished-but-buffered-state', ([],0,'',False,False,1)), 'streaming')\ncheck('empty response still streaming before end signal: empty-chunk-consumes-position', solve('empty-chunk-consumes-position', ([],0,'',False,False,1)), 0)\ncheck('empty response still streaming before end signal: unconsumed-tail-after-frame', solve('unconsumed-tail-after-frame', ([],0,'',False,False,1)), [])\ncheck('empty response still streaming before end signal: completion-event-once-drained', solve('completion-event-once-drained', ([],0,'',False,False,1)), False)\ncheck('empty response still streaming before end signal: render-frame-needed', solve('render-frame-needed', ([],0,'',False,False,1)), False)\ncheck('empty response still streaming before end signal: abort-discards-buffered-suffix', solve('abort-discards-buffered-suffix', ([],0,'',False,False,1)), [])\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":"13e8407dbce628d647766c7ee9aef37dabec440eb4e640cd19f6edd34ebb0937","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    chunks, cursor, committed, finished, cancelled, limit = s\n    if operation == 'append-only-unseen-chunks':\n        return committed+''.join(chunks[cursor:])\n    if operation == 'render-budget-prefix':\n        return chunks[cursor:cursor+limit]\n    if operation == 'cursor-advances-by-consumed-count':\n        return cursor+len(chunks[cursor:cursor+limit])\n    if operation == 'cancel-freezes-visible-text':\n        return committed if cancelled else committed+''.join(chunks[cursor:])\n    if operation == 'finished-but-buffered-state':\n        return 'draining' if finished and cursor<len(chunks) else ('complete' if finished else 'streaming')\n    if operation == 'empty-chunk-consumes-position':\n        return len(chunks[cursor:])\n    if operation == 'unconsumed-tail-after-frame':\n        return chunks[cursor+limit:]\n    if operation == 'completion-event-once-drained':\n        return finished\n    if operation == 'render-frame-needed':\n        return not cancelled and cursor<len(chunks) and limit>0\n    if operation == 'abort-discards-buffered-suffix':\n        return [] if cancelled else chunks[cursor:]\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('append-only-unseen-chunks scenario 1', solve('append-only-unseen-chunks', (['a'*N,'b','c'],1,'old',False,False,2)), 'oldbc')\ncheck('append-only-unseen-chunks scenario 2', solve('append-only-unseen-chunks', ([],0,'',True,False,2)), '')\ncheck('append-only-unseen-chunks scenario 3', solve('append-only-unseen-chunks', (['a','b'],2,'ab',True,False,2)), 'ab')\ncheck('append-only-unseen-chunks scenario 4', solve('append-only-unseen-chunks', (['a','b'],0,'old',False,True,1)), 'oldab')\ncheck('append-only-unseen-chunks scenario 5', solve('append-only-unseen-chunks', (['','x'],0,'',False,False,0)), 'x')\ncheck('append-only-unseen-chunks scenario 6', solve('append-only-unseen-chunks', (['a','b','c'],1,'a',True,False,1)), 'abc')\ncheck('render-budget-prefix scenario 1', solve('render-budget-prefix', (['a'*N,'b','c'],1,'old',False,False,2)), ['b','c'])\ncheck('render-budget-prefix scenario 2', solve('render-budget-prefix', ([],0,'',True,False,2)), [])\ncheck('render-budget-prefix scenario 3', solve('render-budget-prefix', (['a','b'],2,'ab',True,False,2)), [])\ncheck('render-budget-prefix scenario 4', solve('render-budget-prefix', (['a','b'],0,'old',False,True,1)), ['a'])\ncheck('render-budget-prefix scenario 5', solve('render-budget-prefix', (['','x'],0,'',False,False,0)), [])\ncheck('render-budget-prefix scenario 6', solve('render-budget-prefix', (['a','b','c'],1,'a',True,False,1)), ['b'])\ncheck('cursor-advances-by-consumed-count scenario 1', solve('cursor-advances-by-consumed-count', (['a'*N,'b','c'],1,'old',False,False,2)), 3)\ncheck('cursor-advances-by-consumed-count scenario 2', solve('cursor-advances-by-consumed-count', ([],0,'',True,False,2)), 0)\ncheck('cursor-advances-by-consumed-count scenario 3', solve('cursor-advances-by-consumed-count', (['a','b'],2,'ab',True,False,2)), 2)\ncheck('cursor-advances-by-consumed-count scenario 4', solve('cursor-advances-by-consumed-count', (['a','b'],0,'old',False,True,1)), 1)\ncheck('cursor-advances-by-consumed-count scenario 5', solve('cursor-advances-by-consumed-count', (['','x'],0,'',False,False,0)), 0)\ncheck('cursor-advances-by-consumed-count scenario 6', solve('cursor-advances-by-consumed-count', (['a','b','c'],1,'a',True,False,1)), 2)\ncheck('cancel-freezes-visible-text scenario 1', solve('cancel-freezes-visible-text', (['a'*N,'b','c'],1,'old',False,False,2)), 'oldbc')\ncheck('cancel-freezes-visible-text scenario 2', solve('cancel-freezes-visible-text', ([],0,'',True,False,2)), '')\ncheck('cancel-freezes-visible-text scenario 3', solve('cancel-freezes-visible-text', (['a','b'],2,'ab',True,False,2)), 'ab')\ncheck('cancel-freezes-visible-text scenario 4', solve('cancel-freezes-visible-text', (['a','b'],0,'old',False,True,1)), 'old')\ncheck('cancel-freezes-visible-text scenario 5', solve('cancel-freezes-visible-text', (['','x'],0,'',False,False,0)), 'x')\ncheck('cancel-freezes-visible-text scenario 6', solve('cancel-freezes-visible-text', (['a','b','c'],1,'a',True,False,1)), 'abc')\ncheck('finished-but-buffered-state scenario 1', solve('finished-but-buffered-state', (['a'*N,'b','c'],1,'old',False,False,2)), 'streaming')\ncheck('finished-but-buffered-state scenario 2', solve('finished-but-buffered-state', ([],0,'',True,False,2)), 'complete')\ncheck('finished-but-buffered-state scenario 3', solve('finished-but-buffered-state', (['a','b'],2,'ab',True,False,2)), 'complete')\ncheck('finished-but-buffered-state scenario 4', solve('finished-but-buffered-state', (['a','b'],0,'old',False,True,1)), 'streaming')\ncheck('finished-but-buffered-state scenario 5', solve('finished-but-buffered-state', (['','x'],0,'',False,False,0)), 'streaming')\ncheck('finished-but-buffered-state scenario 6', solve('finished-but-buffered-state', (['a','b','c'],1,'a',True,False,1)), 'draining')\ncheck('empty-chunk-consumes-position scenario 1', solve('empty-chunk-consumes-position', (['a'*N,'b','c'],1,'old',False,False,2)), 2)\ncheck('empty-chunk-consumes-position scenario 2', solve('empty-chunk-consumes-position', ([],0,'',True,False,2)), 0)\ncheck('empty-chunk-consumes-position scenario 3', solve('empty-chunk-consumes-position', (['a','b'],2,'ab',True,False,2)), 0)\ncheck('empty-chunk-consumes-position scenario 4', solve('empty-chunk-consumes-position', (['a','b'],0,'old',False,True,1)), 2)\ncheck('empty-chunk-consumes-position scenario 5', solve('empty-chunk-consumes-position', (['','x'],0,'',False,False,0)), 2)\ncheck('empty-chunk-consumes-position scenario 6', solve('empty-chunk-consumes-position', (['a','b','c'],1,'a',True,False,1)), 2)\ncheck('unconsumed-tail-after-frame scenario 1', solve('unconsumed-tail-after-frame', (['a'*N,'b','c'],1,'old',False,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 2', solve('unconsumed-tail-after-frame', ([],0,'',True,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 3', solve('unconsumed-tail-after-frame', (['a','b'],2,'ab',True,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 4', solve('unconsumed-tail-after-frame', (['a','b'],0,'old',False,True,1)), ['b'])\ncheck('unconsumed-tail-after-frame scenario 5', solve('unconsumed-tail-after-frame', (['','x'],0,'',False,False,0)), ['','x'])\ncheck('unconsumed-tail-after-frame scenario 6', solve('unconsumed-tail-after-frame', (['a','b','c'],1,'a',True,False,1)), ['c'])\ncheck('completion-event-once-drained scenario 1', solve('completion-event-once-drained', (['a'*N,'b','c'],1,'old',False,False,2)), False)\ncheck('completion-event-once-drained scenario 2', solve('completion-event-once-drained', ([],0,'',True,False,2)), True)\ncheck('completion-event-once-drained scenario 3', solve('completion-event-once-drained', (['a','b'],2,'ab',True,False,2)), True)\ncheck('completion-event-once-drained scenario 4', solve('completion-event-once-drained', (['a','b'],0,'old',False,True,1)), False)\ncheck('completion-event-once-drained scenario 5', solve('completion-event-once-drained', (['','x'],0,'',False,False,0)), False)\ncheck('completion-event-once-drained scenario 6', solve('completion-event-once-drained', (['a','b','c'],1,'a',True,False,1)), False)\ncheck('render-frame-needed scenario 1', solve('render-frame-needed', (['a'*N,'b','c'],1,'old',False,False,2)), True)\ncheck('render-frame-needed scenario 2', solve('render-frame-needed', ([],0,'',True,False,2)), False)\ncheck('render-frame-needed scenario 3', solve('render-frame-needed', (['a','b'],2,'ab',True,False,2)), False)\ncheck('render-frame-needed scenario 4', solve('render-frame-needed', (['a','b'],0,'old',False,True,1)), False)\ncheck('render-frame-needed scenario 5', solve('render-frame-needed', (['','x'],0,'',False,False,0)), False)\ncheck('render-frame-needed scenario 6', solve('render-frame-needed', (['a','b','c'],1,'a',True,False,1)), True)\ncheck('abort-discards-buffered-suffix scenario 1', solve('abort-discards-buffered-suffix', (['a'*N,'b','c'],1,'old',False,False,2)), ['b','c'])\ncheck('abort-discards-buffered-suffix scenario 2', solve('abort-discards-buffered-suffix', ([],0,'',True,False,2)), [])\ncheck('abort-discards-buffered-suffix scenario 3', solve('abort-discards-buffered-suffix', (['a','b'],2,'ab',True,False,2)), [])\ncheck('abort-discards-buffered-suffix scenario 4', solve('abort-discards-buffered-suffix', (['a','b'],0,'old',False,True,1)), [])\ncheck('abort-discards-buffered-suffix scenario 5', solve('abort-discards-buffered-suffix', (['','x'],0,'',False,False,0)), ['','x'])\ncheck('abort-discards-buffered-suffix scenario 6', solve('abort-discards-buffered-suffix', (['a','b','c'],1,'a',True,False,1)), ['b','c'])\ncheck('empty response still streaming before end signal: append-only-unseen-chunks', solve('append-only-unseen-chunks', ([],0,'',False,False,1)), '')\ncheck('empty response still streaming before end signal: render-budget-prefix', solve('render-budget-prefix', ([],0,'',False,False,1)), [])\ncheck('empty response still streaming before end signal: cursor-advances-by-consumed-count', solve('cursor-advances-by-consumed-count', ([],0,'',False,False,1)), 0)\ncheck('empty response still streaming before end signal: cancel-freezes-visible-text', solve('cancel-freezes-visible-text', ([],0,'',False,False,1)), '')\ncheck('empty response still streaming before end signal: finished-but-buffered-state', solve('finished-but-buffered-state', ([],0,'',False,False,1)), 'streaming')\ncheck('empty response still streaming before end signal: empty-chunk-consumes-position', solve('empty-chunk-consumes-position', ([],0,'',False,False,1)), 0)\ncheck('empty response still streaming before end signal: unconsumed-tail-after-frame', solve('unconsumed-tail-after-frame', ([],0,'',False,False,1)), [])\ncheck('empty response still streaming before end signal: completion-event-once-drained', solve('completion-event-once-drained', ([],0,'',False,False,1)), False)\ncheck('empty response still streaming before end signal: render-frame-needed', solve('render-frame-needed', ([],0,'',False,False,1)), False)\ncheck('empty response still streaming before end signal: abort-discards-buffered-suffix', solve('abort-discards-buffered-suffix', ([],0,'',False,False,1)), [])\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":"1c05943e7d39e5c3733fa37346728bb4b19de2e99180f4d9e9427ed3b873528e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    chunks, cursor, committed, finished, cancelled, limit = s\n    if operation == 'append-only-unseen-chunks':\n        return committed+''.join(chunks[cursor:])\n    if operation == 'render-budget-prefix':\n        return chunks[cursor:cursor+limit]\n    if operation == 'cursor-advances-by-consumed-count':\n        return cursor+len(chunks[cursor:cursor+limit])\n    if operation == 'cancel-freezes-visible-text':\n        return committed if cancelled else committed+''.join(chunks[cursor:])\n    if operation == 'finished-but-buffered-state':\n        return 'draining' if finished and cursor<len(chunks) else ('complete' if finished else 'streaming')\n    if operation == 'empty-chunk-consumes-position':\n        return len(chunks[cursor:])\n    if operation == 'unconsumed-tail-after-frame':\n        return chunks[cursor+limit:]\n    if operation == 'completion-event-once-drained':\n        return finished and cursor==len(chunks) and not cancelled\n    if operation == 'render-frame-needed':\n        return not cancelled and cursor<len(chunks) and limit>0\n    if operation == 'abort-discards-buffered-suffix':\n        return [] if cancelled else chunks[cursor:]\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('append-only-unseen-chunks scenario 1', solve('append-only-unseen-chunks', (['a'*N,'b','c'],1,'old',False,False,2)), 'oldbc')\ncheck('append-only-unseen-chunks scenario 2', solve('append-only-unseen-chunks', ([],0,'',True,False,2)), '')\ncheck('append-only-unseen-chunks scenario 3', solve('append-only-unseen-chunks', (['a','b'],2,'ab',True,False,2)), 'ab')\ncheck('append-only-unseen-chunks scenario 4', solve('append-only-unseen-chunks', (['a','b'],0,'old',False,True,1)), 'oldab')\ncheck('append-only-unseen-chunks scenario 5', solve('append-only-unseen-chunks', (['','x'],0,'',False,False,0)), 'x')\ncheck('append-only-unseen-chunks scenario 6', solve('append-only-unseen-chunks', (['a','b','c'],1,'a',True,False,1)), 'abc')\ncheck('render-budget-prefix scenario 1', solve('render-budget-prefix', (['a'*N,'b','c'],1,'old',False,False,2)), ['b','c'])\ncheck('render-budget-prefix scenario 2', solve('render-budget-prefix', ([],0,'',True,False,2)), [])\ncheck('render-budget-prefix scenario 3', solve('render-budget-prefix', (['a','b'],2,'ab',True,False,2)), [])\ncheck('render-budget-prefix scenario 4', solve('render-budget-prefix', (['a','b'],0,'old',False,True,1)), ['a'])\ncheck('render-budget-prefix scenario 5', solve('render-budget-prefix', (['','x'],0,'',False,False,0)), [])\ncheck('render-budget-prefix scenario 6', solve('render-budget-prefix', (['a','b','c'],1,'a',True,False,1)), ['b'])\ncheck('cursor-advances-by-consumed-count scenario 1', solve('cursor-advances-by-consumed-count', (['a'*N,'b','c'],1,'old',False,False,2)), 3)\ncheck('cursor-advances-by-consumed-count scenario 2', solve('cursor-advances-by-consumed-count', ([],0,'',True,False,2)), 0)\ncheck('cursor-advances-by-consumed-count scenario 3', solve('cursor-advances-by-consumed-count', (['a','b'],2,'ab',True,False,2)), 2)\ncheck('cursor-advances-by-consumed-count scenario 4', solve('cursor-advances-by-consumed-count', (['a','b'],0,'old',False,True,1)), 1)\ncheck('cursor-advances-by-consumed-count scenario 5', solve('cursor-advances-by-consumed-count', (['','x'],0,'',False,False,0)), 0)\ncheck('cursor-advances-by-consumed-count scenario 6', solve('cursor-advances-by-consumed-count', (['a','b','c'],1,'a',True,False,1)), 2)\ncheck('cancel-freezes-visible-text scenario 1', solve('cancel-freezes-visible-text', (['a'*N,'b','c'],1,'old',False,False,2)), 'oldbc')\ncheck('cancel-freezes-visible-text scenario 2', solve('cancel-freezes-visible-text', ([],0,'',True,False,2)), '')\ncheck('cancel-freezes-visible-text scenario 3', solve('cancel-freezes-visible-text', (['a','b'],2,'ab',True,False,2)), 'ab')\ncheck('cancel-freezes-visible-text scenario 4', solve('cancel-freezes-visible-text', (['a','b'],0,'old',False,True,1)), 'old')\ncheck('cancel-freezes-visible-text scenario 5', solve('cancel-freezes-visible-text', (['','x'],0,'',False,False,0)), 'x')\ncheck('cancel-freezes-visible-text scenario 6', solve('cancel-freezes-visible-text', (['a','b','c'],1,'a',True,False,1)), 'abc')\ncheck('finished-but-buffered-state scenario 1', solve('finished-but-buffered-state', (['a'*N,'b','c'],1,'old',False,False,2)), 'streaming')\ncheck('finished-but-buffered-state scenario 2', solve('finished-but-buffered-state', ([],0,'',True,False,2)), 'complete')\ncheck('finished-but-buffered-state scenario 3', solve('finished-but-buffered-state', (['a','b'],2,'ab',True,False,2)), 'complete')\ncheck('finished-but-buffered-state scenario 4', solve('finished-but-buffered-state', (['a','b'],0,'old',False,True,1)), 'streaming')\ncheck('finished-but-buffered-state scenario 5', solve('finished-but-buffered-state', (['','x'],0,'',False,False,0)), 'streaming')\ncheck('finished-but-buffered-state scenario 6', solve('finished-but-buffered-state', (['a','b','c'],1,'a',True,False,1)), 'draining')\ncheck('empty-chunk-consumes-position scenario 1', solve('empty-chunk-consumes-position', (['a'*N,'b','c'],1,'old',False,False,2)), 2)\ncheck('empty-chunk-consumes-position scenario 2', solve('empty-chunk-consumes-position', ([],0,'',True,False,2)), 0)\ncheck('empty-chunk-consumes-position scenario 3', solve('empty-chunk-consumes-position', (['a','b'],2,'ab',True,False,2)), 0)\ncheck('empty-chunk-consumes-position scenario 4', solve('empty-chunk-consumes-position', (['a','b'],0,'old',False,True,1)), 2)\ncheck('empty-chunk-consumes-position scenario 5', solve('empty-chunk-consumes-position', (['','x'],0,'',False,False,0)), 2)\ncheck('empty-chunk-consumes-position scenario 6', solve('empty-chunk-consumes-position', (['a','b','c'],1,'a',True,False,1)), 2)\ncheck('unconsumed-tail-after-frame scenario 1', solve('unconsumed-tail-after-frame', (['a'*N,'b','c'],1,'old',False,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 2', solve('unconsumed-tail-after-frame', ([],0,'',True,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 3', solve('unconsumed-tail-after-frame', (['a','b'],2,'ab',True,False,2)), [])\ncheck('unconsumed-tail-after-frame scenario 4', solve('unconsumed-tail-after-frame', (['a','b'],0,'old',False,True,1)), ['b'])\ncheck('unconsumed-tail-after-frame scenario 5', solve('unconsumed-tail-after-frame', (['','x'],0,'',False,False,0)), ['','x'])\ncheck('unconsumed-tail-after-frame scenario 6', solve('unconsumed-tail-after-frame', (['a','b','c'],1,'a',True,False,1)), ['c'])\ncheck('completion-event-once-drained scenario 1', solve('completion-event-once-drained', (['a'*N,'b','c'],1,'old',False,False,2)), False)\ncheck('completion-event-once-drained scenario 2', solve('completion-event-once-drained', ([],0,'',True,False,2)), True)\ncheck('completion-event-once-drained scenario 3', solve('completion-event-once-drained', (['a','b'],2,'ab',True,False,2)), True)\ncheck('completion-event-once-drained scenario 4', solve('completion-event-once-drained', (['a','b'],0,'old',False,True,1)), False)\ncheck('completion-event-once-drained scenario 5', solve('completion-event-once-drained', (['','x'],0,'',False,False,0)), False)\ncheck('completion-event-once-drained scenario 6', solve('completion-event-once-drained', (['a','b','c'],1,'a',True,False,1)), False)\ncheck('render-frame-needed scenario 1', solve('render-frame-needed', (['a'*N,'b','c'],1,'old',False,False,2)), True)\ncheck('render-frame-needed scenario 2', solve('render-frame-needed', ([],0,'',True,False,2)), False)\ncheck('render-frame-needed scenario 3', solve('render-frame-needed', (['a','b'],2,'ab',True,False,2)), False)\ncheck('render-frame-needed scenario 4', solve('render-frame-needed', (['a','b'],0,'old',False,True,1)), False)\ncheck('render-frame-needed scenario 5', solve('render-frame-needed', (['','x'],0,'',False,False,0)), False)\ncheck('render-frame-needed scenario 6', solve('render-frame-needed', (['a','b','c'],1,'a',True,False,1)), True)\ncheck('abort-discards-buffered-suffix scenario 1', solve('abort-discards-buffered-suffix', (['a'*N,'b','c'],1,'old',False,False,2)), ['b','c'])\ncheck('abort-discards-buffered-suffix scenario 2', solve('abort-discards-buffered-suffix', ([],0,'',True,False,2)), [])\ncheck('abort-discards-buffered-suffix scenario 3', solve('abort-discards-buffered-suffix', (['a','b'],2,'ab',True,False,2)), [])\ncheck('abort-discards-buffered-suffix scenario 4', solve('abort-discards-buffered-suffix', (['a','b'],0,'old',False,True,1)), [])\ncheck('abort-discards-buffered-suffix scenario 5', solve('abort-discards-buffered-suffix', (['','x'],0,'',False,False,0)), ['','x'])\ncheck('abort-discards-buffered-suffix scenario 6', solve('abort-discards-buffered-suffix', (['a','b','c'],1,'a',True,False,1)), ['b','c'])\ncheck('empty response still streaming before end signal: append-only-unseen-chunks', solve('append-only-unseen-chunks', ([],0,'',False,False,1)), '')\ncheck('empty response still streaming before end signal: render-budget-prefix', solve('render-budget-prefix', ([],0,'',False,False,1)), [])\ncheck('empty response still streaming before end signal: cursor-advances-by-consumed-count', solve('cursor-advances-by-consumed-count', ([],0,'',False,False,1)), 0)\ncheck('empty response still streaming before end signal: cancel-freezes-visible-text', solve('cancel-freezes-visible-text', ([],0,'',False,False,1)), '')\ncheck('empty response still streaming before end signal: finished-but-buffered-state', solve('finished-but-buffered-state', ([],0,'',False,False,1)), 'streaming')\ncheck('empty response still streaming before end signal: empty-chunk-consumes-position', solve('empty-chunk-consumes-position', ([],0,'',False,False,1)), 0)\ncheck('empty response still streaming before end signal: unconsumed-tail-after-frame', solve('unconsumed-tail-after-frame', ([],0,'',False,False,1)), [])\ncheck('empty response still streaming before end signal: completion-event-once-drained', solve('completion-event-once-drained', ([],0,'',False,False,1)), False)\ncheck('empty response still streaming before end signal: render-frame-needed', solve('render-frame-needed', ([],0,'',False,False,1)), False)\ncheck('empty response still streaming before end signal: abort-discards-buffered-suffix', solve('abort-discards-buffered-suffix', ([],0,'',False,False,1)), [])\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":"Only the explicitly specified operations and finite deterministic records are modeled; 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-stream-view-completion-event-once-drained","generated_at":"2026-09-29T14:40:58.669531+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.","repair":"Apply the modeled completion-event-once-drained rule: `finished and cursor==len(chunks) and not cancelled`.","root_cause":"The completion-event-once-drained client decision evaluates `finished` instead of `finished and cursor==len(chunks) and not cancelled`.","sha256":"acecc62de8dbe2fdd733171864fe513cb31d71d7f89e8bf653998cf814e5445f","title":"Incremental client response projection: Completion event once drained · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.861,"exit_code":1,"observations":[{"actual":"oldbc","check":"append-only-unseen-chunks scenario 1","expected":"oldbc","passed":true},{"actual":"","check":"append-only-unseen-chunks scenario 2","expected":"","passed":true},{"actual":"ab","check":"append-only-unseen-chunks scenario 3","expected":"ab","passed":true},{"actual":"oldab","check":"append-only-unseen-chunks scenario 4","expected":"oldab","passed":true},{"actual":"x","check":"append-only-unseen-chunks scenario 5","expected":"x","passed":true},{"actual":"abc","check":"append-only-unseen-chunks scenario 6","expected":"abc","passed":true},{"actual":["b","c"],"check":"render-budget-prefix scenario 1","expected":["b","c"],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 2","expected":[],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 3","expected":[],"passed":true},{"actual":["a"],"check":"render-budget-prefix scenario 4","expected":["a"],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 5","expected":[],"passed":true},{"actual":["b"],"check":"render-budget-prefix scenario 6","expected":["b"],"passed":true},{"actual":3,"check":"cursor-advances-by-consumed-count scenario 1","expected":3,"passed":true},{"actual":0,"check":"cursor-advances-by-consumed-count scenario 2","expected":0,"passed":true},{"actual":2,"check":"cursor-advances-by-consumed-count scenario 3","expected":2,"passed":true},{"actual":1,"check":"cursor-advances-by-consumed-count scenario 4","expected":1,"passed":true},{"actual":0,"check":"cursor-advances-by-consumed-count scenario 5","expected":0,"passed":true},{"actual":2,"check":"cursor-advances-by-consumed-count scenario 6","expected":2,"passed":true},{"actual":"oldbc","check":"cancel-freezes-visible-text scenario 1","expected":"oldbc","passed":true},{"actual":"","check":"cancel-freezes-visible-text scenario 2","expected":"","passed":true},{"actual":"ab","check":"cancel-freezes-visible-text scenario 3","expected":"ab","passed":true},{"actual":"old","check":"cancel-freezes-visible-text scenario 4","expected":"old","passed":true},{"actual":"x","check":"cancel-freezes-visible-text scenario 5","expected":"x","passed":true},{"actual":"abc","check":"cancel-freezes-visible-text scenario 6","expected":"abc","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 1","expected":"streaming","passed":true},{"actual":"complete","check":"finished-but-buffered-state scenario 2","expected":"complete","passed":true},{"actual":"complete","check":"finished-but-buffered-state scenario 3","expected":"complete","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 4","expected":"streaming","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 5","expected":"streaming","passed":true},{"actual":"draining","check":"finished-but-buffered-state scenario 6","expected":"draining","passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 1","expected":2,"passed":true},{"actual":0,"check":"empty-chunk-consumes-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"empty-chunk-consumes-position scenario 3","expected":0,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 4","expected":2,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 5","expected":2,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 6","expected":2,"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 1","expected":[],"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 2","expected":[],"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 3","expected":[],"passed":true},{"actual":["b"],"check":"unconsumed-tail-after-frame scenario 4","expected":["b"],"passed":true},{"actual":["","x"],"check":"unconsumed-tail-after-frame scenario 5","expected":["","x"],"passed":true},{"actual":["c"],"check":"unconsumed-tail-after-frame scenario 6","expected":["c"],"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 1","expected":false,"passed":true},{"actual":true,"check":"completion-event-once-drained scenario 2","expected":true,"passed":true},{"actual":true,"check":"completion-event-once-drained scenario 3","expected":true,"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 4","expected":false,"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 5","expected":false,"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 6","expected":false,"passed":true},{"actual":true,"check":"render-frame-needed scenario 1","expected":true,"passed":true},{"actual":false,"check":"render-frame-needed scenario 2","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 3","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 4","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 5","expected":false,"passed":true},{"actual":true,"check":"render-frame-needed scenario 6","expected":true,"passed":true},{"actual":["b","c"],"check":"abort-discards-buffered-suffix scenario 1","expected":["b","c"],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 2","expected":[],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 3","expected":[],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 4","expected":[],"passed":true},{"actual":["","x"],"check":"abort-discards-buffered-suffix scenario 5","expected":["","x"],"passed":true},{"actual":["b","c"],"check":"abort-discards-buffered-suffix scenario 6","expected":["b","c"],"passed":true},{"actual":"","check":"empty response still streaming before end signal: append-only-unseen-chunks","expected":"","passed":true},{"actual":[],"check":"empty response still streaming before end signal: render-budget-prefix","expected":[],"passed":true},{"actual":0,"check":"empty response still streaming before end signal: cursor-advances-by-consumed-count","expected":0,"passed":true},{"actual":"","check":"empty response still streaming before end signal: cancel-freezes-visible-text","expected":"","passed":true},{"actual":"streaming","check":"empty response still streaming before end signal: finished-but-buffered-state","expected":"streaming","passed":true},{"actual":0,"check":"empty response still streaming before end signal: empty-chunk-consumes-position","expected":0,"passed":true},{"actual":[],"check":"empty response still streaming before end signal: unconsumed-tail-after-frame","expected":[],"passed":true},{"actual":true,"check":"empty response still streaming before end signal: completion-event-once-drained","expected":false,"passed":false},{"actual":false,"check":"empty response still streaming before end signal: render-frame-needed","expected":false,"passed":true},{"actual":[],"check":"empty response still streaming before end signal: abort-discards-buffered-suffix","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"append-only-unseen-chunks scenario 1\", \"actual\": \"oldbc\", \"expected\": \"oldbc\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 3\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 4\", \"actual\": \"oldab\", \"expected\": \"oldab\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 5\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 6\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"render-budget-prefix scenario 1\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 4\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 6\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 1\", \"actual\": 3, \"expected\": 3, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 3\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 4\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 5\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 6\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 1\", \"actual\": \"oldbc\", \"expected\": \"oldbc\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 3\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 4\", \"actual\": \"old\", \"expected\": \"old\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 5\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 6\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 1\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 2\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 3\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 4\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 5\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 6\", \"actual\": \"draining\", \"expected\": \"draining\", \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 1\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 4\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 5\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 6\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 4\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 5\", \"actual\": [\"\", \"x\"], \"expected\": [\"\", \"x\"], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 6\", \"actual\": [\"c\"], \"expected\": [\"c\"], \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"render-frame-needed scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 1\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 5\", \"actual\": [\"\", \"x\"], \"expected\": [\"\", \"x\"], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 6\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: append-only-unseen-chunks\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: render-budget-prefix\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: cursor-advances-by-consumed-count\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: cancel-freezes-visible-text\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: finished-but-buffered-state\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: empty-chunk-consumes-position\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: unconsumed-tail-after-frame\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: completion-event-once-drained\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"empty response still streaming before end signal: render-frame-needed\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: abort-discards-buffered-suffix\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.074,"exit_code":1,"observations":[{"actual":"oldbc","check":"append-only-unseen-chunks scenario 1","expected":"oldbc","passed":true},{"actual":"","check":"append-only-unseen-chunks scenario 2","expected":"","passed":true},{"actual":"ab","check":"append-only-unseen-chunks scenario 3","expected":"ab","passed":true},{"actual":"oldab","check":"append-only-unseen-chunks scenario 4","expected":"oldab","passed":true},{"actual":"x","check":"append-only-unseen-chunks scenario 5","expected":"x","passed":true},{"actual":"abc","check":"append-only-unseen-chunks scenario 6","expected":"abc","passed":true},{"actual":["b","c"],"check":"render-budget-prefix scenario 1","expected":["b","c"],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 2","expected":[],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 3","expected":[],"passed":true},{"actual":["a"],"check":"render-budget-prefix scenario 4","expected":["a"],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 5","expected":[],"passed":true},{"actual":["b"],"check":"render-budget-prefix scenario 6","expected":["b"],"passed":true},{"actual":3,"check":"cursor-advances-by-consumed-count scenario 1","expected":3,"passed":true},{"actual":0,"check":"cursor-advances-by-consumed-count scenario 2","expected":0,"passed":true},{"actual":2,"check":"cursor-advances-by-consumed-count scenario 3","expected":2,"passed":true},{"actual":1,"check":"cursor-advances-by-consumed-count scenario 4","expected":1,"passed":true},{"actual":0,"check":"cursor-advances-by-consumed-count scenario 5","expected":0,"passed":true},{"actual":2,"check":"cursor-advances-by-consumed-count scenario 6","expected":2,"passed":true},{"actual":"oldbc","check":"cancel-freezes-visible-text scenario 1","expected":"oldbc","passed":true},{"actual":"","check":"cancel-freezes-visible-text scenario 2","expected":"","passed":true},{"actual":"ab","check":"cancel-freezes-visible-text scenario 3","expected":"ab","passed":true},{"actual":"old","check":"cancel-freezes-visible-text scenario 4","expected":"old","passed":true},{"actual":"x","check":"cancel-freezes-visible-text scenario 5","expected":"x","passed":true},{"actual":"abc","check":"cancel-freezes-visible-text scenario 6","expected":"abc","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 1","expected":"streaming","passed":true},{"actual":"complete","check":"finished-but-buffered-state scenario 2","expected":"complete","passed":true},{"actual":"complete","check":"finished-but-buffered-state scenario 3","expected":"complete","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 4","expected":"streaming","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 5","expected":"streaming","passed":true},{"actual":"draining","check":"finished-but-buffered-state scenario 6","expected":"draining","passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 1","expected":2,"passed":true},{"actual":0,"check":"empty-chunk-consumes-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"empty-chunk-consumes-position scenario 3","expected":0,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 4","expected":2,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 5","expected":2,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 6","expected":2,"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 1","expected":[],"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 2","expected":[],"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 3","expected":[],"passed":true},{"actual":["b"],"check":"unconsumed-tail-after-frame scenario 4","expected":["b"],"passed":true},{"actual":["","x"],"check":"unconsumed-tail-after-frame scenario 5","expected":["","x"],"passed":true},{"actual":["c"],"check":"unconsumed-tail-after-frame scenario 6","expected":["c"],"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 1","expected":false,"passed":true},{"actual":true,"check":"completion-event-once-drained scenario 2","expected":true,"passed":true},{"actual":true,"check":"completion-event-once-drained scenario 3","expected":true,"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 4","expected":false,"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 5","expected":false,"passed":true},{"actual":true,"check":"completion-event-once-drained scenario 6","expected":false,"passed":false},{"actual":true,"check":"render-frame-needed scenario 1","expected":true,"passed":true},{"actual":false,"check":"render-frame-needed scenario 2","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 3","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 4","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 5","expected":false,"passed":true},{"actual":true,"check":"render-frame-needed scenario 6","expected":true,"passed":true},{"actual":["b","c"],"check":"abort-discards-buffered-suffix scenario 1","expected":["b","c"],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 2","expected":[],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 3","expected":[],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 4","expected":[],"passed":true},{"actual":["","x"],"check":"abort-discards-buffered-suffix scenario 5","expected":["","x"],"passed":true},{"actual":["b","c"],"check":"abort-discards-buffered-suffix scenario 6","expected":["b","c"],"passed":true},{"actual":"","check":"empty response still streaming before end signal: append-only-unseen-chunks","expected":"","passed":true},{"actual":[],"check":"empty response still streaming before end signal: render-budget-prefix","expected":[],"passed":true},{"actual":0,"check":"empty response still streaming before end signal: cursor-advances-by-consumed-count","expected":0,"passed":true},{"actual":"","check":"empty response still streaming before end signal: cancel-freezes-visible-text","expected":"","passed":true},{"actual":"streaming","check":"empty response still streaming before end signal: finished-but-buffered-state","expected":"streaming","passed":true},{"actual":0,"check":"empty response still streaming before end signal: empty-chunk-consumes-position","expected":0,"passed":true},{"actual":[],"check":"empty response still streaming before end signal: unconsumed-tail-after-frame","expected":[],"passed":true},{"actual":false,"check":"empty response still streaming before end signal: completion-event-once-drained","expected":false,"passed":true},{"actual":false,"check":"empty response still streaming before end signal: render-frame-needed","expected":false,"passed":true},{"actual":[],"check":"empty response still streaming before end signal: abort-discards-buffered-suffix","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"append-only-unseen-chunks scenario 1\", \"actual\": \"oldbc\", \"expected\": \"oldbc\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 3\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 4\", \"actual\": \"oldab\", \"expected\": \"oldab\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 5\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 6\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"render-budget-prefix scenario 1\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 4\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 6\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 1\", \"actual\": 3, \"expected\": 3, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 3\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 4\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 5\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 6\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 1\", \"actual\": \"oldbc\", \"expected\": \"oldbc\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 3\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 4\", \"actual\": \"old\", \"expected\": \"old\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 5\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 6\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 1\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 2\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 3\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 4\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 5\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 6\", \"actual\": \"draining\", \"expected\": \"draining\", \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 1\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 4\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 5\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 6\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 4\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 5\", \"actual\": [\"\", \"x\"], \"expected\": [\"\", \"x\"], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 6\", \"actual\": [\"c\"], \"expected\": [\"c\"], \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 6\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"render-frame-needed scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"render-frame-needed scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 1\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 5\", \"actual\": [\"\", \"x\"], \"expected\": [\"\", \"x\"], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 6\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: append-only-unseen-chunks\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: render-budget-prefix\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: cursor-advances-by-consumed-count\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: cancel-freezes-visible-text\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: finished-but-buffered-state\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: empty-chunk-consumes-position\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: unconsumed-tail-after-frame\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: completion-event-once-drained\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: render-frame-needed\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: abort-discards-buffered-suffix\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.822,"exit_code":0,"observations":[{"actual":"oldbc","check":"append-only-unseen-chunks scenario 1","expected":"oldbc","passed":true},{"actual":"","check":"append-only-unseen-chunks scenario 2","expected":"","passed":true},{"actual":"ab","check":"append-only-unseen-chunks scenario 3","expected":"ab","passed":true},{"actual":"oldab","check":"append-only-unseen-chunks scenario 4","expected":"oldab","passed":true},{"actual":"x","check":"append-only-unseen-chunks scenario 5","expected":"x","passed":true},{"actual":"abc","check":"append-only-unseen-chunks scenario 6","expected":"abc","passed":true},{"actual":["b","c"],"check":"render-budget-prefix scenario 1","expected":["b","c"],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 2","expected":[],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 3","expected":[],"passed":true},{"actual":["a"],"check":"render-budget-prefix scenario 4","expected":["a"],"passed":true},{"actual":[],"check":"render-budget-prefix scenario 5","expected":[],"passed":true},{"actual":["b"],"check":"render-budget-prefix scenario 6","expected":["b"],"passed":true},{"actual":3,"check":"cursor-advances-by-consumed-count scenario 1","expected":3,"passed":true},{"actual":0,"check":"cursor-advances-by-consumed-count scenario 2","expected":0,"passed":true},{"actual":2,"check":"cursor-advances-by-consumed-count scenario 3","expected":2,"passed":true},{"actual":1,"check":"cursor-advances-by-consumed-count scenario 4","expected":1,"passed":true},{"actual":0,"check":"cursor-advances-by-consumed-count scenario 5","expected":0,"passed":true},{"actual":2,"check":"cursor-advances-by-consumed-count scenario 6","expected":2,"passed":true},{"actual":"oldbc","check":"cancel-freezes-visible-text scenario 1","expected":"oldbc","passed":true},{"actual":"","check":"cancel-freezes-visible-text scenario 2","expected":"","passed":true},{"actual":"ab","check":"cancel-freezes-visible-text scenario 3","expected":"ab","passed":true},{"actual":"old","check":"cancel-freezes-visible-text scenario 4","expected":"old","passed":true},{"actual":"x","check":"cancel-freezes-visible-text scenario 5","expected":"x","passed":true},{"actual":"abc","check":"cancel-freezes-visible-text scenario 6","expected":"abc","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 1","expected":"streaming","passed":true},{"actual":"complete","check":"finished-but-buffered-state scenario 2","expected":"complete","passed":true},{"actual":"complete","check":"finished-but-buffered-state scenario 3","expected":"complete","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 4","expected":"streaming","passed":true},{"actual":"streaming","check":"finished-but-buffered-state scenario 5","expected":"streaming","passed":true},{"actual":"draining","check":"finished-but-buffered-state scenario 6","expected":"draining","passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 1","expected":2,"passed":true},{"actual":0,"check":"empty-chunk-consumes-position scenario 2","expected":0,"passed":true},{"actual":0,"check":"empty-chunk-consumes-position scenario 3","expected":0,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 4","expected":2,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 5","expected":2,"passed":true},{"actual":2,"check":"empty-chunk-consumes-position scenario 6","expected":2,"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 1","expected":[],"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 2","expected":[],"passed":true},{"actual":[],"check":"unconsumed-tail-after-frame scenario 3","expected":[],"passed":true},{"actual":["b"],"check":"unconsumed-tail-after-frame scenario 4","expected":["b"],"passed":true},{"actual":["","x"],"check":"unconsumed-tail-after-frame scenario 5","expected":["","x"],"passed":true},{"actual":["c"],"check":"unconsumed-tail-after-frame scenario 6","expected":["c"],"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 1","expected":false,"passed":true},{"actual":true,"check":"completion-event-once-drained scenario 2","expected":true,"passed":true},{"actual":true,"check":"completion-event-once-drained scenario 3","expected":true,"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 4","expected":false,"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 5","expected":false,"passed":true},{"actual":false,"check":"completion-event-once-drained scenario 6","expected":false,"passed":true},{"actual":true,"check":"render-frame-needed scenario 1","expected":true,"passed":true},{"actual":false,"check":"render-frame-needed scenario 2","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 3","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 4","expected":false,"passed":true},{"actual":false,"check":"render-frame-needed scenario 5","expected":false,"passed":true},{"actual":true,"check":"render-frame-needed scenario 6","expected":true,"passed":true},{"actual":["b","c"],"check":"abort-discards-buffered-suffix scenario 1","expected":["b","c"],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 2","expected":[],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 3","expected":[],"passed":true},{"actual":[],"check":"abort-discards-buffered-suffix scenario 4","expected":[],"passed":true},{"actual":["","x"],"check":"abort-discards-buffered-suffix scenario 5","expected":["","x"],"passed":true},{"actual":["b","c"],"check":"abort-discards-buffered-suffix scenario 6","expected":["b","c"],"passed":true},{"actual":"","check":"empty response still streaming before end signal: append-only-unseen-chunks","expected":"","passed":true},{"actual":[],"check":"empty response still streaming before end signal: render-budget-prefix","expected":[],"passed":true},{"actual":0,"check":"empty response still streaming before end signal: cursor-advances-by-consumed-count","expected":0,"passed":true},{"actual":"","check":"empty response still streaming before end signal: cancel-freezes-visible-text","expected":"","passed":true},{"actual":"streaming","check":"empty response still streaming before end signal: finished-but-buffered-state","expected":"streaming","passed":true},{"actual":0,"check":"empty response still streaming before end signal: empty-chunk-consumes-position","expected":0,"passed":true},{"actual":[],"check":"empty response still streaming before end signal: unconsumed-tail-after-frame","expected":[],"passed":true},{"actual":false,"check":"empty response still streaming before end signal: completion-event-once-drained","expected":false,"passed":true},{"actual":false,"check":"empty response still streaming before end signal: render-frame-needed","expected":false,"passed":true},{"actual":[],"check":"empty response still streaming before end signal: abort-discards-buffered-suffix","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"append-only-unseen-chunks scenario 1\", \"actual\": \"oldbc\", \"expected\": \"oldbc\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 3\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 4\", \"actual\": \"oldab\", \"expected\": \"oldab\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 5\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"append-only-unseen-chunks scenario 6\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"render-budget-prefix scenario 1\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 4\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"render-budget-prefix scenario 6\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 1\", \"actual\": 3, \"expected\": 3, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 3\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 4\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 5\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"cursor-advances-by-consumed-count scenario 6\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 1\", \"actual\": \"oldbc\", \"expected\": \"oldbc\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 2\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 3\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 4\", \"actual\": \"old\", \"expected\": \"old\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 5\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"cancel-freezes-visible-text scenario 6\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 1\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 2\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 3\", \"actual\": \"complete\", \"expected\": \"complete\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 4\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 5\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"finished-but-buffered-state scenario 6\", \"actual\": \"draining\", \"expected\": \"draining\", \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 1\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 3\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 4\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 5\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"empty-chunk-consumes-position scenario 6\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 1\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 4\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 5\", \"actual\": [\"\", \"x\"], \"expected\": [\"\", \"x\"], \"passed\": true}, {\"check\": \"unconsumed-tail-after-frame scenario 6\", \"actual\": [\"c\"], \"expected\": [\"c\"], \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"completion-event-once-drained scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"render-frame-needed scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"render-frame-needed scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 1\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 5\", \"actual\": [\"\", \"x\"], \"expected\": [\"\", \"x\"], \"passed\": true}, {\"check\": \"abort-discards-buffered-suffix scenario 6\", \"actual\": [\"b\", \"c\"], \"expected\": [\"b\", \"c\"], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: append-only-unseen-chunks\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: render-budget-prefix\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: cursor-advances-by-consumed-count\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: cancel-freezes-visible-text\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: finished-but-buffered-state\", \"actual\": \"streaming\", \"expected\": \"streaming\", \"passed\": true}, {\"check\": \"empty response still streaming before end signal: empty-chunk-consumes-position\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: unconsumed-tail-after-frame\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"empty response still streaming before end signal: completion-event-once-drained\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: render-frame-needed\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"empty response still streaming before end signal: abort-discards-buffered-suffix\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}