diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 7af3e7253..4b647520b 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,81 @@ +## 2026-05-25|T168 Callback AwoooP status-chain snapshot 持久化 + +**背景**: + +- T167 已保存 KM owner-review callback-time snapshot。 +- 但 Telegram 詳情 / 歷史 callback 的 DB evidence 仍缺少「當下 AwoooP 狀態鏈」:日後回放只能看到 live truth-chain,無法確認當時 AI 自動化是已驗證、自動修復待驗證、只讀試跑、被阻擋,還是人工處理中。 +- 本階段只新增 read-only status-chain snapshot,不改 Telegram 送訊頻率、不改 callback mutation、不改 incident/KM 狀態。 + +**完成變更**: + +- Telegram detail/history callback reply 的 outbound source envelope 新增 `awooop_status_chain` compact snapshot: + - schema:`awooop_status_chain_callback_reply_snapshot_v1` + - 保存當下 `current_stage`、`stage_status`、`verdict`、`repair_state`、`verification`、`needs_human`、`next_step`。 + - 保存 evidence counts:auto-repair、operation、MCP gateway、KM、ADR-100 remediation。 + - 保存當下 `latest_route` 與 writes flags:incident / auto-repair。 + - 保存 blockers,讓 Telegram 歷史回放可看出當時卡點。 +- AwoooP callback replies API 新增 `persisted_awooop_status_chain`。 +- Runs 頁 `TG Callback Evidence` card 新增「Callback 當下 AwoooP 狀態鏈」,並沿用既有 `AwoooPStatusChainPanel` compact 呈現。 + +**本地驗證**: + +```text +python3 -m py_compile apps/api/src/services/telegram_gateway.py apps/api/src/services/platform_operator_service.py apps/api/src/api/v1/platform/operator_runs.py apps/api/tests/test_telegram_message_templates.py apps/api/tests/test_awooop_operator_timeline_labels.py +/Users/ogt/.pyenv/versions/3.11.7/bin/ruff check --select F,E9 apps/api/src/services/telegram_gateway.py apps/api/src/services/platform_operator_service.py apps/api/src/api/v1/platform/operator_runs.py apps/api/tests/test_telegram_message_templates.py apps/api/tests/test_awooop_operator_timeline_labels.py +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 +pnpm --filter @awoooi/web exec tsc --noEmit --incremental false +python3 -m json.tool apps/web/messages/zh-TW.json >/dev/null +python3 -m json.tool apps/web/messages/en.json >/dev/null +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: +daf9d4b0 feat(telegram): persist callback status chain snapshots + +Deploy marker: +9aba9974 chore(cd): deploy daf9d4b [skip ci] + +Gitea Actions: +3045 / run_number 2091 CD -> success + job 0 tests -> success + job 1 build-and-deploy -> success + job 2 post-deploy-checks -> success +3046 / run_number 2092 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 + -> response includes persisted_awooop_status_chain field + -> old rows safely return persisted_awooop_status_chain=null + +Production web smoke: +HEAD https://awoooi.wooo.work/zh-TW/awooop/runs?project_id=awoooi + -> HTTP 200 +``` + +**production health note**: + +- `GET /api/v1/health` 仍回 `status=degraded`:`ollama_gcp_a=down timeout`,routing/fallback 顯示 `ollama` degraded with `fallback active: ollama_gcp_b`。 +- API / PostgreSQL / Redis 正常;本階段未改 AI provider routing。 + +**目前整體進度**: + +- AwoooP 告警可觀測鏈:約 98.8%。 +- 低風險自動修復閉環:約 95.2%。 +- 前端 AI 自動化管理介面同步:約 95.4%。 +- Telegram detail/history 可解釋性:約 94.5%。 +- Callback evidence / DB 回放性:約 91%。 +- CI/CD 通知與部署證據鏈:約 99%。 +- 治理告警可讀性 / 可處置性:約 93.8%。 +- KM owner-review / completion 可治理鏈:約 83.5%。 +- 完整 AI 自動化管理產品化:約 92.1%。 + ## 2026-05-25|T167 Callback owner-review evidence snapshot 持久化 **背景**: