docs(awooop): record t54 callback timeline evidence [skip ci]
This commit is contained in:
@@ -10065,3 +10065,81 @@ ERROR / CRITICAL matches in recent API logs.
|
||||
- 低風險自動修復閉環:約 95%。
|
||||
- 前端 AI 自動化管理介面同步:約 88%。
|
||||
- 完整 AI 自動化管理產品化:約 83%。
|
||||
|
||||
### 2026-05-18 — T54 Run Detail 顯示 Telegram callback reply 狀態
|
||||
|
||||
**觸發**:
|
||||
|
||||
- T53 已把 Telegram「詳情 / 歷史」callback reply 寫入 `awooop_outbound_message.source_envelope.callback_reply`。
|
||||
- Operator Console 仍需要把這些狀態轉成 timeline 上可直接讀的標籤,否則 operator 還是得看 raw JSON 或 Telegram 畫面猜 delivery 階段。
|
||||
|
||||
**修正**:
|
||||
|
||||
- `platform_operator_service` 在 Run Detail timeline 轉換 outbound row 時:
|
||||
- 偵測 `source_envelope.callback_reply`
|
||||
- title 顯示「詳情 / 歷史 回覆已送出 / fallback 已送出 / 救援已送出 / 送出失敗」
|
||||
- timeline status 改用 `callback_reply_sent` / `callback_reply_fallback_sent` / `callback_reply_rescue_sent` / `callback_reply_failed`
|
||||
- summary 顯示 callback action、incident、status、parse_mode、error
|
||||
- metadata 優先放 callback_status/action/incident/parse_mode
|
||||
- 前端 Run Detail 新增 callback reply status badge 樣式與 i18n。
|
||||
|
||||
**local verification**:
|
||||
|
||||
```text
|
||||
python3 -m py_compile src/services/platform_operator_service.py tests/test_awooop_operator_timeline_labels.py OK
|
||||
ruff check --select F,E9 src/services/platform_operator_service.py tests/test_awooop_operator_timeline_labels.py OK
|
||||
DATABASE_URL='sqlite+aiosqlite:///:memory:' pytest tests/test_awooop_operator_timeline_labels.py -q
|
||||
-> 18 passed
|
||||
pnpm --filter @awoooi/web typecheck OK
|
||||
pnpm --dir apps/web exec next lint --file src/app/[locale]/awooop/runs/[run_id]/page.tsx OK
|
||||
jq empty apps/web/messages/zh-TW.json apps/web/messages/en.json OK
|
||||
NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --filter @awoooi/web build OK
|
||||
git diff --check OK
|
||||
```
|
||||
|
||||
**production deploy / smoke(完成)**:
|
||||
|
||||
```text
|
||||
Code commit:
|
||||
1a16e083 feat(awooop): show callback reply states in timeline
|
||||
|
||||
Deploy marker:
|
||||
f35527c7 chore(cd): deploy 1a16e08 [skip ci]
|
||||
|
||||
Gitea Actions:
|
||||
2299 Code Review -> success
|
||||
2298 CD -> success
|
||||
tests -> success
|
||||
build-and-deploy -> success
|
||||
post-deploy-checks -> success
|
||||
|
||||
K8s image:
|
||||
awoooi-api 192.168.0.110:5000/awoooi/api:1a16e083e7fe4b8434d9a05f11e575040bda14f9
|
||||
awoooi-web 192.168.0.110:5000/awoooi/web:1a16e083e7fe4b8434d9a05f11e575040bda14f9
|
||||
awoooi-worker 192.168.0.110:5000/awoooi/api:1a16e083e7fe4b8434d9a05f11e575040bda14f9
|
||||
|
||||
health:
|
||||
GET https://awoooi.wooo.work/api/v1/health -> healthy, prod, mock_mode=false
|
||||
components api/postgresql/redis/ollama/openclaw/signoz -> up
|
||||
|
||||
Run Detail API smoke:
|
||||
GET /api/v1/platform/runs/5c0306e0-591a-5445-9a33-80f499426b38/detail?project_id=awoooi
|
||||
-> timeline_count=3, outbound_count=1, HTTP 200
|
||||
|
||||
Browser smoke:
|
||||
/zh-TW/awooop/runs/5c0306e0-591a-5445-9a33-80f499426b38?project_id=awoooi
|
||||
-> hasTitle=true, hasTimeline=true, hasNav=true, hasError=false
|
||||
```
|
||||
|
||||
**判讀**:
|
||||
|
||||
- 從 `1a16e083` 起,若 T53 寫入 callback reply evidence,Run Detail timeline 會直接呈現 delivery 階段。
|
||||
- production smoke 使用的現有 run 沒有 callback_reply 歷史資料;callback badge 的實際顯示由 local unit test 覆蓋,live 新 callback 後會自然浮現。
|
||||
- 下一階段可以做 callback reply 的列表聚合或事件搜尋,讓 Run List 也能看見「詳情 / 歷史是否送達」。
|
||||
|
||||
**目前整體進度**:
|
||||
|
||||
- AwoooP 告警可觀測鏈:約 92%。
|
||||
- 低風險自動修復閉環:約 95%。
|
||||
- 前端 AI 自動化管理介面同步:約 89%。
|
||||
- 完整 AI 自動化管理產品化:約 84%。
|
||||
|
||||
Reference in New Issue
Block a user