2.2 KiB
2.2 KiB
Acceptance: single-react-chat-sse-cutover
Result
- Status: archived
- OpenSpec tasks: 14/14 complete
- Interface impact: L4 breaking HTTP/frontend contract
- Public Chat protocol: unique named-event SSE
POST /api/chat
Static Verification
- 组合路由保持
/api/chat、/api/ai_ops、/api/chat/clear、/api/chat/session/{sessionId}和/runs;/api/chat_stream已删除。 - 生产 Controller/前端 legacy Chat token scan:0。
ChatControllerforbidden dependency scan:0;结构测试固定其三个 protocol/application dependencies。- SSE payload 只包含固定 metadata/status/content/failure/done fields,
CANCELLED不作为公开 done outcome。 - mode selector DOM、state、consumer 和 CSS 已删除。
Script Verification
mvn -q -DskipTests compile:通过。- Stage 2-6B + AiOps regression selection:24 suites / 101 tests,0 failure/error/skipped。
openspec validate single-react-chat-sse-cutover --strict:通过。node --check src/main/resources/static/app.js:通过。git diff --check:通过,仅有仓库既存 LF/CRLF 提示。
Browser or Manual Verification
- 本阶段未运行浏览器人工验证;前端协议由静态 contract test 和 JavaScript syntax check 覆盖。
Not Verified
- 未运行 live 模型、Redis、日志和 MySQL E2E;按 ISS-014 阶段门禁统一留到阶段 7。
- 未验证外部第三方 Chat API consumer;L4 变更不提供兼容分支,外部消费者必须同步迁移到 named-event SSE。
Migration and Rollback
- 部署必须将后端 SSE endpoint 与 bundled frontend consumer 作为同一版本原子发布。
- 回滚必须同时回滚 Controller 和 frontend 到阶段 6A commit;V012 additive nullable migration 可保留。
- 不允许通过恢复
/api/chat_stream、同步 JSON consumer 或旧 message wrapper 形成双轨兼容。
Remaining Work
- 阶段 7:物理删除旧 Agent/Graph/Hook/ThreadLocal/ChatService 路径和过时测试,更新文档并完成最终 live E2E、日志与数据库核验。
Archive
.archive-ready: created- OpenSpec archive:
openspec/changes/archive/2026-07-22-single-react-chat-sse-cutover - Main spec sync:
openspec/specs/single-react-chat-sse-cutover/spec.md(10 requirements added)