# Brief: single-react-harness-run-context ## 背景 旧 Chat/AIOps 通过多个 ThreadLocal 和业务方法内状态机传播 session/run/token/retry,无法成为后续 Tool、Agent、Guard 和新入口的稳定共同边界。Spring AI 默认 10 attempts 还会制造未被 Harness 记录的隐藏重试。 ## 目标 - 建立显式、结构不可变、可异步传播的 RunContext。 - 集中实现 deadline、协作式取消、线程安全预算和唯一 Run 终态。 - 实现类型化、最多两次 attempt、逐 attempt 记录的 Harness retry。 - 提供阶段 3A 可直接使用的 Tool Call Key Factory 和单 Run 容量计数器。 - 将 Spring AI 底层 retry 压为一次。 ## 范围 - 新增 Harness Core/Retry/Tool Store foundation 类型和 focused Fake tests。 - 更新 `application.yml` 的 Spring AI retry 配置。 - 更新 glossary 和 OpenSpec/devflow 档案。 ## 非目标 - 不接入旧 ChatService/AiOpsService/Controller/SSE。 - 不读写现有 ThreadLocal,不删除旧实现。 - 不写 `diagnosis_run` 或 Redis,不实现 Tool projection。 ## 元数据 - 分档:complex - 接口影响:L2;另有关闭旧 SDK 隐式 retry 的有意内部行为变化 - 关联 Issue:ISS-014 阶段 2 - 关联 OpenSpec:`openspec/changes/single-react-harness-run-context`