变更 / Changes
本次为三 agent 代码审查(核心逻辑 / 宿主集成与安全 / 测试质量,共 20 项发现)的修复版本。无 P0;含 1 个 P1 产品 bug、全部值得修的 P2 与关键 P3。
Fixes
- watcher:基线误报(P1) — 基线轮询失败不再把历史红色运行误报为 NEW CI FAILURE;基线只由成功轮询建立,建立前抑制检测
- watcher:超时与取消时机 — sleep 以剩余存活时长为上限、醒后复查 deadline;poll 在途时的 cancel 优先于检测结果
- runtime:jobs 服务懒解析(与 shell/storageDomain 同一挂载时序理由);单个 job 日志拉取失败不再中止整个诊断(以
logError呈现);maxLines硬上限 2000 - 安全:日志摘录围栏加固 — 四反引号围栏 + 折叠内容中 4+ 反引号连写,关闭 prompt-injection 破栏通道;
ghBin统一 shell 引号 - config:
resolveConfig拒绝 NaN/Infinity/越界值(schemastery number 校验放行它们,NaN 间隔会把 watch 退化成 1ms 热轮询) - signatures:保留并解包
##[error]规范失败行(此前被噪声过滤丢弃);sha256 长度 hex 纳入掩码,跨运行签名 id 稳定 - ledger:
record()串行化 — 并发诊断不再丢seenCount增量
Tests
- 85 → 102:
createShellRunner直接单测(宿主形状适配层,此前零覆盖);经真实apply()接线的 ci_diagnose 端到端测试(钉住 4MB 捕获预算与 ghBin 引号);watcher 三条回归(基线失败/deadline cap/poll 在途取消);账本并发测试;ci_watch 测试清理空转轮询循环 verify-web-profile.mjs账本持久化检查新增 mtime 断言,杜绝陈旧文件虚空通过
验证结论 / Verification
pnpm format:check/typecheck/build✅;单元测试 102/102 ✅- 真实环境:本机 web profile 进程内
boot()19/19 ✅(含新增 mtime 防空洞检查;cli/cli run #31782742089 实时诊断、真实 watch job 基线与 kill、账本本运行重写落盘)
Full Changelog: v0.1.1...v0.1.2