{
  "model": "claude-haiku-5-5",
  "category": "background",
  "scenarios": [
    {
      "id": "d1-two-servers",
      "status": "pass",
      "product_defects": [],
      "task_outcome": "8810/8811 均返回 HTTP 200；TaskStop 只停止第一个任务并报告 stopped/143，随后第一个端口拒绝连接、第二个仍为 200；第二个随 CLI 退出停止。隔离副本双服务器烟测通过。",
      "notes": "log.jsonl:11-46 与 background-tasks.jsonl 支持启动、选择性停止、运行中 TaskOutput 和退出清理；CLI exit0，7/7 保存配对，6 requests，费用独立复算 $0.001830545。组内共通检查：七场配置及 controls 均 high/bypass，审批数均0；原始 JSON/JSONL 有效、无 unparsed、全部 .err 为空、result leftovers 均空，保存配对完整且缓存读取大于0；每个 promptSnapshot 均30工具并含完整6项 Skill catalog，无 AskUserQuestion、DeferredToolCall 或 DSH 工具，run HOME 无 DSH 目录。费用按 snapshot10u/src/shared/pricing.ts 的缓存读写及逐请求长提示语义复算，合计 $0.0127718；这是离线估算，不是账单。每场 review16b-background/audit.json 留有证据；d1 的 verification.json 记录49个原始文件哈希未变、复核脚本 exit0 和最终进程/监听检查。测试使用私有 Node v24.22.0、已有依赖及新隔离 HOME；所有自有进程组已逐一清理。本组无实际 timeout 或 TaskOutput wait_ms 覆盖；不宣称原生桌面、PTY、DSH 或真实 UI 点击覆盖，也不从退出后检查推导精确清理毫秒数。"
    },
    {
      "id": "d2-bad-bg-command",
      "status": "pass",
      "product_defects": [],
      "task_outcome": "不存在的后台命令明确 failed/127；第二个任务先 running，再 failed/3，stderr crashed 与 stdout starting 均保留，TaskOutput 返回 failed/3。独立执行两条安全命令得到相同退出码。",
      "notes": "log.jsonl:11-25、保存 toolHistory 和 review16b-background/smoke.json 一致；两个实际执行错误均保持 failed，未误标 refused；TaskOutput 调用本身成功。退出码在状态、错误和输出中的重复属于既定格式。CLI exit0、turn-complete、3/3 保存配对、4 requests、费用 $0.001090235，复算一致；无残留。"
    },
    {
      "id": "d3-unicode-bg",
      "status": "pass",
      "product_defects": [],
      "task_outcome": "后台任务从 running 到 completed/0；运行中的 tasks 尾部与 Bash 初始输出可读，最终 TaskOutput 完整保留6行、324字节中文、emoji、ZWJ 和 ANSI 序列，独立字节核对通过。",
      "notes": "log.jsonl:11-24 无 U+FFFD 或乱码，最终输出与独立 Python 夹具完全一致。模型只调用了一次完成后的 TaskOutput，未完成用户要求的运行中及完成后两次读取，并在最终答复明确承认；其展示文本省略 ESC 字节也是模型转述问题，原始工具输出未损坏。不能因此宣称本场实际覆盖运行中的 TaskOutput。CLI exit0、2/2 保存配对、3 requests、费用 $0.001208045，复算一致；无残留。"
    },
    {
      "id": "d4-watcher-left-running",
      "status": "pass",
      "product_defects": [],
      "task_outcome": "node --watch 先返回 ok，FileEdit 后记录重启并返回 updated；任务在回合末仍 running，CLI 退出后持久记录 stopped/0、endedWithProcess=true。隔离副本的 watcher 重载与进程组清理烟测通过。",
      "notes": "log.jsonl:16-41 支持实际启动、两次 curl、重载与运行中 TaskOutput；result leftovers 为空，复核时原始 PID 10745 和端口8825均不存在。独立 Node24 测试只修改 review 目录副本并验证 updated→review-updated，随后整个自有进程组退出。CLI exit0、7/7 保存配对、6 requests、费用 $0.00162666，复算一致。原始记录没有逐进程退出时间，未声称精确清理耗时。"
    },
    {
      "id": "d5-max-bg",
      "status": "pass",
      "product_defects": [],
      "task_outcome": "前8个 sleep 300 成功后台启动；第9次实际 Bash 调用返回8任务上限错误并保持 failed，第10次被重复失败保护阻止并保存为 refused；8次 TaskStop 全部 stopped/143，TaskList 列出8个已停止后台任务。",
      "notes": "log.jsonl:15-69 与保存 toolHistory 证实实际并发峰值8、清晰上限错误及 failed/refused 区别。第10次只有 tool-result、没有执行的 tool-use 符合既定协议；原始协议18次 use/19次 result，保存会话19/19正确配对。全部持久任务记录 stopped，原始8个PID当前均不存在，result无残留。CLI exit0、4 requests、费用 $0.00256221，复算一致。该场没有可构建产物；复核依据实际帧、持久终态与 snapshot10u/src/tools/backgroundShells.ts:309 的上限分支，没有伪称新增项目测试通过。"
    },
    {
      "id": "d6-interrupt-resume",
      "status": "pass",
      "product_defects": [],
      "task_outcome": "第6次工具调用 TaskStop 时 SIGINT 中断；部分回合、已完成结果和未执行 FileEdit 均正确保存。恢复同一session后先确认旧端口关闭，再添加 /time、启动验证两条路由并停止。独立 Express 5.3.0 路由烟测通过。",
      "notes": "log.jsonl:38-43 仅发出一次 TaskStop 中断结果和一次明确错误 Stopped before this turn finished.；TaskStop 与未开始的 FileEdit 均保存为 cancelled，13/13工具结果配对，assistant metadata.interrupted=true。恢复上下文仅出现一次旧后台任务已结束通知，旧记录 stopped/143、reported=true；恢复未重复 npm init/install 或已完成写入，无400。两次CLI均exit0，最终turn-complete，12 requests、费用 $0.003671755，复算一致。独立 Node24 语法检查 exit0，/health 返回 ok:true，/time 返回有效当前ISO时间；package.json 只有 npm init 测试占位符，未将其当作真实测试套件。SIGINT覆盖CLI停止路径，非原生UI点击；没有足够采样证明旧服务器精确在多少毫秒内结束。"
    },
    {
      "id": "d7-sigkill-orphan",
      "status": "pass",
      "product_defects": [],
      "task_outcome": "后台8840服务器实际返回200/ok，随后执行前台 sleep 200，CLI被SIGKILL；result.sigkill.killed=true、serverGoneMs=1091，退出后无记录的进程或监听残留。隔离环境直接测试冻结watchdog源码也通过，全部自有进程组消失。",
      "notes": "保留原始异常终止语义：driver.summary.exitCodes=[137]、exitedEarly=true、errors=[]、.err为空，log.jsonl:19-21没有turn-complete而是outcome=exited；外层runner exit0不能替代CLI 137。240秒turn timeout及300秒Bash timeout未触发。原始serverGoneMs是runner每250ms轮询首次观察端口消失的约1.091秒上界，不是精确进程组清理时长。SIGKILL后任务文件保留running旧快照、sleep卡片保留running检查点，保存回合明确interrupted且completion unverified，并补入 No result was recorded 的合成错误结果，3/3配对，未伪报成功。3个已完成模型请求的usage完整，费用 $0.00078235 复算一致。review16b-background/watchdog-check.json 记录私有Node24直接调用 snapshot10u/src/utils/watchdog.ts 的独立离线测试：测试父进程SIGKILL、端口首次消失观测966ms、服务器及watchdog组均退出；此测量不替代原始d7时间证据。"
    }
  ]
}
