1
0
Files
DiAL/openspec/changes/http-checker-quality-hardening/proposal.md
lanyuanxiaoyao 76b47006fe feat: 新增两个 OpenSpec 变更提案 — 前端架构重构与 HTTP Checker 质量加固
- frontend-architecture-refactor: 拆分 hooks/组件、类型筛选器动态化
- http-checker-quality-hardening: ReDoS 防护、failure 格式修正、测试补全
2026-05-13 18:40:08 +08:00

1.6 KiB
Raw Blame History

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.tscheckCssRule 的冗余分支逻辑
  • 精简 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 — 补充截断相关测试