OG T
8b7e9cbfb8
CD Pipeline / build-and-deploy (push) Successful in 14m21s
fix(BLOCKER): LLM 連續失敗 — 4 個違反設計處全部修復
統帥盤點發現飛輪沉默真因:4 個違反既定架構設計的 bug 同時撞車。
P0a — Ollama timeout 違反 GAP-B4 設計
config.py:OPENCLAW_TIMEOUT 從 120s 改 30s
原 120s 違反 ADR-052 GAP-B4 (LLM 25s hard timeout) 設計
致 Ollama 過載時 thread 飢餓 120s 才降級
P0b — AI Router silent skip 觀測性修復
ai_router.py: not_registered/circuit_open/rate_limit/privacy_skip
全部累積到 errors 陣列,log all_providers_failed 時可知為何 skip
原本 errors=["ollama: Timeout"] 但 tried=4 個,無法診斷
P1a — send_text 方法不存在 bug
ai_router.py:1005 tg.send_text() → tg.send_notification(parse_mode=HTML)
TelegramGateway 只有 send_notification 沒 send_text
致 fallback 失敗通知本身失敗(雙重靜默)
P1b — resend_stale_ready_tokens 並發爆炸
decision_manager.py: 加 asyncio.Semaphore(5) + 200ms throttle
原本 fire_and_forget N 個 task 同時跑,N=108 時 Ollama embedding
全部 timeout,包括我打的 live-fire 也被擠爆
改:max 5 並發 + 每完成喘 200ms
CD 流程審查 (Blocker 1): 完全符合 ADR-039 設計,10-15 min 是預期
不需修,是設計就需要這時間。
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-14 19:37:03 +08:00
..
2026-03-25 16:08:49 +08:00
2026-04-09 15:05:16 +08:00
2026-03-25 09:26:58 +08:00
2026-03-28 18:51:52 +08:00
2026-03-26 16:06:20 +08:00
2026-04-03 13:22:36 +08:00
2026-04-03 13:22:36 +08:00
2026-04-14 19:37:03 +08:00
2026-04-12 22:50:20 +08:00
2026-04-14 14:39:14 +08:00
2026-04-14 18:43:29 +08:00
2026-04-07 13:13:42 +08:00
2026-04-14 19:21:11 +08:00
2026-04-14 19:03:38 +08:00
2026-03-31 16:25:00 +08:00
2026-04-11 22:05:52 +08:00
2026-04-09 12:26:18 +08:00
2026-04-10 22:35:37 +08:00
2026-03-29 16:00:46 +08:00
2026-03-26 15:32:52 +08:00
2026-03-29 15:57:04 +08:00
2026-03-23 23:51:37 +08:00
2026-04-14 19:37:03 +08:00
2026-03-26 21:55:50 +08:00
2026-04-05 00:39:29 +08:00
2026-04-04 12:35:05 +08:00
2026-04-05 12:11:05 +08:00
2026-04-11 20:45:53 +08:00
2026-04-12 20:20:47 +08:00
2026-04-05 00:22:38 +08:00
2026-03-22 18:57:44 +08:00
2026-04-11 20:45:53 +08:00
2026-03-29 16:00:46 +08:00
2026-04-09 19:10:27 +08:00
2026-03-31 12:23:02 +08:00
2026-04-12 18:45:40 +08:00
2026-04-12 22:45:09 +08:00
2026-03-31 16:06:35 +08:00
2026-04-01 11:11:50 +08:00
2026-03-24 12:57:36 +08:00
2026-03-31 16:06:35 +08:00
2026-04-12 22:52:05 +08:00
2026-04-09 23:36:36 +08:00
2026-04-07 11:17:40 +08:00
2026-04-11 20:45:53 +08:00
2026-03-26 19:25:52 +08:00
2026-03-31 22:47:54 +08:00
2026-03-31 22:47:54 +08:00
2026-04-14 18:25:15 +08:00
2026-03-29 22:17:27 +08:00
2026-03-31 11:23:38 +08:00
2026-03-26 21:55:50 +08:00
2026-04-12 17:52:57 +08:00
2026-04-03 14:40:27 +08:00
2026-04-10 10:43:53 +08:00
2026-04-11 20:45:53 +08:00
2026-04-02 09:02:41 +08:00
2026-03-31 18:55:06 +08:00
2026-04-11 20:45:53 +08:00
2026-04-11 20:45:53 +08:00
2026-03-26 10:01:57 +08:00
2026-04-09 10:52:40 +08:00
2026-03-26 12:49:30 +08:00
2026-04-09 14:55:04 +08:00
2026-03-31 16:06:35 +08:00
2026-04-14 13:33:24 +08:00
2026-04-06 11:46:05 +08:00
2026-04-10 11:35:10 +08:00
2026-04-04 12:02:03 +08:00
2026-04-10 21:52:38 +08:00
2026-04-14 15:19:54 +08:00
2026-04-08 16:36:18 +08:00
2026-04-09 18:34:50 +08:00
2026-03-26 16:03:16 +08:00
2026-04-14 18:46:25 +08:00
2026-03-29 16:00:46 +08:00
2026-04-04 12:35:05 +08:00
2026-04-05 13:40:52 +08:00
2026-03-29 15:27:49 +08:00
2026-04-01 16:20:57 +08:00
2026-04-08 21:47:38 +08:00
2026-03-26 13:06:47 +08:00
2026-03-26 15:32:52 +08:00
2026-03-29 15:27:49 +08:00
2026-04-14 19:03:38 +08:00
2026-03-30 01:52:59 +08:00
2026-03-24 09:20:56 +08:00
2026-03-26 16:06:20 +08:00
2026-03-26 22:13:10 +08:00
2026-04-08 16:36:18 +08:00
2026-04-07 13:02:20 +08:00