{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/CONTEXT.md"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/CONTEXT.md"},"lines":{"text":"been flushed. A daemon watchdog enforces it with non-zero hard exit; later cleanup cannot\n"},"line_number":79,"absolute_offset":5122,"submatches":[{"match":{"text":"watchdog"},"start":23,"end":31}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/CONTEXT.md"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":25730,"human":"0.000026s"},"searches":1,"searches_with_match":1,"bytes_searched":9276,"bytes_printed":424,"matched_lines":1,"matches":1}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/CHANGELOG.md"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/CHANGELOG.md"},"lines":{"text":"  文本/JSON 先 flush，再启动固定 10 秒 daemon watchdog；Windows/POSIX 均忽略\n"},"line_number":20,"absolute_offset":910,"submatches":[{"match":{"text":"watchdog"},"start":56,"end":64}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/CHANGELOG.md"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":17772,"human":"0.000018s"},"searches":1,"searches_with_match":1,"bytes_searched":12232,"bytes_printed":428,"matched_lines":1,"matches":1}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/main.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/main.py"},"lines":{"text":"from comate_cli.terminal_agent.exit_watchdog import ExitWatchdog\n"},"line_number":15,"absolute_offset":222,"submatches":[{"match":{"text":"watchdog"},"start":36,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/main.py"},"lines":{"text":"    exit_watchdog = None if rpc_stdio else ExitWatchdog()\n"},"line_number":559,"absolute_offset":18136,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/main.py"},"lines":{"text":"                        exit_watchdog=exit_watchdog,\n"},"line_number":597,"absolute_offset":19652,"submatches":[{"match":{"text":"watchdog"},"start":29,"end":37},{"match":{"text":"watchdog"},"start":43,"end":51}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/main.py"},"lines":{"text":"        if runner_closed and exit_watchdog is not None:\n"},"line_number":609,"absolute_offset":20046,"submatches":[{"match":{"text":"watchdog"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/main.py"},"lines":{"text":"            exit_watchdog.disarm()\n"},"line_number":610,"absolute_offset":20102,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/main.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":25742,"human":"0.000026s"},"searches":1,"searches_with_match":1,"bytes_searched":20177,"bytes_printed":1625,"matched_lines":5,"matches":6}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"    watchdog = SimpleNamespace(remaining_s=lambda: next(remaining))\n"},"line_number":103,"absolute_offset":2492,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"            exit_watchdog=watchdog,\n"},"line_number":126,"absolute_offset":3303,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25},{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"async def test_tui_exit_summary_is_flushed_before_watchdog_and_cleanup(\n"},"line_number":167,"absolute_offset":4435,"submatches":[{"match":{"text":"watchdog"},"start":50,"end":58}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"            events.append(\"watchdog_arm\")\n"},"line_number":184,"absolute_offset":4864,"submatches":[{"match":{"text":"watchdog"},"start":27,"end":35}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"        exit_watchdog=_Watchdog(),\n"},"line_number":229,"absolute_offset":6237,"submatches":[{"match":{"text":"watchdog"},"start":13,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"    assert events.index(\"summary_flush\") < events.index(\"watchdog_arm\")\n"},"line_number":232,"absolute_offset":6279,"submatches":[{"match":{"text":"watchdog"},"start":57,"end":65}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"    assert events.index(\"watchdog_arm\") < events.index(\"tui_shutdown\")\n"},"line_number":233,"absolute_offset":6351,"submatches":[{"match":{"text":"watchdog"},"start":25,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"    assert events.index(\"watchdog_arm\") < events.index(\"graceful_shutdown\")\n"},"line_number":234,"absolute_offset":6422,"submatches":[{"match":{"text":"watchdog"},"start":25,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"        exit_watchdog=_FakeArmedWatchdog(remaining=10.0),\n"},"line_number":260,"absolute_offset":7484,"submatches":[{"match":{"text":"watchdog"},"start":13,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"        exit_watchdog=_FakeArmedWatchdog(remaining=10.0),\n"},"line_number":318,"absolute_offset":9480,"submatches":[{"match":{"text":"watchdog"},"start":13,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"        assert watchdog.arm_calls == 1\n"},"line_number":352,"absolute_offset":10634,"submatches":[{"match":{"text":"watchdog"},"start":15,"end":23}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"    watchdog = _FakeArmedWatchdog(remaining=1.0)\n"},"line_number":420,"absolute_offset":12675,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"            exit_watchdog=watchdog,\n"},"line_number":452,"absolute_offset":13883,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25},{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"lines":{"text":"        exit_watchdog=_Deadline(),\n"},"line_number":561,"absolute_offset":17182,"submatches":[{"match":{"text":"watchdog"},"start":13,"end":21}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_exit_lifecycle.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":41647,"human":"0.000042s"},"searches":1,"searches_with_match":1,"bytes_searched":17457,"bytes_printed":4531,"matched_lines":14,"matches":16}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"lines":{"text":"from comate_cli.terminal_agent.exit_watchdog import ExitWatchdog\n"},"line_number":11,"absolute_offset":152,"submatches":[{"match":{"text":"watchdog"},"start":36,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"lines":{"text":"    watchdog = ExitWatchdog(timeout_s=0.2)\n"},"line_number":26,"absolute_offset":505,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"lines":{"text":"    watchdog.arm()\n"},"line_number":29,"absolute_offset":618,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"lines":{"text":"    watchdog = ExitWatchdog(timeout_s=0.2)\n"},"line_number":44,"absolute_offset":1031,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"lines":{"text":"    watchdog.arm()\n"},"line_number":47,"absolute_offset":1147,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"lines":{"text":"        exit_watchdog=watchdog,\n"},"line_number":54,"absolute_offset":1353,"submatches":[{"match":{"text":"watchdog"},"start":13,"end":21},{"match":{"text":"watchdog"},"start":22,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"lines":{"text":"        watchdog = kwargs[\"exit_watchdog\"]\n"},"line_number":68,"absolute_offset":1723,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16},{"match":{"text":"watchdog"},"start":32,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"lines":{"text":"        watchdog.arm()\n"},"line_number":71,"absolute_offset":1842,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/fixtures/exit_watchdog_child.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":26913,"human":"0.000027s"},"searches":1,"searches_with_match":1,"bytes_searched":2672,"bytes_printed":2567,"matched_lines":8,"matches":10}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"        self._events.append(\"watchdog_arm\")\n"},"line_number":34,"absolute_offset":852,"submatches":[{"match":{"text":"watchdog"},"start":29,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                    exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":72,"absolute_offset":2318,"submatches":[{"match":{"text":"watchdog"},"start":25,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"        self.assertLess(events.index(\"output_flush\"), events.index(\"watchdog_arm\"))\n"},"line_number":76,"absolute_offset":2464,"submatches":[{"match":{"text":"watchdog"},"start":68,"end":76}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            events.index(\"watchdog_arm\"),\n"},"line_number":78,"absolute_offset":2573,"submatches":[{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                    exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":172,"absolute_offset":6426,"submatches":[{"match":{"text":"watchdog"},"start":25,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"        self.assertLess(events.index(\"output_flush\"), events.index(\"watchdog_arm\"))\n"},"line_number":189,"absolute_offset":7262,"submatches":[{"match":{"text":"watchdog"},"start":68,"end":76}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            events.index(\"watchdog_arm\"),\n"},"line_number":191,"absolute_offset":7371,"submatches":[{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                        exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":298,"absolute_offset":12055,"submatches":[{"match":{"text":"watchdog"},"start":29,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"        self.assertLess(events.index(\"output_flush\"), events.index(\"watchdog_arm\"))\n"},"line_number":304,"absolute_offset":12333,"submatches":[{"match":{"text":"watchdog"},"start":68,"end":76}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            events.index(\"watchdog_arm\"),\n"},"line_number":306,"absolute_offset":12442,"submatches":[{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":344,"absolute_offset":13938,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":350,"absolute_offset":14103,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":382,"absolute_offset":15384,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":388,"absolute_offset":15549,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":422,"absolute_offset":16950,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":430,"absolute_offset":17220,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":472,"absolute_offset":18899,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":483,"absolute_offset":19249,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":529,"absolute_offset":21065,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":541,"absolute_offset":21592,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":582,"absolute_offset":23286,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":590,"absolute_offset":23582,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":686,"absolute_offset":26877,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":693,"absolute_offset":27090,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":726,"absolute_offset":28394,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":734,"absolute_offset":28656,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"                            exit_watchdog=_RecordingWatchdog(events),\n"},"line_number":779,"absolute_offset":30364,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            [\"output_flush\", \"watchdog_arm\", \"graceful_shutdown\"],\n"},"line_number":785,"absolute_offset":30529,"submatches":[{"match":{"text":"watchdog"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"    watchdog = object()\n"},"line_number":903,"absolute_offset":35331,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"            exit_watchdog=watchdog,\n"},"line_number":934,"absolute_offset":36518,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25},{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"lines":{"text":"    assert run_print_mode.await_args.kwargs[\"exit_watchdog\"] is watchdog\n"},"line_number":938,"absolute_offset":36612,"submatches":[{"match":{"text":"watchdog"},"start":50,"end":58},{"match":{"text":"watchdog"},"start":64,"end":72}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_print_mode.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":80198,"human":"0.000080s"},"searches":1,"searches_with_match":1,"bytes_searched":38799,"bytes_printed":10013,"matched_lines":31,"matches":33}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"                call_log.append(\"watchdog_arm\")\n"},"line_number":86,"absolute_offset":2908,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"        watchdog = _Watchdog()\n"},"line_number":92,"absolute_offset":3058,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"            await app_module.run(profile=profile, exit_watchdog=watchdog)\n"},"line_number":220,"absolute_offset":7926,"submatches":[{"match":{"text":"watchdog"},"start":55,"end":63},{"match":{"text":"watchdog"},"start":64,"end":72}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"                \"watchdog_arm\",\n"},"line_number":227,"absolute_offset":8123,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"                exit_watchdog=SimpleNamespace(remaining_s=lambda: 8.0),\n"},"line_number":504,"absolute_offset":19057,"submatches":[{"match":{"text":"watchdog"},"start":21,"end":29}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"                exit_watchdog=SimpleNamespace(remaining_s=lambda: 8.0),\n"},"line_number":521,"absolute_offset":19756,"submatches":[{"match":{"text":"watchdog"},"start":21,"end":29}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"                exit_watchdog=SimpleNamespace(remaining_s=lambda: 0.05),\n"},"line_number":578,"absolute_offset":21900,"submatches":[{"match":{"text":"watchdog"},"start":21,"end":29}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"    async def test_exit_epilogue_orders_flush_watchdog_cleanup_and_logging_close(\n"},"line_number":687,"absolute_offset":26225,"submatches":[{"match":{"text":"watchdog"},"start":46,"end":54}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"                call_log.append(\"watchdog_arm\")\n"},"line_number":700,"absolute_offset":26815,"submatches":[{"match":{"text":"watchdog"},"start":33,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"            await app_module.run(exit_watchdog=_Watchdog())\n"},"line_number":715,"absolute_offset":27323,"submatches":[{"match":{"text":"watchdog"},"start":38,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"lines":{"text":"                \"watchdog_arm\",\n"},"line_number":723,"absolute_offset":27529,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_app_shutdown.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":33335,"human":"0.000033s"},"searches":1,"searches_with_match":1,"bytes_searched":27748,"bytes_printed":3523,"matched_lines":11,"matches":12}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"    def test_main_owns_one_watchdog_until_terminal_restore_finishes(self) -> None:\n"},"line_number":15,"absolute_offset":315,"submatches":[{"match":{"text":"watchdog"},"start":27,"end":35}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        watchdog = MagicMock()\n"},"line_number":17,"absolute_offset":429,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        watchdog.disarm.side_effect = lambda: events.append(\"watchdog_disarm\")\n"},"line_number":18,"absolute_offset":460,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16},{"match":{"text":"watchdog"},"start":61,"end":69}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"            patch.object(main_module, \"ExitWatchdog\", return_value=watchdog) as watchdog_cls,\n"},"line_number":42,"absolute_offset":1252,"submatches":[{"match":{"text":"watchdog"},"start":67,"end":75},{"match":{"text":"watchdog"},"start":80,"end":88}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        watchdog_cls.assert_called_once_with()\n"},"line_number":65,"absolute_offset":2408,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        self.assertIs(run.await_args.kwargs[\"exit_watchdog\"], watchdog)\n"},"line_number":66,"absolute_offset":2455,"submatches":[{"match":{"text":"watchdog"},"start":50,"end":58},{"match":{"text":"watchdog"},"start":62,"end":70}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"            events.index(\"watchdog_disarm\"),\n"},"line_number":81,"absolute_offset":2977,"submatches":[{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"    def test_main_does_not_disarm_watchdog_when_runner_close_fails(self) -> None:\n"},"line_number":84,"absolute_offset":3033,"submatches":[{"match":{"text":"watchdog"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        watchdog = MagicMock()\n"},"line_number":85,"absolute_offset":3115,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"            patch.object(main_module, \"ExitWatchdog\", return_value=watchdog),\n"},"line_number":106,"absolute_offset":3689,"submatches":[{"match":{"text":"watchdog"},"start":67,"end":75}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        watchdog.disarm.assert_not_called()\n"},"line_number":123,"absolute_offset":4558,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"    def test_main_rpc_stdio_does_not_create_a_watchdog(self) -> None:\n"},"line_number":125,"absolute_offset":4603,"submatches":[{"match":{"text":"watchdog"},"start":46,"end":54}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"            patch.object(main_module, \"ExitWatchdog\") as watchdog_cls,\n"},"line_number":128,"absolute_offset":4746,"submatches":[{"match":{"text":"watchdog"},"start":57,"end":65}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        watchdog_cls.assert_not_called()\n"},"line_number":135,"absolute_offset":5086,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        self.assertIsNone(run.await_args.kwargs[\"exit_watchdog\"])\n"},"line_number":136,"absolute_offset":5127,"submatches":[{"match":{"text":"watchdog"},"start":54,"end":62}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"    def test_app_run_accepts_optional_keyword_only_exit_watchdog(self) -> None:\n"},"line_number":465,"absolute_offset":18622,"submatches":[{"match":{"text":"watchdog"},"start":56,"end":64}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"lines":{"text":"        parameter = inspect.signature(app.run).parameters[\"exit_watchdog\"]\n"},"line_number":470,"absolute_offset":18777,"submatches":[{"match":{"text":"watchdog"},"start":64,"end":72}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_args.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":68134,"human":"0.000068s"},"searches":1,"searches_with_match":1,"bytes_searched":27203,"bytes_printed":5504,"matched_lines":17,"matches":20}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/exit_watchdog.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/exit_watchdog.py"},"lines":{"text":"                name=\"comate-exit-watchdog\",\n"},"line_number":48,"absolute_offset":1315,"submatches":[{"match":{"text":"watchdog"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/exit_watchdog.py"},"lines":{"text":"        logger.info(\"Exit watchdog armed with %.3fs hard deadline\", self._timeout_s)\n"},"line_number":53,"absolute_offset":1437,"submatches":[{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/exit_watchdog.py"},"lines":{"text":"        logger.info(\"Exit watchdog disarmed\")\n"},"line_number":63,"absolute_offset":1766,"submatches":[{"match":{"text":"watchdog"},"start":26,"end":34}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/exit_watchdog.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":10804,"human":"0.000011s"},"searches":1,"searches_with_match":1,"bytes_searched":2834,"bytes_printed":1104,"matched_lines":3,"matches":3}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/print_mode.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/print_mode.py"},"lines":{"text":"    from comate_cli.terminal_agent.exit_watchdog import ExitWatchdog\n"},"line_number":17,"absolute_offset":376,"submatches":[{"match":{"text":"watchdog"},"start":40,"end":48}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/print_mode.py"},"lines":{"text":"    exit_watchdog: \"ExitWatchdog | None\" = None,\n"},"line_number":198,"absolute_offset":6044,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/print_mode.py"},"lines":{"text":"                if exit_watchdog is not None:\n"},"line_number":258,"absolute_offset":8404,"submatches":[{"match":{"text":"watchdog"},"start":24,"end":32}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/print_mode.py"},"lines":{"text":"                    exit_watchdog.arm()\n"},"line_number":259,"absolute_offset":8450,"submatches":[{"match":{"text":"watchdog"},"start":25,"end":33}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/print_mode.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":15220,"human":"0.000015s"},"searches":1,"searches_with_match":1,"bytes_searched":8932,"bytes_printed":1376,"matched_lines":4,"matches":4}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"    from comate_cli.terminal_agent.exit_watchdog import ExitWatchdog\n"},"line_number":25,"absolute_offset":892,"submatches":[{"match":{"text":"watchdog"},"start":40,"end":48}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"    exit_watchdog: ExitWatchdog | None = None,\n"},"line_number":482,"absolute_offset":15075,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"                exit_watchdog.remaining_s() if exit_watchdog is not None else None\n"},"line_number":501,"absolute_offset":15683,"submatches":[{"match":{"text":"watchdog"},"start":21,"end":29},{"match":{"text":"watchdog"},"start":52,"end":60}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"    exit_watchdog: \"ExitWatchdog | None\",\n"},"line_number":723,"absolute_offset":23656,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"    remaining_s = exit_watchdog.remaining_s() if exit_watchdog is not None else 0.0\n"},"line_number":728,"absolute_offset":23789,"submatches":[{"match":{"text":"watchdog"},"start":23,"end":31},{"match":{"text":"watchdog"},"start":54,"end":62}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"    exit_watchdog: \"ExitWatchdog | None\",\n"},"line_number":763,"absolute_offset":25086,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"        if exit_watchdog is not None:\n"},"line_number":802,"absolute_offset":26496,"submatches":[{"match":{"text":"watchdog"},"start":16,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"            exit_watchdog.arm()\n"},"line_number":803,"absolute_offset":26534,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"            exit_watchdog=exit_watchdog,\n"},"line_number":834,"absolute_offset":27613,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25},{"match":{"text":"watchdog"},"start":31,"end":39}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"            exit_watchdog=exit_watchdog,\n"},"line_number":855,"absolute_offset":28372,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25},{"match":{"text":"watchdog"},"start":31,"end":39}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"    exit_watchdog: \"ExitWatchdog | None\",\n"},"line_number":923,"absolute_offset":30450,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"            exit_watchdog=exit_watchdog,\n"},"line_number":931,"absolute_offset":30700,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25},{"match":{"text":"watchdog"},"start":31,"end":39}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"        exit_watchdog=exit_watchdog,\n"},"line_number":942,"absolute_offset":31003,"submatches":[{"match":{"text":"watchdog"},"start":13,"end":21},{"match":{"text":"watchdog"},"start":27,"end":35}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"    exit_watchdog: \"ExitWatchdog | None\" = None,\n"},"line_number":1058,"absolute_offset":34990,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"            exit_watchdog=exit_watchdog,\n"},"line_number":1188,"absolute_offset":40247,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25},{"match":{"text":"watchdog"},"start":31,"end":39}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"lines":{"text":"            exit_watchdog=exit_watchdog,\n"},"line_number":1269,"absolute_offset":43691,"submatches":[{"match":{"text":"watchdog"},"start":17,"end":25},{"match":{"text":"watchdog"},"start":31,"end":39}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/app.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":52789,"human":"0.000053s"},"searches":1,"searches_with_match":1,"bytes_searched":45395,"bytes_printed":5363,"matched_lines":16,"matches":24}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_profile_entry.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_profile_entry.py"},"lines":{"text":"    assert run.await_args.kwargs[\"exit_watchdog\"] is None\n"},"line_number":44,"absolute_offset":1169,"submatches":[{"match":{"text":"watchdog"},"start":39,"end":47}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_main_profile_entry.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":11278,"human":"0.000011s"},"searches":1,"searches_with_match":1,"bytes_searched":1909,"bytes_printed":438,"matched_lines":1,"matches":1}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"from comate_cli.terminal_agent.exit_watchdog import ExitWatchdog\n"},"line_number":5,"absolute_offset":54,"submatches":[{"match":{"text":"watchdog"},"start":36,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    watchdog = ExitWatchdog(timeout_s=10.0, monotonic=clock.monotonic)\n"},"line_number":18,"absolute_offset":370,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.arm() is True\n"},"line_number":20,"absolute_offset":442,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.remaining_s() == 7.0\n"},"line_number":22,"absolute_offset":498,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.arm() is False\n"},"line_number":23,"absolute_offset":539,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.remaining_s() == 7.0\n"},"line_number":24,"absolute_offset":574,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.disarm() is True\n"},"line_number":25,"absolute_offset":615,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    watchdog = ExitWatchdog(\n"},"line_number":30,"absolute_offset":743,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.arm() is True\n"},"line_number":35,"absolute_offset":861,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.disarm() is True\n"},"line_number":36,"absolute_offset":895,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.disarm() is False\n"},"line_number":37,"absolute_offset":932,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    watchdog = ExitWatchdog(timeout_s=0.03, force_exit=record_force_exit)\n"},"line_number":49,"absolute_offset":1270,"submatches":[{"match":{"text":"watchdog"},"start":4,"end":12}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.arm() is True\n"},"line_number":51,"absolute_offset":1345,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"lines":{"text":"    assert watchdog.disarm() is False\n"},"line_number":54,"absolute_offset":1455,"submatches":[{"match":{"text":"watchdog"},"start":11,"end":19}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":57148,"human":"0.000057s"},"searches":1,"searches_with_match":1,"bytes_searched":2214,"bytes_printed":4171,"matched_lines":14,"matches":14}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog_subprocess.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog_subprocess.py"},"lines":{"text":"def test_watchdog_hard_exits_when_asyncio_run_final_gather_hangs() -> None:\n"},"line_number":13,"absolute_offset":141,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog_subprocess.py"},"lines":{"text":"    child = Path(__file__).parent / \"fixtures\" / \"exit_watchdog_child.py\"\n"},"line_number":14,"absolute_offset":217,"submatches":[{"match":{"text":"watchdog"},"start":55,"end":63}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog_subprocess.py"},"lines":{"text":"    child = Path(__file__).parent / \"fixtures\" / \"exit_watchdog_child.py\"\n"},"line_number":34,"absolute_offset":753,"submatches":[{"match":{"text":"watchdog"},"start":55,"end":63}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog_subprocess.py"},"lines":{"text":"def test_watchdog_survives_sigint_during_runner_close_with_stuck_executor(\n"},"line_number":55,"absolute_offset":1507,"submatches":[{"match":{"text":"watchdog"},"start":9,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog_subprocess.py"},"lines":{"text":"    child = Path(__file__).parent / \"fixtures\" / \"exit_watchdog_child.py\"\n"},"line_number":58,"absolute_offset":1613,"submatches":[{"match":{"text":"watchdog"},"start":55,"end":63}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog_subprocess.py"},"lines":{"text":"        \"SIGINT interrupted Runner.close and the disarmed watchdog left the \"\n"},"line_number":78,"absolute_offset":2250,"submatches":[{"match":{"text":"watchdog"},"start":58,"end":66}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_exit_watchdog_subprocess.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":13694,"human":"0.000014s"},"searches":1,"searches_with_match":1,"bytes_searched":2557,"bytes_printed":2140,"matched_lines":6,"matches":6}}}
{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_startup_profile.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_startup_profile.py"},"lines":{"text":"            patch.object(main_module, \"ExitWatchdog\", return_value=MagicMock()) as watchdog_cls,\n"},"line_number":498,"absolute_offset":19696,"submatches":[{"match":{"text":"watchdog"},"start":83,"end":91}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_startup_profile.py"},"lines":{"text":"        self.assertIs(call_kwargs[\"exit_watchdog\"], watchdog_cls.return_value)\n"},"line_number":518,"absolute_offset":20850,"submatches":[{"match":{"text":"watchdog"},"start":40,"end":48},{"match":{"text":"watchdog"},"start":52,"end":60}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_startup_profile.py"},"lines":{"text":"        watchdog_cls.return_value.disarm.assert_called_once_with()\n"},"line_number":519,"absolute_offset":20929,"submatches":[{"match":{"text":"watchdog"},"start":8,"end":16}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/tests/test_startup_profile.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":25553,"human":"0.000026s"},"searches":1,"searches_with_match":1,"bytes_searched":21056,"bytes_printed":1172,"matched_lines":3,"matches":4}}}
{"data":{"elapsed_total":{"human":"0.005979s","nanos":5978895,"secs":0},"stats":{"bytes_printed":44379,"bytes_searched":240461,"elapsed":{"human":"0.000506s","nanos":505957,"secs":0},"matched_lines":135,"matches":155,"searches":15,"searches_with_match":15}},"type":"summary"}
