feat(dispatcher): 熔断降级真三态状态机(弃用空桩)+ 单测
CircuitBreaker 此前是空桩(Allow 恒 true、Report 空操作),dispatcher 调 LLM/工具 无任何失败保护——今天就撞上 DeepSeek 流连接累积把报告卡死。改为真实三态熔断: - Closed:正常放行;连续失败达阈值(默认5) → Open。 - Open:快速拒绝;冷却(默认10s)到点 → HalfOpen 放行少量探测(默认1)。 - HalfOpen:探测成功 → Closed 恢复;探测失败 → 重新 Open。 - sync.Mutex 并发安全(多任务 goroutine 共享);时钟可注入便于确定性测试。 orchestrator.Handle:熔断开启时不再静默丢弃任务,改为回流"服务繁忙"提示 + CompleteStream 收尾,让客户端解阻不挂死。 测试(含 -race):达阈值断开、成功清零、半开恢复、探测失败重断、并发安全 —— 全过。 PROGRESS.md 勾掉熔断项。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -52,7 +52,7 @@
|
||||
- [x] 记忆召回(画像 + 历史注入)
|
||||
- [x] 报告专用编排(规划 → 分章并行 → 汇聚 → 存源)
|
||||
- [x] 会话历史写回
|
||||
- [ ] Harness 熔断降级中心(`CircuitBreaker.Allow()` 恒 true,桩)
|
||||
- [x] Harness 熔断降级中心(真三态状态机 Closed/Open/HalfOpen + 单测含 -race;熔断时回流提示并收尾流,不静默丢弃)
|
||||
- [ ] Harness LLM 自动化评测(桩)
|
||||
- [ ] 长期偏好记忆抽取(LLM 抽取 → 去重 → memory_upsert,TODO)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
- [ ] **真实登录 / 鉴权 / 会话**(替掉裸 `X-User-ID`,最影响"能否交付他人用")
|
||||
- [ ] **代码解释器 + 安全沙箱**(mcp-py 核心能力,目前全桩)
|
||||
- [ ] **Harness 三件**:输入/输出护栏 · 熔断降级状态机 · LLM 自动化评测
|
||||
- [ ] **Harness 余下两件**:输入/输出护栏 · LLM 自动化评测(熔断降级已完成 ✅)
|
||||
- [ ] **长期记忆抽取** + external_api 工具
|
||||
- [ ] **计费 / 商业化**真实实现
|
||||
- [ ] 微服务化拆分(Morph B)—— 现为 Monolith First,**按设计如此,非缺陷**
|
||||
|
||||
Reference in New Issue
Block a user