## MODIFIED Requirements ### Requirement: 超时控制由引擎注入 signal Checker 实现的 `execute()` MUST 使用 `ctx.signal` 感知超时,不得自行创建 `AbortController` 或 `setTimeout` 用于超时控制。Cmd checker 和 ping checker 可在 signal abort 时 `proc.kill()` 以确保子进程被终止。 #### Scenario: HTTP checker 使用 signal - **WHEN** HttpChecker 执行 HTTP 请求 - **THEN** SHALL 将 `ctx.signal` 传入 `fetch()` 的 `signal` 选项,不自行创建 `AbortController` #### Scenario: Cmd checker 响应 signal - **WHEN** CommandChecker 执行命令且 signal 被 abort - **THEN** SHALL 调用 `proc.kill()` 终止子进程,并在 CheckResult 中记录超时错误 #### Scenario: Ping checker 响应 signal - **WHEN** IcmpChecker 执行 ping 命令且 signal 被 abort - **THEN** SHALL 调用 `proc.kill()` 终止 ping 子进程,并在 CheckResult 中记录超时错误