# ADR-045: Telegram Gateway 統一到 K8s AWOOOI API

## 狀態
**已實施** (2026-03-31)

## 背景

系統存在 Telegram 雙軌問題：
- **OpenClaw (188)**: Long Polling 模式，處理 Incident 告警
- **K8s AWOOOI API**: 也有 Telegram 端點，但未啟用

雙軌導致：
1. Token 競爭風險
2. 回調路由不明確
3. 維運複雜度高

## 決策

**方案 A: 統一到 K8s AWOOOI API (Webhook 模式)**

### 架構

```
Telegram API
    │
    ▼ (Webhook)
awoooi.wooo.work/api/v1/telegram/webhook
    │
    ▼
K8s AWOOOI API Pod
    │
    ├─→ Incident 處理
    ├─→ Approval 回調
    └─→ AI 對話 (未來)
```

### 優點
- 業界標準 (Webhook > Polling)
- 單一入口，易於監控
- 自動擴展 (K8s)
- 統一日誌 (SignOz)

## 實施步驟

### 1. 設定 Webhook ✅
```bash
curl "https://api.telegram.org/bot${TOKEN}/setWebhook?url=https://awoooi.wooo.work/api/v1/telegram/webhook"
# {"ok":true,"result":true,"description":"Webhook was set"}
```

### 2. 停用 OpenClaw Telegram Polling ✅
```bash
# .env
TELEGRAM_ENABLED=false

# app/bot/telegram.py - 加入檢查
if os.getenv('TELEGRAM_ENABLED', 'true').lower() == 'false':
    logger.info("Telegram Bot disabled via TELEGRAM_ENABLED=false (ADR-045)")
    return
```

### 3. 重啟 OpenClaw
```bash
sudo systemctl restart clawbot
```

## 驗證清單

- [x] Webhook URL 已設定
- [x] K8s 端點 HTTP 200
- [x] OpenClaw 代碼已 Patch
- [ ] OpenClaw 已重啟
- [ ] 發送測試訊息確認

## 回滾計畫

如需回滾到 Polling 模式：
```bash
# 1. 刪除 Webhook
curl "https://api.telegram.org/bot${TOKEN}/deleteWebhook"

# 2. 恢復 OpenClaw
# .env: TELEGRAM_ENABLED=true
sudo systemctl restart clawbot
```

## 相關文件
- [ADR-035](ADR-035-telegram-alert-chain-enforcement.md) - Telegram 告警鏈路
- [feedback_telegram_token_disaster.md](../../.claude/projects/-Users-ogt-awoooi/memory/feedback_telegram_token_disaster.md) - Token 災難鐵律
