From e4e1244c0f068a384c3cf2b00c588a54e965792d Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 18 May 2026 16:04:11 +0800 Subject: [PATCH] docs(awooop): record t56 callback filter rollout [skip ci] --- docs/LOGBOOK.md | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 659a496c..f79db7e3 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -10243,3 +10243,102 @@ No callback_reply_summary / platform_operator / Traceback / ERROR / CRITICAL mat - 低風險自動修復閉環:約 95%。 - 前端 AI 自動化管理介面同步:約 90%。 - 完整 AI 自動化管理產品化:約 85%。 + +### 2026-05-18 — T56 Run List 支援 Telegram callback reply 狀態篩選 + +**觸發**: + +- T55 已讓 Run List 顯示 `callback_reply_summary`,但 operator 仍需要手動翻列表才能找到 `failed / fallback_sent / rescue_sent`。 +- 若 Telegram「詳情 / 歷史」callback 出現送達失敗,值班者需要能直接從前端與 API 篩出,不應只靠 Telegram 畫面或 raw DB 查詢。 + +**修正**: + +- `GET /api/v1/platform/runs/list` 新增 `callback_reply_status` query filter: + - `no_callback` + - `sent` + - `fallback_sent` + - `rescue_sent` + - `failed` + - `observed` +- 後端在需要 callback filter 時會先建立 run-level `callback_reply_summary`,再依狀態篩選;非法狀態回 422,避免 silent fallback。 +- 前端 Run List 新增 `TG Callback` 篩選器,並支援從 URL query `callback_reply_status` 初始化篩選狀態。 +- i18n 已補 `zh-TW` / `en` 篩選文案。 + +**local verification**: + +```text +python3 -m py_compile src/services/platform_operator_service.py src/api/v1/platform/operator_runs.py tests/test_awooop_operator_timeline_labels.py OK +DATABASE_URL='sqlite+aiosqlite:///:memory:' pytest tests/test_awooop_operator_timeline_labels.py -q + -> 24 passed +ruff check --select F,E9 src/services/platform_operator_service.py src/api/v1/platform/operator_runs.py tests/test_awooop_operator_timeline_labels.py OK +jq empty apps/web/messages/zh-TW.json apps/web/messages/en.json OK +git diff --check OK +pnpm --filter @awoooi/web typecheck OK +pnpm --dir apps/web exec next lint --file src/app/[locale]/awooop/runs/page.tsx OK + -> exit 0;此頁既有 literal-string warnings 仍存在 +NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --filter @awoooi/web build OK + -> 既有 Sentry global-error / instrumentation-client warnings +``` + +**production deploy / smoke(完成)**: + +```text +Code commit: +f3494e0b feat(awooop): filter runs by callback reply state + +Deploy marker: +aff2a57d chore(cd): deploy f3494e0 [skip ci] + +Gitea Actions: +2311 Code Review -> success +2310 CD -> success + tests -> success + build-and-deploy -> success + post-deploy-checks -> success + +K8s image: +awoooi-api 192.168.0.110:5000/awoooi/api:f3494e0bfbae325a126142786a19a0305a849bba +awoooi-web 192.168.0.110:5000/awoooi/web:f3494e0bfbae325a126142786a19a0305a849bba +awoooi-worker 192.168.0.110:5000/awoooi/api:f3494e0bfbae325a126142786a19a0305a849bba + +health: +GET https://awoooi.wooo.work/api/v1/health -> healthy, prod, mock_mode=false +components api/postgresql/redis/ollama/openclaw/signoz -> up + +Run List API smoke: +GET /api/v1/platform/runs/list?project_id=awoooi&callback_reply_status=no_callback&per_page=3 + -> total=5050, returned=3, first_status=no_callback +GET /api/v1/platform/runs/list?project_id=awoooi&callback_reply_status=failed&per_page=3 + -> total=0, returned=0 +GET /api/v1/platform/runs/list?project_id=awoooi&callback_reply_status=telegram_error&per_page=1 + -> 422, detail lists allowed callback_reply_status values + +Browser smoke: +/zh-TW/awooop/runs?project_id=awoooi&callback_reply_status=no_callback + -> TG Callback filter options visible + -> selected value=no_callback + -> hasRunMonitor=true, hasCallbackColumn=true, hasNoCallback=true, hasError=false + +/zh-TW/awooop/runs?project_id=awoooi&callback_reply_status=failed + -> selected value=failed + -> page summary shows total 0 + -> table shows 尚無 Run 資料 + -> hasError=false + +post-deploy log smoke: +No callback_reply_status / callback_reply_summary / platform_operator / +Traceback / ERROR / CRITICAL matches in recent API logs. +``` + +**判讀**: + +- Operator 現在可以直接查「送達失敗」callback,而不必等 Telegram 群組人工比對。 +- production 目前 `failed=0` 是好事;此功能的價值在於下一次 callback delivery 出現 fallback 或 failure 時,前端與 API 會立刻可定位。 +- T56 仍不等於 callback live-fire;下一段可補一個安全的 callback canary 或 callback event 搜尋頁,確認真實按鈕事件從 Telegram → DB → Run List / Run Detail 全鏈路可回看。 + +**目前整體進度**: + +- AwoooP 告警可觀測鏈:約 94%。 +- 低風險自動修復閉環:約 95%。 +- 前端 AI 自動化管理介面同步:約 91%。 +- 完整 AI 自動化管理產品化:約 86%。