docs(awooop): record t53 callback reply evidence [skip ci]
This commit is contained in:
@@ -9990,3 +9990,78 @@ navs include:
|
||||
- 低風險自動修復閉環:約 95%。
|
||||
- 前端 AI 自動化管理介面同步:約 88%。
|
||||
- 完整 AI 自動化管理產品化:約 82%。
|
||||
|
||||
### 2026-05-18 — T53 Telegram callback reply evidence 入 AwoooP truth-chain
|
||||
|
||||
**觸發**:
|
||||
|
||||
- Telegram「詳情 / 歷史」按鈕即使能成功回覆,AwoooP/前端仍無法直接看出 callback reply 本身是成功、fallback 成功、救援成功,或完全失敗。
|
||||
- T51 已修 HTML/fallback 脆弱點;T53 補齊資料契約,避免 operator 只能從 Telegram 畫面猜流程跑到哪個階段。
|
||||
|
||||
**修正**:
|
||||
|
||||
- `_send_request()` 新增私有 `_awooop_source_envelope_extra` stripping,確保 AwoooP metadata 不會送到 Telegram Bot API。
|
||||
- legacy outbound mirror 會把 callback metadata 合併到 `awooop_outbound_message.source_envelope.callback_reply`。
|
||||
- `_send_incident_detail()` / `_send_incident_history()` 傳入 `incident_id` 與 callback action。
|
||||
- `_send_html_line_message()` 會標記:
|
||||
- `callback_reply_sent`
|
||||
- `callback_reply_fallback_sent`
|
||||
- `callback_reply_rescue_sent`
|
||||
- `callback_reply_failed`
|
||||
- 若 HTML、plain fallback、rescue 都失敗,會寫入 `awooop_outbound_message`:
|
||||
- `message_type=error`
|
||||
- `send_status=failed`
|
||||
- `triggered_by_state=telegram_callback_reply`
|
||||
|
||||
**local verification**:
|
||||
|
||||
```text
|
||||
python3 -m py_compile src/services/telegram_gateway.py tests/test_telegram_message_templates.py OK
|
||||
ruff check --select F,E9 src/services/telegram_gateway.py tests/test_telegram_message_templates.py OK
|
||||
DATABASE_URL='sqlite+aiosqlite:///:memory:' pytest tests/test_telegram_message_templates.py -q
|
||||
-> 42 passed
|
||||
DATABASE_URL='sqlite+aiosqlite:///:memory:' pytest tests/test_telegram_adr050.py tests/test_telegram_gateway_error_sanitizer.py tests/test_telegram_button_consistency.py -q
|
||||
-> 51 passed
|
||||
git diff --check OK
|
||||
```
|
||||
|
||||
**production deploy / smoke(完成)**:
|
||||
|
||||
```text
|
||||
Code commit:
|
||||
c9723025 feat(telegram): record callback reply evidence
|
||||
|
||||
Gitea Actions:
|
||||
2294 Code Review -> success
|
||||
2293 CD -> success
|
||||
tests -> success
|
||||
build-and-deploy -> success
|
||||
post-deploy-checks -> success
|
||||
|
||||
K8s image:
|
||||
awoooi-api 192.168.0.110:5000/awoooi/api:c97230252aa68aed8c5c07236018d833d100546c
|
||||
awoooi-web 192.168.0.110:5000/awoooi/web:c97230252aa68aed8c5c07236018d833d100546c
|
||||
awoooi-worker 192.168.0.110:5000/awoooi/api:c97230252aa68aed8c5c07236018d833d100546c
|
||||
|
||||
health:
|
||||
GET https://awoooi.wooo.work/api/v1/health -> healthy, prod, mock_mode=false
|
||||
components api/postgresql/redis/ollama/openclaw/signoz -> up
|
||||
|
||||
post-deploy log smoke:
|
||||
No telegram_callback_reply / telegram_outbound_mirror_failed /
|
||||
telegram_request_failed / telegram_html_line_message / Traceback /
|
||||
ERROR / CRITICAL matches in recent API logs.
|
||||
```
|
||||
|
||||
**判讀**:
|
||||
|
||||
- 這階段讓「詳情 / 歷史」callback reply 成為 AwoooP 可查證 evidence,而不是 Telegram-only side effect。
|
||||
- 這不是歷史資料 backfill;從 `c9723025` 部署後的新 callback reply 開始才會寫入狀態。
|
||||
- 下一階段可把 `source_envelope.callback_reply.status` 做成前端 Run Detail / outbound timeline 的清楚標籤。
|
||||
|
||||
**目前整體進度**:
|
||||
|
||||
- AwoooP 告警可觀測鏈:約 91%。
|
||||
- 低風險自動修復閉環:約 95%。
|
||||
- 前端 AI 自動化管理介面同步:約 88%。
|
||||
- 完整 AI 自動化管理產品化:約 83%。
|
||||
|
||||
Reference in New Issue
Block a user