docs(awooop): record t34 incident deep link rollout
This commit is contained in:
@@ -1,3 +1,47 @@
|
||||
## 2026-05-17 | T34 Telegram 深連結到 AwoooP Incident Evidence View
|
||||
|
||||
**背景**:T32/T33 已讓 Telegram 主卡顯示 AI 補救 evidence,AwoooP Run List 也能依 `remediation_status` 篩選。但 operator 從 Telegram 收到告警時,仍需要自己切到前端、輸入或猜測關聯 Incident,才能看到同一組 dry-run / MCP route / write flags 證據。這仍會造成「告警到底跑到哪個流程、要不要人工」的斷點。
|
||||
|
||||
**修正**:
|
||||
- Telegram inline keyboard 新增 `🧭 AwoooP` URL button,導到公開前端:
|
||||
- `/zh-TW/awooop/runs?project_id=awoooi&incident_id=<INC...>`。
|
||||
- 保留既有 `批准 / 拒絕 / 詳情 / 歷史 / 重診` callback button,不把 URL button 混進 callback handler。
|
||||
- `GET /api/v1/platform/runs/list` 新增 `incident_id` query filter:
|
||||
- 只接受 `INC-YYYYMMDD-XXXX` 格式,錯誤回 422。
|
||||
- filter 依 durable `remediation_summary.incident_ids` 比對,可和 project filter 並用。
|
||||
- `/awooop/runs` 新增 Incident ID filter input:
|
||||
- 會從 URL query 自動帶入 `project_id` / `incident_id`。
|
||||
- 前端請求會送出 `incident_id=...`,讓 Telegram deep link 直接落到關聯 evidence rows。
|
||||
- 技術債清理:Telegram LLM button 測試不再假設所有 inline buttons 都有 `callback_data`;URL button 和 callback button 的契約分清楚,避免之後詳情/歷史/AwoooP 導流互相踩到。
|
||||
|
||||
**本地驗證**:
|
||||
- `python -m py_compile apps/api/src/services/telegram_gateway.py apps/api/src/services/platform_operator_service.py apps/api/src/api/v1/platform/operator_runs.py apps/api/tests/test_telegram_gateway_llm_buttons.py apps/api/tests/test_telegram_message_templates.py apps/api/tests/test_awooop_operator_timeline_labels.py`:pass。
|
||||
- `ruff check --select F,E9 src/services/telegram_gateway.py src/services/platform_operator_service.py src/api/v1/platform/operator_runs.py tests/test_telegram_gateway_llm_buttons.py tests/test_telegram_message_templates.py tests/test_awooop_operator_timeline_labels.py`:pass。
|
||||
- `DATABASE_URL=postgresql+asyncpg://ci:ci@localhost/ci pytest tests/test_telegram_gateway_llm_buttons.py tests/test_telegram_message_templates.py tests/test_telegram_adr050.py tests/test_awooop_operator_timeline_labels.py -q`:96 passed。
|
||||
- CD 等價 API test 範圍:`2048 passed, 23 skipped`。
|
||||
- i18n JSON parse:pass。
|
||||
- `pnpm --filter @awoooi/web typecheck`:pass。
|
||||
- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --filter @awoooi/web build`:pass;仍只有既有 Sentry / webpack cache warnings。
|
||||
|
||||
**推版與 production 驗證**:
|
||||
- `6868a9a9 feat(awooop): link telegram alerts to incident runs` 首次推 Gitea main;Code Review run `2219` success,CD run `2218` tests failure。
|
||||
- 失敗原因:`tests/test_telegram_gateway_llm_buttons.py::test_flag_false_uses_yaml_path` 把新增 URL button 誤當 callback button,對 `callback_data` 取值造成 `KeyError`。
|
||||
- `ef1e28b7 fix(telegram): keep url buttons out of callback assertions` 修正後推 Gitea main;Code Review run `2221` success,CD run `2220` tests / build-and-deploy / post-deploy-checks success。
|
||||
- 最新 deploy marker:`6e902927 chore(cd): deploy ef1e28b [skip ci]`。
|
||||
- `https://awoooi.wooo.work/api/v1/health`:200 healthy,PostgreSQL / Redis / Ollama / OpenClaw / SigNoz all up。
|
||||
- Production API `GET /api/v1/platform/runs/list?project_id=awoooi&incident_id=INC-20260514-F85F21&page=1&per_page=5`:`total=2`,兩列為 `44109526-8fea-508e-a0f9-af818514ab59` 與 `6d8feeaa-1035-570f-a03f-9287c1036746`,均為 `status=read_only_dry_run`、`latest_route=auto_repair_executor/ssh_diagnose/read`、write flags false。
|
||||
- Production API `incident_id=bad`:422,錯誤訊息為 `incident_id 格式錯誤,必須是 INC-YYYYMMDD-XXXX`。
|
||||
- Playwright production deep-link check:`/zh-TW/awooop/runs?project_id=awoooi&incident_id=INC-20260514-F85F21` 自動填入 Incident filter,前端實際呼叫 `incident_id=INC-20260514-F85F21`,畫面顯示 `共 2 筆`、`AI 已試跑:只讀` 與 `auto_repair_executor/ssh_diagnose/read`,screenshot `/tmp/awoooi-t34-runs-incident-deeplink.png`。
|
||||
- 本輪未主動送 Telegram 測試告警,避免洗版;URL button 由單元測試覆蓋,production 端以 API/UI deep-link 驗證。
|
||||
|
||||
**目前整體進度**:
|
||||
- Alertmanager 低風險自動修復主線:約 98%。
|
||||
- 完整 AI 自動化管理產品化:約 98%。
|
||||
- 告警詳情/歷史/主卡/前端 deep-link 可追溯:約 98%。
|
||||
- Telegram 首屏流程可判讀:約 95%。
|
||||
- 前端 AI 自動化管理介面同步:約 95%。
|
||||
- T34 讓 Telegram 告警能直接跳到 AwoooP Run evidence view。下一段應補「Incident ID 在列表列上可見 / Run detail direct link / Telegram 詳情與歷史也回同一個 AwoooP entrypoint」,並清掉 Run List 上仍可見的 legacy 文案與浮動 widget 遮擋風險。
|
||||
|
||||
## 2026-05-17 | T33 AwoooP 列表新增 AI 補救證據篩選
|
||||
|
||||
**背景**:T31 已讓 Run List / Approval List 顯示 `remediation_summary`,T32 也讓 Telegram 主卡顯示 dry-run evidence。但前端仍只能「看見」AI 證據狀態,不能直接用「只讀試跑 / 有寫入旗標 / 受阻 / 缺證據」篩選。這會讓 AwoooP 比較像觀察頁,而不是 AI 自動化管理介面。
|
||||
|
||||
Reference in New Issue
Block a user