{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_state_records_report_events_with_canonical_names() -> None:\n"},"line_number":33,"absolute_offset":819,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_snapshot_uses_total_usage_snapshot_only(tmp_path) -> None:\n"},"line_number":58,"absolute_offset":1632,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_event_counts_use_turn_start_and_text_events_only(tmp_path) -> None:\n"},"line_number":145,"absolute_offset":4081,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_spool_write_is_atomic_and_ack_only_deletes_unchanged_content(tmp_path) -> None:\n"},"line_number":170,"absolute_offset":5159,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9},{"match":{"text":"spool"},"start":9,"end":14}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    uploaded = store.write(first)\n"},"line_number":178,"absolute_offset":5472,"submatches":[{"match":{"text":"upload"},"start":4,"end":10}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(store.spool_path.read_text(encoding=\"utf-8\")) == first\n"},"line_number":179,"absolute_offset":5506,"submatches":[{"match":{"text":"spool"},"start":28,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert list(store.spool_path.parent.glob(\"*.tmp\")) == []\n"},"line_number":180,"absolute_offset":5583,"submatches":[{"match":{"text":"spool"},"start":22,"end":27}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert store.ack_if_unchanged(uploaded) is False\n"},"line_number":185,"absolute_offset":5761,"submatches":[{"match":{"text":"upload"},"start":34,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert store.spool_path.exists()\n"},"line_number":186,"absolute_offset":5814,"submatches":[{"match":{"text":"spool"},"start":17,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    current = store.spool_path.read_bytes()\n"},"line_number":188,"absolute_offset":5852,"submatches":[{"match":{"text":"spool"},"start":20,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert not store.spool_path.exists()\n"},"line_number":190,"absolute_offset":5947,"submatches":[{"match":{"text":"spool"},"start":21,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_old_ack_cannot_delete_new_ended_snapshot(\n"},"line_number":195,"absolute_offset":6048,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        if path == store.spool_path and not intercepted:\n"},"line_number":219,"absolute_offset":6829,"submatches":[{"match":{"text":"spool"},"start":25,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert await asyncio.to_thread(old_ack_read.wait, 1.0)  # to_thread: bounded-timeout, test event wait\n"},"line_number":238,"absolute_offset":7426,"submatches":[{"match":{"text":"timeout"},"start":81,"end":88}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        assert not await asyncio.to_thread(  # to_thread: bounded-timeout, test event wait\n"},"line_number":243,"absolute_offset":7645,"submatches":[{"match":{"text":"timeout"},"start":66,"end":73}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    await asyncio.to_thread(ack_thread.join, 1.0)  # to_thread: bounded-timeout, test thread join\n"},"line_number":249,"absolute_offset":7840,"submatches":[{"match":{"text":"timeout"},"start":72,"end":79}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    await asyncio.to_thread(write_thread.join, 1.0)  # to_thread: bounded-timeout, test thread join\n"},"line_number":250,"absolute_offset":7938,"submatches":[{"match":{"text":"timeout"},"start":74,"end":81}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(store.spool_path.read_text())[\"ended\"] is True\n"},"line_number":253,"absolute_offset":8071,"submatches":[{"match":{"text":"spool"},"start":28,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_old_store_ack_cannot_delete_new_store_ended_snapshot(\n"},"line_number":257,"absolute_offset":8163,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        if path == old_store.spool_path and not intercepted:\n"},"line_number":286,"absolute_offset":9114,"submatches":[{"match":{"text":"spool"},"start":29,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert await asyncio.to_thread(old_ack_read.wait, 1.0)  # to_thread: bounded-timeout, test event wait\n"},"line_number":300,"absolute_offset":9539,"submatches":[{"match":{"text":"timeout"},"start":81,"end":88}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        assert not await asyncio.to_thread(  # to_thread: bounded-timeout, test event wait\n"},"line_number":309,"absolute_offset":9867,"submatches":[{"match":{"text":"timeout"},"start":66,"end":73}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    await asyncio.to_thread(ack_thread.join, 1.0)  # to_thread: bounded-timeout, test thread join\n"},"line_number":315,"absolute_offset":10062,"submatches":[{"match":{"text":"timeout"},"start":72,"end":79}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    await asyncio.to_thread(write_thread.join, 1.0)  # to_thread: bounded-timeout, test thread join\n"},"line_number":316,"absolute_offset":10160,"submatches":[{"match":{"text":"timeout"},"start":74,"end":81}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(new_store.spool_path.read_text())[\"ended\"] is True\n"},"line_number":318,"absolute_offset":10261,"submatches":[{"match":{"text":"spool"},"start":32,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_load_state_restores_cumulative_counts_and_title(tmp_path) -> None:\n"},"line_number":321,"absolute_offset":10336,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_invalid_state_json_degrades_without_touching_spool(tmp_path) -> None:\n"},"line_number":353,"absolute_offset":11338,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9},{"match":{"text":"spool"},"start":54,"end":59}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    store.spool_path.parent.mkdir(parents=True)\n"},"line_number":363,"absolute_offset":11749,"submatches":[{"match":{"text":"spool"},"start":10,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    store.spool_path.write_text(\"{}\", encoding=\"utf-8\")\n"},"line_number":364,"absolute_offset":11797,"submatches":[{"match":{"text":"spool"},"start":10,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert store.spool_path.exists()\n"},"line_number":367,"absolute_offset":11892,"submatches":[{"match":{"text":"spool"},"start":17,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_store_rejects_invalid_session_id(tmp_path, session_id) -> None:\n"},"line_number":371,"absolute_offset":12015,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_drain_candidates_skip_active_sort_oldest_and_limit_twenty(tmp_path) -> None:\n"},"line_number":383,"absolute_offset":12381,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    spool_root = store.spool_path.parent\n"},"line_number":392,"absolute_offset":12712,"submatches":[{"match":{"text":"spool"},"start":4,"end":9},{"match":{"text":"spool"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    spool_root.mkdir(parents=True)\n"},"line_number":393,"absolute_offset":12753,"submatches":[{"match":{"text":"spool"},"start":4,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        path = spool_root / f\"sess-{index:02d}.json\"\n"},"line_number":395,"absolute_offset":12816,"submatches":[{"match":{"text":"spool"},"start":15,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    boundary = spool_root / \"boundary.json\"\n"},"line_number":398,"absolute_offset":12984,"submatches":[{"match":{"text":"spool"},"start":15,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    active = spool_root / \"active.json\"\n"},"line_number":401,"absolute_offset":13123,"submatches":[{"match":{"text":"spool"},"start":13,"end":18}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    (spool_root / \"ignore.tmp\").write_text(\"{}\", encoding=\"utf-8\")\n"},"line_number":404,"absolute_offset":13254,"submatches":[{"match":{"text":"spool"},"start":5,"end":10}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_drain_candidates_includes_exact_fifteen_minute_boundary(tmp_path) -> None:\n"},"line_number":414,"absolute_offset":13614,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    boundary = store.spool_path.parent / \"boundary.json\"\n"},"line_number":423,"absolute_offset":13943,"submatches":[{"match":{"text":"spool"},"start":21,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_prune_removes_expired_then_keeps_newest_two_hundred(tmp_path) -> None:\n"},"line_number":431,"absolute_offset":14196,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    spool_root = store.spool_path.parent\n"},"line_number":440,"absolute_offset":14521,"submatches":[{"match":{"text":"spool"},"start":4,"end":9},{"match":{"text":"spool"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    spool_root.mkdir(parents=True)\n"},"line_number":441,"absolute_offset":14562,"submatches":[{"match":{"text":"spool"},"start":4,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    expired = spool_root / \"expired.json\"\n"},"line_number":442,"absolute_offset":14597,"submatches":[{"match":{"text":"spool"},"start":14,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        path = spool_root / f\"fresh-{index:03d}.json\"\n"},"line_number":446,"absolute_offset":14773,"submatches":[{"match":{"text":"spool"},"start":15,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    remaining = sorted(spool_root.glob(\"*.json\"))\n"},"line_number":452,"absolute_offset":14971,"submatches":[{"match":{"text":"spool"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert not (spool_root / \"fresh-000.json\").exists()\n"},"line_number":455,"absolute_offset":15086,"submatches":[{"match":{"text":"spool"},"start":16,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert (spool_root / \"fresh-204.json\").exists()\n"},"line_number":456,"absolute_offset":15142,"submatches":[{"match":{"text":"spool"},"start":12,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_ack_path_only_deletes_the_requested_unchanged_spool(tmp_path) -> None:\n"},"line_number":459,"absolute_offset":15196,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9},{"match":{"text":"spool"},"start":55,"end":60}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    other = store.spool_path.parent / \"other.json\"\n"},"line_number":467,"absolute_offset":15508,"submatches":[{"match":{"text":"spool"},"start":18,"end":23}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_upload_spool_ack_deletes_only_unchanged_content(tmp_path) -> None:\n"},"line_number":479,"absolute_offset":15930,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"upload"},"start":15,"end":21},{"match":{"text":"spool"},"start":22,"end":27}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        upload_spool_file,\n"},"line_number":483,"absolute_offset":16188,"submatches":[{"match":{"text":"upload"},"start":8,"end":14},{"match":{"text":"spool"},"start":15,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            return ReportUploadDisposition.ACK\n"},"line_number":497,"absolute_offset":16601,"submatches":[{"match":{"text":"ACK"},"start":43,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        await upload_spool_file(\n"},"line_number":500,"absolute_offset":16662,"submatches":[{"match":{"text":"upload"},"start":14,"end":20},{"match":{"text":"spool"},"start":21,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            path=store.spool_path,\n"},"line_number":501,"absolute_offset":16695,"submatches":[{"match":{"text":"spool"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert store.spool_path.exists()\n"},"line_number":507,"absolute_offset":16817,"submatches":[{"match":{"text":"spool"},"start":17,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(store.spool_path.read_text())[\"user_turn_count\"] == 2\n"},"line_number":508,"absolute_offset":16854,"submatches":[{"match":{"text":"spool"},"start":28,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_upload_spool_retry_retains_file(tmp_path) -> None:\n"},"line_number":512,"absolute_offset":16953,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"upload"},"start":15,"end":21},{"match":{"text":"spool"},"start":22,"end":27},{"match":{"text":"retry"},"start":28,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        upload_spool_file,\n"},"line_number":516,"absolute_offset":17195,"submatches":[{"match":{"text":"upload"},"start":8,"end":14},{"match":{"text":"spool"},"start":15,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            return ReportUploadDisposition.RETRY\n"},"line_number":527,"absolute_offset":17440,"submatches":[{"match":{"text":"RETRY"},"start":43,"end":48}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        await upload_spool_file(\n"},"line_number":530,"absolute_offset":17503,"submatches":[{"match":{"text":"upload"},"start":14,"end":20},{"match":{"text":"spool"},"start":21,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            path=store.spool_path,\n"},"line_number":531,"absolute_offset":17536,"submatches":[{"match":{"text":"spool"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert store.spool_path.exists()\n"},"line_number":537,"absolute_offset":17659,"submatches":[{"match":{"text":"spool"},"start":17,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_upload_invalid_spool_discards_without_network(tmp_path) -> None:\n"},"line_number":541,"absolute_offset":17719,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"upload"},"start":15,"end":21},{"match":{"text":"spool"},"start":30,"end":35}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        upload_spool_file,\n"},"line_number":544,"absolute_offset":17894,"submatches":[{"match":{"text":"upload"},"start":8,"end":14},{"match":{"text":"spool"},"start":15,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    invalid = store.spool_path.parent / \"invalid.json\"\n"},"line_number":552,"absolute_offset":18067,"submatches":[{"match":{"text":"spool"},"start":20,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            raise AssertionError(\"invalid spool must not reach network\")\n"},"line_number":558,"absolute_offset":18287,"submatches":[{"match":{"text":"spool"},"start":42,"end":47}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        await upload_spool_file(path=invalid, client=_Client(), store=store)\n"},"line_number":561,"absolute_offset":18374,"submatches":[{"match":{"text":"upload"},"start":14,"end":20},{"match":{"text":"spool"},"start":21,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_drain_continues_after_retry_and_processes_serially(tmp_path) -> None:\n"},"line_number":568,"absolute_offset":18528,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"retry"},"start":37,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        drain_report_spool,\n"},"line_number":572,"absolute_offset":18789,"submatches":[{"match":{"text":"spool"},"start":21,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    spool_root = store.spool_path.parent\n"},"line_number":581,"absolute_offset":18985,"submatches":[{"match":{"text":"spool"},"start":4,"end":9},{"match":{"text":"spool"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    spool_root.mkdir(parents=True)\n"},"line_number":582,"absolute_offset":19026,"submatches":[{"match":{"text":"spool"},"start":4,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        path = spool_root / f\"{session_id}.json\"\n"},"line_number":584,"absolute_offset":19122,"submatches":[{"match":{"text":"spool"},"start":15,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"                return ReportUploadDisposition.RETRY\n"},"line_number":599,"absolute_offset":19691,"submatches":[{"match":{"text":"RETRY"},"start":47,"end":52}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            return ReportUploadDisposition.ACK\n"},"line_number":600,"absolute_offset":19744,"submatches":[{"match":{"text":"ACK"},"start":43,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    await drain_report_spool(client=client, store=store, now=now)\n"},"line_number":603,"absolute_offset":19815,"submatches":[{"match":{"text":"spool"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert (spool_root / \"first.json\").exists()\n"},"line_number":606,"absolute_offset":19929,"submatches":[{"match":{"text":"spool"},"start":12,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert not (spool_root / \"second.json\").exists()\n"},"line_number":607,"absolute_offset":19977,"submatches":[{"match":{"text":"spool"},"start":16,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        return ReportUploadDisposition.ACK\n"},"line_number":628,"absolute_offset":20593,"submatches":[{"match":{"text":"ACK"},"start":39,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_finalize_local_freezes_event_updates_before_snapshot_await(\n"},"line_number":672,"absolute_offset":21835,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    monkeypatch.setattr(controller, \"_schedule_upload\", lambda **_kwargs: None)\n"},"line_number":693,"absolute_offset":22465,"submatches":[{"match":{"text":"upload"},"start":47,"end":53}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_finalized_report_rejects_late_live_updates(\n"},"line_number":729,"absolute_offset":23466,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    scheduled_uploads: list[dict] = []\n"},"line_number":737,"absolute_offset":23772,"submatches":[{"match":{"text":"upload"},"start":14,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    def record_upload(**kwargs):\n"},"line_number":739,"absolute_offset":23812,"submatches":[{"match":{"text":"upload"},"start":15,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        scheduled_uploads.append(dict(kwargs))\n"},"line_number":740,"absolute_offset":23845,"submatches":[{"match":{"text":"upload"},"start":18,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    monkeypatch.setattr(controller, \"_schedule_upload\", record_upload)\n"},"line_number":743,"absolute_offset":23913,"submatches":[{"match":{"text":"upload"},"start":47,"end":53},{"match":{"text":"upload"},"start":63,"end":69}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    controller._schedule_upload_if_due()\n"},"line_number":753,"absolute_offset":24365,"submatches":[{"match":{"text":"upload"},"start":25,"end":31}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert len(scheduled_uploads) == 1\n"},"line_number":765,"absolute_offset":24843,"submatches":[{"match":{"text":"upload"},"start":25,"end":31}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert scheduled_uploads[0][\"force\"] is True\n"},"line_number":766,"absolute_offset":24882,"submatches":[{"match":{"text":"upload"},"start":21,"end":27}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_reopen_restores_live_report_updates(\n"},"line_number":770,"absolute_offset":24954,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    monkeypatch.setattr(controller, \"_schedule_upload\", lambda **_kwargs: None)\n"},"line_number":777,"absolute_offset":25212,"submatches":[{"match":{"text":"upload"},"start":47,"end":53}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_controller_uploads_on_tenth_user_turn_only(tmp_path) -> None:\n"},"line_number":797,"absolute_offset":26000,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"upload"},"start":26,"end":32}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_controller_timer_uploads_after_ten_minutes(tmp_path) -> None:\n"},"line_number":818,"absolute_offset":26734,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"upload"},"start":32,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_controller_background_scope_can_stop_without_cancelling_unrelated_tasks(\n"},"line_number":849,"absolute_offset":27672,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_controller_turn_and_timer_threshold_share_one_upload(tmp_path) -> None:\n"},"line_number":898,"absolute_offset":28934,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"upload"},"start":61,"end":67}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    async def blocked_upload(*, session_id, payload_bytes):\n"},"line_number":909,"absolute_offset":29298,"submatches":[{"match":{"text":"upload"},"start":22,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        return ReportUploadDisposition.ACK\n"},"line_number":915,"absolute_offset":29543,"submatches":[{"match":{"text":"ACK"},"start":39,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    runtime.client.put_session_report = blocked_upload\n"},"line_number":917,"absolute_offset":29587,"submatches":[{"match":{"text":"upload"},"start":48,"end":54}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    first_task = controller._upload_task\n"},"line_number":922,"absolute_offset":29812,"submatches":[{"match":{"text":"upload"},"start":29,"end":35}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    controller._schedule_upload_if_due()\n"},"line_number":925,"absolute_offset":29881,"submatches":[{"match":{"text":"upload"},"start":25,"end":31}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert controller._upload_task is first_task\n"},"line_number":928,"absolute_offset":29950,"submatches":[{"match":{"text":"upload"},"start":23,"end":29}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_finalize_writes_ended_and_returns_handle_without_yielding(tmp_path) -> None:\n"},"line_number":937,"absolute_offset":30243,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    async def blocked_upload(*, session_id, payload_bytes):\n"},"line_number":944,"absolute_offset":30545,"submatches":[{"match":{"text":"upload"},"start":22,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        return ReportUploadDisposition.ACK\n"},"line_number":947,"absolute_offset":30656,"submatches":[{"match":{"text":"ACK"},"start":39,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    runtime.client.put_session_report = blocked_upload\n"},"line_number":949,"absolute_offset":30700,"submatches":[{"match":{"text":"upload"},"start":48,"end":54}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert final_task.get_name() == \"terminal-session-report-final-upload\"\n"},"line_number":954,"absolute_offset":30842,"submatches":[{"match":{"text":"upload"},"start":67,"end":73}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(store.spool_path.read_text())[\"ended\"] is True\n"},"line_number":957,"absolute_offset":31023,"submatches":[{"match":{"text":"spool"},"start":28,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert not store.spool_path.exists()\n"},"line_number":963,"absolute_offset":31202,"submatches":[{"match":{"text":"spool"},"start":21,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_finalize_replaces_inflight_periodic_upload_with_ended_snapshot(\n"},"line_number":967,"absolute_offset":31266,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"upload"},"start":51,"end":57}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    async def upload(*, session_id, payload_bytes):\n"},"line_number":978,"absolute_offset":31686,"submatches":[{"match":{"text":"upload"},"start":14,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        return ReportUploadDisposition.ACK\n"},"line_number":986,"absolute_offset":31977,"submatches":[{"match":{"text":"ACK"},"start":39,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    runtime.client.put_session_report = upload\n"},"line_number":988,"absolute_offset":32021,"submatches":[{"match":{"text":"upload"},"start":40,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_finalize_retry_returns_false_and_keeps_ended_spool(tmp_path) -> None:\n"},"line_number":1007,"absolute_offset":32656,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"retry"},"start":24,"end":29},{"match":{"text":"spool"},"start":60,"end":65}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    async def retry_upload(*, session_id, payload_bytes):\n"},"line_number":1012,"absolute_offset":32891,"submatches":[{"match":{"text":"retry"},"start":14,"end":19},{"match":{"text":"upload"},"start":20,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        return ReportUploadDisposition.RETRY\n"},"line_number":1014,"absolute_offset":32987,"submatches":[{"match":{"text":"RETRY"},"start":39,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    runtime.client.put_session_report = retry_upload\n"},"line_number":1016,"absolute_offset":33033,"submatches":[{"match":{"text":"retry"},"start":40,"end":45},{"match":{"text":"upload"},"start":46,"end":52}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(store.spool_path.read_text())[\"ended\"] is True\n"},"line_number":1023,"absolute_offset":33279,"submatches":[{"match":{"text":"spool"},"start":28,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_cancelled_live_refresh_cannot_overwrite_final_snapshot(\n"},"line_number":1027,"absolute_offset":33371,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    async def retry_upload(*, session_id, payload_bytes):\n"},"line_number":1049,"absolute_offset":34232,"submatches":[{"match":{"text":"retry"},"start":14,"end":19},{"match":{"text":"upload"},"start":20,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        return ReportUploadDisposition.RETRY\n"},"line_number":1051,"absolute_offset":34328,"submatches":[{"match":{"text":"RETRY"},"start":39,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    runtime.client.put_session_report = retry_upload\n"},"line_number":1054,"absolute_offset":34432,"submatches":[{"match":{"text":"retry"},"start":40,"end":45},{"match":{"text":"upload"},"start":46,"end":52}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert await asyncio.to_thread(old_write_entered.wait, 1.0)  # to_thread: bounded-timeout, test event wait\n"},"line_number":1057,"absolute_offset":34565,"submatches":[{"match":{"text":"timeout"},"start":86,"end":93}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert await asyncio.to_thread(old_write_finished.wait, 1.0)  # to_thread: bounded-timeout, test event wait\n"},"line_number":1068,"absolute_offset":34964,"submatches":[{"match":{"text":"timeout"},"start":87,"end":94}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(store.spool_path.read_text())[\"ended\"] is True\n"},"line_number":1071,"absolute_offset":35146,"submatches":[{"match":{"text":"spool"},"start":28,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_old_periodic_ack_cannot_delete_final_retry_spool(\n"},"line_number":1075,"absolute_offset":35238,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15},{"match":{"text":"retry"},"start":52,"end":57},{"match":{"text":"spool"},"start":58,"end":63}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    old_upload_returned_ack = threading.Event()\n"},"line_number":1084,"absolute_offset":35615,"submatches":[{"match":{"text":"upload"},"start":8,"end":14}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    upload_calls = 0\n"},"line_number":1092,"absolute_offset":35927,"submatches":[{"match":{"text":"upload"},"start":4,"end":10}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            path == store.spool_path\n"},"line_number":1098,"absolute_offset":36096,"submatches":[{"match":{"text":"spool"},"start":26,"end":31}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            and old_upload_returned_ack.is_set()\n"},"line_number":1099,"absolute_offset":36133,"submatches":[{"match":{"text":"upload"},"start":20,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    async def upload(*, session_id, payload_bytes):\n"},"line_number":1115,"absolute_offset":36694,"submatches":[{"match":{"text":"upload"},"start":14,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        nonlocal upload_calls\n"},"line_number":1116,"absolute_offset":36746,"submatches":[{"match":{"text":"upload"},"start":17,"end":23}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        upload_calls += 1\n"},"line_number":1118,"absolute_offset":36814,"submatches":[{"match":{"text":"upload"},"start":8,"end":14}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        if upload_calls == 1:\n"},"line_number":1119,"absolute_offset":36840,"submatches":[{"match":{"text":"upload"},"start":11,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            old_upload_returned_ack.set()\n"},"line_number":1120,"absolute_offset":36870,"submatches":[{"match":{"text":"upload"},"start":16,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"            return ReportUploadDisposition.ACK\n"},"line_number":1121,"absolute_offset":36912,"submatches":[{"match":{"text":"ACK"},"start":43,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        return ReportUploadDisposition.RETRY\n"},"line_number":1122,"absolute_offset":36959,"submatches":[{"match":{"text":"RETRY"},"start":39,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    runtime.client.put_session_report = upload\n"},"line_number":1126,"absolute_offset":37134,"submatches":[{"match":{"text":"upload"},"start":40,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert await asyncio.to_thread(old_ack_read.wait, 1.0)  # to_thread: bounded-timeout, test event wait\n"},"line_number":1131,"absolute_offset":37327,"submatches":[{"match":{"text":"timeout"},"start":81,"end":88}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    await asyncio.wait_for(ended_write_started.wait(), timeout=1.0)\n"},"line_number":1134,"absolute_offset":37503,"submatches":[{"match":{"text":"timeout"},"start":55,"end":62}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"        assert not await asyncio.to_thread(  # to_thread: bounded-timeout, test event wait\n"},"line_number":1136,"absolute_offset":37580,"submatches":[{"match":{"text":"timeout"},"start":66,"end":73}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(store.spool_path.read_text())[\"ended\"] is True\n"},"line_number":1151,"absolute_offset":38013,"submatches":[{"match":{"text":"spool"},"start":28,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_external_turn_and_mid_turn_reminder_do_not_snapshot(tmp_path) -> None:\n"},"line_number":1155,"absolute_offset":38105,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"def test_runtime_bind_report_disabled_does_not_touch_disk(tmp_path, monkeypatch) -> None:\n"},"line_number":1167,"absolute_offset":38596,"submatches":[{"match":{"text":"def test_"},"start":0,"end":9}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"async def test_runtime_rebind_same_session_reuses_state_and_marks_live(\n"},"line_number":1204,"absolute_offset":39751,"submatches":[{"match":{"text":"def test_"},"start":6,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(rebound._store.spool_path.read_text())[\"ended\"] is False\n"},"line_number":1248,"absolute_offset":41407,"submatches":[{"match":{"text":"spool"},"start":37,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"lines":{"text":"    assert json.loads(resumed._store.spool_path.read_text())[\"ended\"] is False\n"},"line_number":1261,"absolute_offset":42015,"submatches":[{"match":{"text":"spool"},"start":37,"end":42}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_backend_session_report.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":490980,"human":"0.000491s"},"searches":1,"searches_with_match":1,"bytes_searched":42094,"bytes_printed":47856,"matched_lines":146,"matches":179}}}
{"data":{"elapsed_total":{"human":"0.001604s","nanos":1603559,"secs":0},"stats":{"bytes_printed":47856,"bytes_searched":42094,"elapsed":{"human":"0.000491s","nanos":490980,"secs":0},"matched_lines":146,"matches":179,"searches":1,"searches_with_match":1}},"type":"summary"}
