From 1c8ebdf283204d4ad3513fde5a4b986ef4f7c1f9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 25 May 2026 10:38:43 +0800 Subject: [PATCH] docs(logbook): record callback source snapshots [skip ci] --- docs/LOGBOOK.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 6c4d14460..c4d146314 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,86 @@ +## 2026-05-25|T169 Callback evidence 補齊 MCP / Source / Execution snapshot + +**背景**: + +- T168 已保存 callback-time AwoooP status chain,但仍偏重「修復階段」。 +- 使用者要求能在前端與 Telegram evidence 中清楚判斷:Sentry / SigNoz 是否被匹配、MCP / 自建 MCP 是否真的被使用、Ansible / PlayBook 是否有被納入判斷。 +- 本階段只擴充 read-only callback evidence snapshot,不新增 Telegram 推播頻率、不改 callback mutation、不寫 incident / KM 狀態。 + +**完成變更**: + +- `awooop_status_chain_callback_reply_snapshot_v1` 補齊: + - `mcp.gateway`:total / success / failed / blocked / first-class / legacy bridge / policy enforced / stage。 + - `mcp.top_tools`:保留當下 gateway / legacy MCP top tools 與失敗摘要。 + - `execution`:latest executor / action / playbook ids / playbook paths。 + - `execution.ansible`:considered / record_total / candidate_count / latest playbook / check_mode / candidate playbooks。 + - `source_refs`:inbound/outbound totals、alert / Sentry / SigNoz / fingerprint refs。 + - `source_refs.correlation`:read-only source provider correlation summary,含 Sentry / SigNoz direct / candidate / applied link counts。 +- Telegram detail/history 送出 callback reply 前,會 read-only 查 source correlation;查詢失敗只記 warning,不會影響 truth-chain / callback reply。 +- Runs 頁 `TG Callback Evidence` 的 callback-time status chain 下方新增 compact 摘要: + - MCP:total / success / failed / blocked / top tool。 + - Execution:executor / playbook / Ansible considered / candidate count。 + - Source:status / direct / candidate / applied / Sentry-SigNoz provider summary。 + +**本地驗證**: + +```text +python3 -m py_compile apps/api/src/services/telegram_gateway.py apps/api/tests/test_telegram_message_templates.py +python3 -m json.tool apps/web/messages/zh-TW.json >/dev/null +python3 -m json.tool apps/web/messages/en.json >/dev/null +pnpm --filter @awoooi/web exec tsc --noEmit --incremental false +DATABASE_URL='postgresql+asyncpg://test:test@localhost:5432/test?ssl=disable' /Users/ogt/.pyenv/versions/3.11.7/bin/pytest apps/api/tests/test_telegram_message_templates.py apps/api/tests/test_awooop_operator_timeline_labels.py -q + -> 92 passed +/Users/ogt/.pyenv/versions/3.11.7/bin/ruff check --select F,E9 apps/api/src/services/telegram_gateway.py apps/api/tests/test_telegram_message_templates.py +git diff --check +pnpm --filter @awoooi/web exec eslint 'src/app/[locale]/awooop/runs/page.tsx' + -> 0 errors, 26 pre-existing i18n warnings in this file +``` + +**production deploy / smoke**: + +```text +Code commit: +dd1c5138 feat(telegram): persist callback evidence source snapshots + +Deploy marker: +c573fd42 chore(cd): deploy dd1c513 [skip ci] + +Gitea Actions: +3053 / run_number 2095 CD -> success + job 0 tests -> success + job 1 build-and-deploy -> success + job 2 post-deploy-checks -> success +3054 / run_number 2096 Code Review -> success + +Production API regression: +GET https://awoooi.wooo.work/api/v1/platform/runs/callback-replies?project_id=awoooi&per_page=3 + -> total=2, items=2 + -> old rows safely return persisted_awooop_status_chain=null + -> schema remains backward-compatible for new source/MCP/execution fields + +Production web smoke: +HEAD https://awoooi.wooo.work/zh-TW/awooop/runs?project_id=awoooi + -> HTTP 200 + +Production health: +GET https://awoooi.wooo.work/api/v1/health + -> status=healthy + -> api/postgresql/redis/ollama=up +``` + +**目前整體進度**: + +- AwoooP 告警可觀測鏈:約 99%。 +- 低風險自動修復閉環:約 95.5%。 +- 前端 AI 自動化管理介面同步:約 95.8%。 +- Telegram detail/history 可解釋性:約 95%。 +- Callback evidence / DB 回放性:約 94%。 +- MCP / 自建 MCP 使用可視性:約 88%。 +- Sentry / SigNoz source correlation 可視性:約 88%。 +- Ansible / PlayBook 決策可視性:約 84%。 +- KM owner-review / completion 可治理鏈:約 84%。 +- 完整 AI 自動化管理產品化:約 92.7%。 + ## 2026-05-25 | GCP-A Ollama 不可達,runtime 暫切 GCP-B - GCP-A `34.143.170.20` 從本機、110、GCP-B 均不可達:ping 100% loss,TCP `22/80/443/11434` timeout,`ssh gcp-a` timeout。