fix(telegram): keep info callbacks nonfatal
This commit is contained in:
@@ -1,3 +1,36 @@
|
||||
## 2026-05-18 | T45 Telegram 詳情/歷史 callback 400 非致命化
|
||||
|
||||
**背景**:Telegram 截圖顯示「詳情 / 歷史」按鈕仍可能回到 `HTTP error: 400` 或看起來像流程中斷。實查 callback 路徑後,read-only actions (`detail` / `history` / `reanalyze` / `drift_view_page`) 會先呼叫 `answerCallbackQuery`,再送 DB-backed 詳情/歷史訊息。若 Telegram 對 callback toast 回 400(常見於 callback 過期、舊訊息重點、client 狀態異常),原流程會被例外中斷,導致後面的 truth-chain reply 沒有送出。
|
||||
|
||||
**修正**:
|
||||
- `TelegramGateway.handle_callback()`:
|
||||
- read-only info actions 改用 `_answer_callback_nonfatal()`。
|
||||
- `UserNotWhitelistedError` / `NonceReplayError` / generic exception 的 callback toast 也改為 non-fatal,避免錯誤處理本身再因 Telegram 400 放大。
|
||||
- 新增 `_answer_callback_nonfatal()`:
|
||||
- `answerCallbackQuery` 失敗只記錄 `telegram_answer_callback_nonfatal_failed`。
|
||||
- 不阻斷真正重要的 DB truth-chain reply / history / detail message。
|
||||
- `apps/api/tests/test_telegram_message_templates.py` 新增測試:
|
||||
- 模擬 `answerCallbackQuery` 回 `HTTP error: 400`。
|
||||
- 驗證 `history:INC-...` 仍會送出 `_send_incident_history()`,並回 `success=True`。
|
||||
|
||||
**local verification**:
|
||||
- `DATABASE_URL='sqlite+aiosqlite:///:memory:' /Users/ogt/awoooi/apps/api/.venv/bin/python -m pytest apps/api/tests/test_telegram_message_templates.py -q`:37 passed。
|
||||
- `/Users/ogt/awoooi/apps/api/.venv/bin/ruff check --select E9,F821,F401 apps/api/src/services/telegram_gateway.py apps/api/tests/test_telegram_message_templates.py`:pass。
|
||||
- 全檔 ruff 仍會命中 `telegram_gateway.py` 既有 import/order 與歷史 style debt,本輪未順手大改以避免擴大風險。
|
||||
- `git diff --check`:pass。
|
||||
|
||||
**目前整體進度**:
|
||||
- Alertmanager 低風險自動修復主線:約 98%。
|
||||
- 完整 AI 自動化管理產品化:約 99%。
|
||||
- 告警詳情/歷史/主卡/前端 deep-link 可追溯:約 99%。
|
||||
- Telegram approval / reject callback:約 97%。
|
||||
- Truth-chain 對「自動修復成功但驗證降級」的判讀:約 99%。
|
||||
- AwoooP MCP 使用可見性:約 90%。
|
||||
- 188 OpenClaw runtime hygiene:約 90%。
|
||||
- Token hygiene:約 65%。
|
||||
- CI/CD secret masking hygiene:約 60%。
|
||||
- Gitea infra-lint 可執行性:100%。
|
||||
|
||||
## 2026-05-18 | T44 Gitea workflow secret env 泄漏面收斂
|
||||
|
||||
**背景**:T43 production verification 時,Gitea job log 顯示 step-level env 有 secret 展開風險。這會讓部署 SSH key、DB URL、Telegram token、AI provider key 等敏感值在 CI log 中留下痕跡,會直接破壞 token hygiene,也會污染後續 AwoooP / SignOz / log matching 的可信度。
|
||||
|
||||
Reference in New Issue
Block a user