docs(logbook): record recent event source summary rollout [skip ci]

This commit is contained in:
Your Name
2026-06-04 21:36:53 +08:00
parent df49e1129b
commit b9bd5e3ba8
2 changed files with 55 additions and 8 deletions

View File

@@ -1,3 +1,41 @@
## 2026-06-04AwoooP Recent Telegram Event Source Summary Rollout
**背景**Phase 2 告警資料鏈路盤點時production `/api/v1/platform/events/recent?project_id=awoooi&channel_type=telegram` 已能列出 Telegram inbound callback events但 operator 只能靠 `content_preview` 猜 action / incident / approvalAPI 沒有結構化的 `content_type``run_id` 與 redacted source summary。這會讓告警詳情、Telegram callback、DB event 與 run timeline 之間缺一層可讀橋接。
**本輪完成**
- `apps/api/src/services/platform_operator_service.py`:新增 recent event source summary 投影,從 `source_envelope` 摘出 provider、stage、provider event id、source ref count、redaction version、Telegram callback action、callback ref、incident / approval reference、message id 與 log correlation 摘要。
- `apps/api/src/api/v1/platform/events.py``ChannelEventItem` 新增 `run_id``content_type``source_summary`,讓 recent events API 能回傳結構化安全摘要。
- `apps/api/tests/test_awooop_operator_timeline_labels.py`:新增 Telegram callback source summary 與 recent channel event item 測試,確認 raw callback data、user hash、callback hash 不會被投影到 API。
**完成度更新**
- Phase 2 告警資料鏈路:`18% → 24%`
- Recent Telegram inbound event source summary live issue`100%`
- Runs visibility`92% → 94%`
- 完整 AI 自動化飛輪:`73% → 74%`
- Phase 2 目標仍為 `90%`Telegram DB 完整寫入、dedupe / recurrence、postmortem 重複通知、Config Drift 重複告警與完整 history / detail 行為仍待續。
**驗證**
- `python3 -m py_compile apps/api/src/services/platform_operator_service.py apps/api/src/api/v1/platform/events.py apps/api/tests/test_awooop_operator_timeline_labels.py`:通過。
- `ruff check apps/api/src/services/platform_operator_service.py apps/api/src/api/v1/platform/events.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``62 passed`
- `git diff --check`:通過。
- `python3 scripts/security/source-control-owner-response-guard.py --root .``SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK`
- `python3 scripts/security/security-mirror-progress-guard.py --root .``SECURITY_MIRROR_PROGRESS_GUARD_OK`
- Gitea code-review run `2556`success。
- Gitea CD run `2555`tests / build-and-deploy success。
- Deploy marker`df49e112 chore(cd): deploy 87fe932 [skip ci]`
- Production recent events API`/api/v1/platform/events/recent?project_id=awoooi&channel_type=telegram&limit=3` 回三筆 `content_type=callback_query``source_summary.telegram_callback_query.action=approve`,並含 `approval_id``incident_id``source_ref_count``redaction_version=audit_sink_v1`
- Production callback replies API`action=history` total `4``action=detail` total `0`。目前可驗證的是 history callback reply不代表 detail callback reply 已有事件樣本。
- Production callback detail link spot-check四個 `run_detail_href` 皆回 200其中 `/zh-TW/awooop/runs/28c37b21-3eec-5c22-a6c9-503e1680ed29?project_id=awoooi` 可見 Run ID、Incident `INC-20260530-AB2B0A`、狀態鏈、MCP / Telegram evidence`horizontalOverflow=0`;截圖 `/tmp/awoooi-callback-run-detail-28c37b21-658f46dd.png`
- Production Browser desktop `/zh-TW/awooop/runs?project_id=awoooi&_v=df49e112-recent-event-summary-desktop`AwoooP / Runs / 繁中狀態可見,`horizontalOverflow=0`、禁止 href `0`、英文 fallback 殘留 `0`、無 in-page load failure截圖 `/tmp/awoooi-runs-recent-event-summary-desktop-df49e112.png`
- Production Browser mobile 390x844 `/zh-TW/awooop/runs?project_id=awoooi&_v=df49e112-recent-event-summary-mobile`AwoooP / Runs / 繁中狀態可見,`horizontalOverflow=0`、禁止 href `0`、英文 fallback 殘留 `0`、無 in-page load failure截圖 `/tmp/awoooi-runs-recent-event-summary-mobile-df49e112.png`
**目前邊界**
- 本段只暴露 redacted source summary不發 Telegram、不讀取 token、不收集 callback raw data、不修改 webhook secret、不新增 runtime action。
- `action=approve` 的 recent inbound events 與 callback replies `action=history` 是不同資料面;本段讓 inbound recent events 可判讀,但不把它誤認成 detail/history callback reply 已完整閉環。
- `run_id=null` 代表 inbound callback event 目前未必直接綁到 run後續仍需補完整 alert ingest → run timeline correlation。
- IwoooS headline 仍 `64%`active runtime gate 仍 `0`owner response received / accepted 仍 `0 / 0`
## 2026-06-04AwoooP 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。

