Files
Agent-System/.doc/test-reports/2026-09-15-http-error-envelope-h1-h3-test-report.md
T
weichenandCursor f6813cc272 feat(api): add additive HTTP/SSE error envelopes
Public errors now emit code, safe message, and request_id while keeping the legacy error field. Raw SQL, paths, tokens, and XSS payloads are stripped; the frontend branches on code instead of substring matching.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 14:40:56 +00:00

2.0 KiB
Raw Blame History

HTTP/SSE 错误信封 H1–H3 测试报告

一、 测试背景 (Background)

H0 盘点公开路由存在纯文本 err.Error()、JSON {error,message} 与 SSE error_info 三套错误体。本波 additive 统一信封,不改状态码。

二、 测试目标 (Test Objectives)

  • H1:code/message/request_id/error 双写;SQL/路径/token/XSS 不出现在响应。
  • H2:前端优先 code;未知 code 不靠 substring。
  • H3:去掉「无权访问该项目」文本匹配;不改状态码故无 ADR。

三、 测试方案与环境 (Test Plan & Environment)

项 值
分支 feature/http-error-envelope
Go go test -short ./internal/httpx ./internal/stream ./internal/server
前端 npx tsx --test src/api/projectSettingsError.test.ts

四、 预期结果 (Expected Results)

信封 golden 负例 PASS;server 短测 PASS;前端解析 code 优先于 error。

五、 实际测试结果与判定 (Actual Results & Evaluation)

5.1 httpx + SSE

  • 测试输入 (Input):TestWriteSanitizesInternalAndKeepsLegacyCode;TestClassifyError_DoesNotLeakSQL
  • 实际输出 (Actual Output):ok httpx;ok stream
  • 评价判定 (Evaluation / Verdict):PASS
  • 性能与耗时 (Duration & Latency):<10ms

5.2 server 回归

  • 测试输入 (Input):go test -short ./internal/server
  • 实际输出 (Actual Output):ok 10.069s
  • 评价判定 (Evaluation / Verdict):PASS
  • 性能与耗时 (Duration & Latency):10s

5.3 前端

  • 测试输入 (Input):projectSettingsError.test.ts
  • 实际输出 (Actual Output):5 tests pass
  • 评价判定 (Evaluation / Verdict):PASS
  • 性能与耗时 (Duration & Latency):113ms

六、 自动化测试套件汇总 (Test Suite Execution)

上述均 PASS。未改 HTTP 状态码,无 ADR。

七、 测试结论与后续优化建议 (Conclusion & Next Steps)

H1–H3 完成。error 字段仍作稳定 code 别名以兼容旧客户端。下一步 PI typed-result。