Agent: programmer (
programmer)
Confidence: 46%
Cost: $0.8299
Duration: 2m 24s
Task ID:e64ccfaf-b281-424a-9384-b8bec1ea9060
修改摘要
SPEC-24 — User-Facing Claude Code Timeout 已完成。
改動清單
| 檔案 | 改動 |
|---|---|
src/telegram/model-router.ts |
+7 行 — 新增 MODEL_TIMEOUTS export(Haiku: 60s, Sonnet: 180s, Opus: 600s) |
src/telegram/message-handler.ts |
+10 行 — import MODEL_TIMEOUTS,Haiku/Sonnet/Opus 兩條路徑都加了 timeout 參數,Sonnet/Opus 路徑加了 timeout 偵測 + 用戶通知 + progress message 清理 |
驗收對照
- Haiku 60s, Sonnet 180s, Opus 600s —
MODEL_TIMEOUTS映射正確 - Timeout 時用戶收到通知 —
'⏱ 處理超時,請稍後重試或簡化問題。' - Progress message 被清理 —
deleteMessage在 timeout 檢查之前執行 - 非 timeout 回應不受影響 — timeout 檢查用
result.error.includes('timed out')精確匹配 -
tsgo --noEmit通過 - Commit:
a597825
設計決策
askClaudeCode已有timeout參數支援(AskOptions.timeout),timeout 錯誤訊息固定包含"timed out"字串,因此用includes('timed out')偵測是可靠的。- Haiku 路徑也加了 timeout(雖然 Haiku 不顯示 progress message,timeout 後會走現有的
!isOk(result)錯誤路徑)。
—HANDOFF—
TO: reviewer
INTENT: handoff
ARTIFACT_TYPE: code-change
SUMMARY: SPEC-24 — 在 model-router.ts 加 MODEL_TIMEOUTS,message-handler.ts 的 askClaudeCode 加 per-tier timeout + timeout 用戶通知