docs(awooop): record t56 callback filter rollout [skip ci]
This commit is contained in:
@@ -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%。
|
||||
|
||||
Reference in New Issue
Block a user