Files
SuperBizAgent-java/devflow/projects/2026-07-21-single-react-chat-sse-cutover/brief.md
T

33 lines
1.6 KiB
Markdown

# Brief: single-react-chat-sse-cutover
## Background
阶段 6A 已建立 protocol-neutral `ChatApplicationUseCase`,但公开 Chat 仍有同步 `/api/chat` 和伪流式 `/api/chat_stream` 两条旧链路,Controller 直接拥有模型、Tools、Session 历史和无界线程池,前端也保留两套消费者。
## Goal
将公开 Chat 原子切换为唯一 `POST /api/chat` named-event SSE,并让 Controller 只承担校验、HTTP/SSE 和连接生命周期;所有公开内容必须来自阶段 6A 的安全释放结果。
## Scope
- 唯一 `/api/chat` SSE 与 `metadata -> status* -> content|failure -> done` 状态机。
- exact Run disconnect/timeout/send-failure cancellation。
- Spring-managed bounded Chat/model executors 和完整 Harness production Bean graph。
- 前端唯一 named-event consumer、typed renderer 和 metadata identity 保存。
- AiOps 模型/Tool acquisition 下沉到 service,并将 AiOps/Session endpoint 从 Chat Controller 职责中隔离。
- L4 前后端迁移、成对回滚和 focused regression。
## Non-goals
- 不做 Token streaming、最终答案切片、断线续传、事件重放、轮询或 WebSocket。
- 不修改 `/api/ai_ops` 的公开 URL、请求和 SSE message-wrapper 行为。
- 不在本阶段物理删除旧多 Agent、ChatService、Hook 或 ThreadLocal;阶段 7 统一清理。
- 不运行 live 模型、Redis、日志或 MySQL E2E;阶段 7 统一验收。
## Metadata
- Scale: complex
- Interface impact: L4 breaking HTTP/frontend contract
- OpenSpec: `single-react-chat-sse-cutover`
- Parent issue: `ISS-014`