修改摘要

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 600sMODEL_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 用戶通知