View File

@@ -8,16 +8,16 @@
| --- | --- |
| Repo/worktree | `/private/tmp/awoooi-iwooos-next-gate-20260604` |
| 推版規則 | 只推 Gitea`git push gitea HEAD:main`GitHub 只讀備份 |
| 最新 Gitea main | `658f46dd chore(cd): deploy ca0b3ae [skip ci]` |
| 最新完成 code commit | `ca0b3aec fix(api): include delivered callback replies in observed filter` |
| 最新 deployment marker | `658f46dd chore(cd): deploy ca0b3ae [skip ci]` |
| 正式站驗證 | `https://awoooi.wooo.work/zh-TW/awooop/runs?project_id=awoooi&_v=658f46dd-callback-observed` |
| 最新 Gitea main | `df49e112 chore(cd): deploy 87fe932 [skip ci]` |
| 最新完成 code commit | `87fe932b fix(api): expose recent event source summaries` |
| 最新 deployment marker | `df49e112 chore(cd): deploy 87fe932 [skip ci]` |
| 正式站驗證 | `https://awoooi.wooo.work/zh-TW/awooop/runs?project_id=awoooi&_v=df49e112-recent-event-summary-desktop` |
| 首頁產品化入口 | 88% |
| AI provider readability | 88% |
| Runs visibility | 92% |
| Runs visibility | 94% |
| Work Items readability | 84% |
| Design system | 64% |
| 完整 AI 自動化飛輪 | 73% |
| 完整 AI 自動化飛輪 | 74% |
## Session 啟動固定檢查
@@ -141,8 +141,8 @@ Live evidence
| 欄位 | 內容 |
| --- | --- |
| 優先級 | P0 |
| 狀態 | 已修復個 live issue`29a67ec7` 讓 Source Link Canary 先判 HTTP status、2xx 空 body 交給 source-correlation readback 驗證;`ca0b3aec``callback_reply_status=observed` 不再隱藏已送達 Telegram callback replies。其餘 Telegram / DB / dedupe / history 紅燈待續。 |
| 本階段完成度 | 18% |
| 狀態 | 已修復個 live issue`29a67ec7` 讓 Source Link Canary 先判 HTTP status、2xx 空 body 交給 source-correlation readback 驗證;`ca0b3aec``callback_reply_status=observed` 不再隱藏已送達 Telegram callback replies`87fe932b` 讓 recent Telegram inbound event 回傳安全 source summary前端 / API 可判讀 callback action、incident / approval reference 與 redaction metadata。其餘 Telegram / DB / dedupe / history 紅燈待續。 |
| 本階段完成度 | 24% |
| 目標完成度 | 告警資料鏈路可判讀性 → 90% |
細項:
@@ -152,6 +152,7 @@ Live evidence
- [ ] 修「詳情 / 歷史」HTTP 400 或查不到事件。
- [x]`Source Link Canary`Gitea CD post-deploy run `2547` 顯示 `sentry source-link canary failed: Expecting value: line 1 column 1 (char 0)``29a67ec7` 已修 smoke script status-first parsing 與 2xx empty response handoffrun `2549` 已成功。
- [x] 修 Telegram callback replies `observed` 篩選production API 原本 `callback_reply_status=observed``total=0`,但 summary `callback_total=4``ca0b3aec` 已讓 observed 代表「有 callback reply 證據」,不再排除 sent / fallback sent / rescue sent / failed。
- [x] 補 Recent Telegram inbound event source summaryproduction `/api/v1/platform/events/recent` 現在回傳 `content_type``run_id` 與 redacted `source_summary`,可看到 callback `action``incident_id` / `approval_id``source_ref_count``redaction_version`,但不暴露 raw callback data、user hash 或 callback hash。
- [ ] 修 postmortem 瞬間大量重複通知。
- [ ] 修 Config Drift 重複告警,確認 PR 已建立後的採納 / 關閉 / baseline / TTL 狀態。
@@ -175,6 +176,13 @@ Live evidence
- 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`
- Local verification for `87fe932b``py_compile``ruff check``DATABASE_URL=<local test postgres URL> PYTHONPATH=apps/api pytest apps/api/tests/test_awooop_operator_timeline_labels.py -q`,結果 `62 passed``git diff --check``SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK``SECURITY_MIRROR_PROGRESS_GUARD_OK` 通過。
- Gitea code-review run `2556`successGitea CD run `2555`tests / build-and-deploy successdeploy marker`df49e112 chore(cd): deploy 87fe932 [skip ci]`
- Production recent events API`/api/v1/platform/events/recent?project_id=awoooi&channel_type=telegram&limit=3` 回三筆 `content_type=callback_query``source_summary.telegram_callback_query.action=approve`,並含 `approval_id``incident_id``source_ref_count``redaction_version=audit_sink_v1`
- Production callback detail link spot-check`/api/v1/platform/runs/callback-replies?project_id=awoooi&callback_reply_status=observed&per_page=5&refresh=true` 的 4 個 `run_detail_href` 皆回 200`action=history` total `4``action=detail` total `0`,代表目前可驗證的是 history callback reply不是 detail callback reply。
- Production Browser detail smoke`/zh-TW/awooop/runs/28c37b21-3eec-5c22-a6c9-503e1680ed29?project_id=awoooi&_v=detail-link-check` 可見 Run ID、Incident `INC-20260530-AB2B0A`、狀態鏈、MCP / Telegram evidence`horizontalOverflow=0`;截圖 `/tmp/awoooi-callback-run-detail-28c37b21-658f46dd.png`
- Production Browser desktop `/zh-TW/awooop/runs?project_id=awoooi&_v=df49e112-recent-event-summary-desktop`AwoooP / Runs / 繁中狀態可見,`horizontalOverflow=0`、禁止 href `0`、英文 fallback 殘留 `0`、無 in-page load failure截圖 `/tmp/awoooi-runs-recent-event-summary-desktop-df49e112.png`
- Production Browser mobile 390x844 `/zh-TW/awooop/runs?project_id=awoooi&_v=df49e112-recent-event-summary-mobile`AwoooP / Runs / 繁中狀態可見,`horizontalOverflow=0`、禁止 href `0`、英文 fallback 殘留 `0`、無 in-page load failure截圖 `/tmp/awoooi-runs-recent-event-summary-mobile-df49e112.png`
## Phase 3 - P0 AI Provider / Agent 主責
@@ -299,3 +307,4 @@ Live evidence
| 2026-06-04 | Phase 5 | 64% | WOOO Open Design D1 已上線AwoooP Runs / Approvals 控制項吃 `rounded-button`,正式站桌機 / 手機 `horizontalOverflow=0` |
| 2026-06-04 | Phase 2 | 12% | `29a67ec7` 已修 Source Link Canary response parsing`65bdfd1d` deploy 後 CD / post-deploy checks 通過 |
| 2026-06-04 | Phase 2 | 18% | `ca0b3aec` 已修 callback reply `observed` filter`658f46dd` deploy 後 production API `observed total=4` 對齊 summary `callback_total=4` |
| 2026-06-04 | Phase 2 | 24% | `87fe932b` 已補 recent Telegram inbound event redacted source summary`df49e112` deploy 後 production API 與 Runs desktop/mobile smoke 通過 |