## Why HTTP checker 经过审查发现若干质量问题:failure 中 actual 值截断格式不符合 spec 要求(缺少字符计数)导致诊断信息不完整、regex 规则缺少 ReDoS 防护存在 CPU 阻塞风险、多条 JSON body 规则重复 parse 造成不必要开销、CSS 规则分支冗余、重定向测试覆盖不足。需要统一修复以提升健壮性和代码质量。 ## What Changes - 修正 `mismatchFailure` 中 actual 值截断格式,添加字符计数信息,格式为 `前 N 字符…(共 M 字符)` - 为 regex body 规则和 match operator 添加 ReDoS 防护(执行超时或正则复杂度检测) - 优化多条 JSON body 规则共享同一次 `JSON.parse` 结果,避免重复解析 - 精简 `body.ts` 中 `checkCssRule` 的冗余分支逻辑 - 精简 `execute.ts` 中提前 duration 检查的代码结构 - 补充重定向相关测试:303 method 转换、307/308 保持 method、相对路径 Location、混合 body rules 集成测试 ## Capabilities ### New Capabilities ### Modified Capabilities - `expect-body-checkers`: 新增 actual 值截断的具体实现要求(spec 已声明但未细化截断阈值和格式) ## Impact - `src/server/checker/expect/failure.ts` — 新增截断逻辑 - `src/server/checker/runner/http/body.ts` — JSON parse 优化、CSS 分支精简 - `src/server/checker/runner/http/execute.ts` — duration 检查精简 - `src/server/checker/expect/operator.ts` — match operator ReDoS 防护 - `tests/server/checker/runner/http/runner.test.ts` — 补充重定向和集成测试 - `tests/server/checker/runner/shared/body.test.ts` — 补充截断相关测试