docs(logbook): record callback reply observed rollout [skip ci]
This commit is contained in:
@@ -1,3 +1,38 @@
|
||||
## 2026-06-04|AwoooP Callback Reply Observed Filter Repair
|
||||
|
||||
**背景**:Phase 2 告警資料鏈路盤點時,production callback replies API 出現可驗真紅燈:`/api/v1/platform/runs/callback-replies?project_id=awoooi&callback_reply_status=observed` 回 `total=0`,但同一 API summary 顯示 `callback_total=4`、`callback_sent_total=4`、`callback_failed_total=0`。這代表 `observed` 篩選器把已送達的 Telegram callback reply 排除掉,造成前端 / operator 查「已觀測」時看不到既有 history callback replies。
|
||||
|
||||
**本輪完成**:
|
||||
- `apps/api/src/services/platform_operator_service.py`:修正 `list_callback_replies()` 的 `callback_reply_status=observed` SQL 條件,讓 `observed` 代表「有 callback reply 證據」,不再排除 `callback_reply_sent` / fallback sent / rescue sent / failed。
|
||||
- `apps/api/src/services/platform_operator_service.py`:同步修正 `_callback_reply_summary_matches_status()`,讓 `observed` 對 sent / fallback sent / failed 皆成立,只有 `no_callback` 不成立。
|
||||
- `apps/api/tests/test_awooop_operator_timeline_labels.py`:補 status helper 測試與 source guard 測試,避免 `observed` filter 再把 delivered callback replies 隱藏。
|
||||
|
||||
**完成度更新**:
|
||||
- Phase 2 告警資料鏈路:`12% → 18%`。
|
||||
- Callback reply observed filter live issue:`100%`。
|
||||
- Source Link Canary live issue:維持 `100%`。
|
||||
- Phase 2 目標仍為 `90%`;Telegram DB 完整寫入、dedupe / recurrence、詳情 / 歷史 400、postmortem 重複通知與 Config Drift 重複告警仍待續。
|
||||
|
||||
**驗證**:
|
||||
- `python3 -m py_compile apps/api/src/services/platform_operator_service.py apps/api/tests/test_awooop_operator_timeline_labels.py`:通過。
|
||||
- `ruff check apps/api/src/services/platform_operator_service.py apps/api/tests/test_awooop_operator_timeline_labels.py`:通過。
|
||||
- `DATABASE_URL=<local test postgres URL> PYTHONPATH=apps/api pytest apps/api/tests/test_awooop_operator_timeline_labels.py -q`:`60 passed`。
|
||||
- `git diff --check`:通過。
|
||||
- Gitea code-review run `2552`:success。
|
||||
- Gitea CD run `2551`:tests / build-and-deploy / post-deploy-checks success。
|
||||
- Deploy marker:`658f46dd chore(cd): deploy ca0b3ae [skip ci]`。
|
||||
- Production health:`/api/v1/health` 回 `status=healthy`、`environment=prod`、`mock_mode=false`。
|
||||
- Production callback API:`/api/v1/platform/runs/callback-replies?project_id=awoooi&callback_reply_status=observed&per_page=5&refresh=true` 回 `total=4`,summary `callback_total=4`、`callback_sent_total=4`、`snapshot_status=partial`,第一筆 `callback_reply_status=sent`、`callback_reply_action=history`。
|
||||
- Production callback API baseline:`/api/v1/platform/runs/callback-replies?project_id=awoooi&per_page=1&refresh=true` 回 `total=4`,與 `observed` filter 對齊。
|
||||
- Production Browser desktop `/zh-TW/awooop/runs?project_id=awoooi&_v=658f46dd-callback-observed`:表格 50 列、`Run 監控` / `AwoooP` / `MCP` / `Ansible` / `KM` 可見,`horizontalOverflow=0`,無 in-page fetch failure;截圖 `/tmp/awoooi-runs-callback-observed-desktop-658f46dd.png`。
|
||||
- Production Browser mobile 390x844 `/zh-TW/awooop/runs?project_id=awoooi&_v=658f46dd-callback-observed-mobile`:表格 50 列、可上下滾動、`horizontalOverflow=0`,無 in-page fetch failure;截圖 `/tmp/awoooi-runs-callback-observed-mobile-658f46dd.png`。
|
||||
|
||||
**目前邊界**:
|
||||
- 本段只修 callback reply 查詢與 operator summary 判讀,不發 Telegram 訊息、不讀取 token、不改 webhook secret、不修改告警來源權限。
|
||||
- 本段沒有建立 incident、沒有啟動 auto repair、沒有建立 ticket、沒有批准 runtime gate。
|
||||
- `observed total=4` 代表已可查到既有 callback reply 證據;`snapshot_status=partial` 仍表示舊 inbound callback 點擊證據不可完全回補,下一個真 Telegram button press 仍是 inbound mirror 的驗證觸發點。
|
||||
- IwoooS / Source Control / Kali / VibeWork 相關 gate 全部維持既有 `0 / false` 邊界。
|
||||
|
||||
## 2026-06-04|IwoooS P1-9 VibeWork Onboarding Handoff
|
||||
|
||||
**背景**:P1-8 已補 111 / 168 開發主機 scope handoff;本段接續 P1-9,將 VibeWork 納入 IwoooS 的 repo、product、surface、owner、evidence refs、資料分級、部署邊界與獨立產品邊界整理成 owner / reviewer 可審的只讀 handoff。這不是產品合併、不是部署批准、不是 repo / refs 同步、不是 workflow / secret 修改,也不是掃描或修復授權。
|
||||
|
||||
Reference in New Issue
Block a user