docs(logbook): record callback capture list summary [skip ci]

This commit is contained in:
Your Name
2026-05-25 11:28:39 +08:00
parent f169085cd3
commit 46292459b7

View File

@@ -1,3 +1,103 @@
## 2026-05-25T171 Runs list 顯示 Callback Snapshot Capture 摘要
**背景**
- T170 已讓 TG Callback Evidence card 顯示每筆 callback 的 `evidence_capture_status`
- Runs 列表的 TG Callback 欄仍只顯示送達 / fallback / 失敗Operator 必須往下看 callback card 才知道 snapshot 是否真的持久化。
- 本階段只補 Run-level read model 與前端摘要,不改 Telegram callback、不寫 incident / KM / auto-repair 狀態。
**完成變更**
- `_run_callback_reply_summary()` 新增 capture 彙總欄位:
- `capture_status`:整個 Run 的 callback snapshot 狀態。
- `capture_captured` / `capture_partial` / `capture_not_captured`:分別統計已捕捉、部分捕捉、未捕捉 callback。
- `latest_capture_status` / `latest_capture_missing` / `latest_capture_next_action`:保留最新 callback 的缺口與下一步。
- Runs table 的 TG Callback cell 新增 Snapshot 摘要列:
- `Snapshot已捕捉 / 部分捕捉 / 未捕捉`
- 顯示已捕捉 / 部分 / 未捕捉數量。
- hover title 顯示最新 callback 尚缺的 snapshot 類型。
- zh-TW / en i18n 已補齊;未新增 Telegram 訊息或通知頻率。
**本地驗證**
```text
python3 -m py_compile apps/api/src/services/platform_operator_service.py apps/api/src/api/v1/platform/operator_runs.py apps/api/tests/test_awooop_operator_timeline_labels.py
DATABASE_URL='postgresql+asyncpg://test:test@localhost:5432/test?ssl=disable' /Users/ogt/.pyenv/versions/3.11.7/bin/pytest apps/api/tests/test_awooop_operator_timeline_labels.py -q
-> 47 passed
/Users/ogt/.pyenv/versions/3.11.7/bin/ruff check --select F,E9 apps/api/src/services/platform_operator_service.py apps/api/src/api/v1/platform/operator_runs.py apps/api/tests/test_awooop_operator_timeline_labels.py
python3 -m json.tool apps/web/messages/zh-TW.json >/dev/null
python3 -m json.tool apps/web/messages/en.json >/dev/null
pnpm --filter @awoooi/web exec tsc --noEmit --incremental false
git diff --check
pnpm --filter @awoooi/web exec eslint 'src/app/[locale]/awooop/runs/page.tsx'
-> 0 errors, 26 pre-existing i18n warnings in this file
Local Playwright smoke with mocked API:
-> Snapshot未捕捉 visible
-> 已捕捉 0 / 部分 0 / 未捕捉 2 visible
-> page errors=0
```
**production deploy / smoke**
```text
Code commit:
e1e640f5 feat(awooop): summarize callback capture in runs list
Deploy markers:
4edcb5b5 chore(cd): deploy e1e640f [skip ci]
f169085c chore(cd): deploy e1e640f [skip ci]
Gitea Actions:
3060 / run_number 2099 CD -> success
job 4063 tests -> success
job 4064 build-and-deploy -> success
job 4065 post-deploy-checks -> success
3061 / run_number 2100 Code Review -> success
Production API regression:
GET https://awoooi.wooo.work/api/v1/platform/runs/list?project_id=awoooi&callback_reply_status=sent&per_page=5
-> total=2
-> callback_reply_summary.capture_status=not_captured
-> capture_captured=0, capture_partial=0, capture_not_captured=1
-> latest_capture_missing=[awooop_status_chain, km_stale_completion_summary]
Production web smoke:
HEAD https://awoooi.wooo.work/zh-TW/awooop/runs?project_id=awoooi&callback_reply_status=sent
-> HTTP 200
Production Playwright:
-> Snapshot未捕捉 visible
-> 未捕捉 count visible
-> page errors=0
```
**production health note**
- `GET /api/v1/health` 在 T171 smoke 時回 `status=degraded`,但 API / PostgreSQL / Redis / OpenClaw / SigNoz 為 up。
- Degraded 原因是 Ollama lane
- `ollama`: down`all Ollama endpoints unavailable`
- `ollama_gcp_a`: down connection refused。
- `ollama_local`: down / reset。
- `ai-route-status` 目前 selected_provider=Gemini原因為 GCP-A/GCP-B/111 都不可用。
- Pod 內直測:
- `34.143.170.20:11434` 連不上。
- `34.21.145.224:11434` 連不上。
- `192.168.0.111:11434` connection reset。
- 目前 SSH / GCP 控制面權限不足以直接修 GCP-B 或 111下一段需專門做 Ollama lane runtime 修復與路由 label 校正。
**目前整體進度**
- AwoooP 告警可觀測鏈:約 99.2%。
- 低風險自動修復閉環:約 95.5%。
- 前端 AI 自動化管理介面同步:約 96.4%。
- Telegram detail/history 可解釋性:約 95.5%。
- Callback evidence / DB 回放性:約 95.6%。
- MCP / 自建 MCP 使用可視性:約 88%。
- Sentry / SigNoz source correlation 可視性:約 88%。
- Ansible / PlayBook 決策可視性:約 84%。
- KM owner-review / completion 可治理鏈:約 84%。
- AI Provider lane 健康度:約 65%GCP-A/GCP-B/111 目前不可用Gemini final fallback 生效)。
- 完整 AI 自動化管理產品化:約 93.1%。
## 2026-05-25T170 Callback Evidence Capture 狀態顯示
**背景**