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

1.6 KiB

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