From 5bf49f81bed8b6737d03ea33605aa07f10f490ab Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 19 May 2026 02:28:59 +0800 Subject: [PATCH] docs(awooop): record t67 drift rollback evidence [skip ci] --- docs/LOGBOOK.md | 43 +++++++++++++++++++ ...-04-15-MASTER-ai-autonomous-flywheel-v2.md | 8 ++++ 2 files changed, 51 insertions(+) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 175a0418e..226a83712 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,46 @@ +## 2026-05-19 | T67 Config Drift true env rollback to Git/ConfigMap + +**背景**:T66 已把 Config Drift 假漂移從 `HIGH=1 MEDIUM=32 INFO=23` 收斂到 `HIGH=0 MEDIUM=2 INFO=0`。剩餘 2 個 MEDIUM 都是 live env 真差異:API 多 `HERMES_NL_ENABLED` / `DUMMY_DEPLOY`,worker 多 4 個 alert model env。這些不能在 detector 直接白名單,必須判斷採納或回到 Git/ConfigMap 宣告狀態。 + +**查證**: +- `kubectl get deploy` 顯示: + - `awoooi-api` explicit env 多 `HERMES_NL_ENABLED=true`、`DUMMY_DEPLOY=1777914462`。 + - `awoooi-worker` explicit env 多 `ALERT_AI_ALLOW_CLOUD_FALLBACK=true`、`ALERT_AI_ENFORCE_OLLAMA_FIRST=true`、`ALERT_OLLAMA_MODEL=gemma3:4b`、`OLLAMA_HEALTH_CHECK_MODEL=gemma3:4b`。 +- Repo / ConfigMap: + - `HERMES_NL_ENABLED=true` 已在 `k8s/awoooi-prod/04-configmap.yaml`,API explicit env 是重複覆蓋。 + - `DUMMY_DEPLOY` repo 無來源,屬舊手動 rollout marker 候選。 + - ConfigMap current truth:`ALERT_OLLAMA_MODEL=qwen3:14b`、`OLLAMA_HEALTH_CHECK_MODEL=gemma3:4b`,對齊 2026-05-05「告警診斷優先解決品質」決策;worker live `gemma3:4b` 是舊 fast-lane 覆蓋。 + +**現場修正**: +- 先跑 server-side dry-run: + - `kubectl -n awoooi-prod set env deploy/awoooi-api HERMES_NL_ENABLED- DUMMY_DEPLOY- --dry-run=server -o json` + - `kubectl -n awoooi-prod set env deploy/awoooi-worker ALERT_AI_ALLOW_CLOUD_FALLBACK- ALERT_AI_ENFORCE_OLLAMA_FIRST- ALERT_OLLAMA_MODEL- OLLAMA_HEALTH_CHECK_MODEL- --dry-run=server -o json` +- 套用 declarative rollback to Git/ConfigMap truth: + - `kubectl -n awoooi-prod set env deploy/awoooi-api HERMES_NL_ENABLED- DUMMY_DEPLOY-` + - `kubectl -n awoooi-prod set env deploy/awoooi-worker ALERT_AI_ALLOW_CLOUD_FALLBACK- ALERT_AI_ENFORCE_OLLAMA_FIRST- ALERT_OLLAMA_MODEL- OLLAMA_HEALTH_CHECK_MODEL-` +- Rollout:`awoooi-api` / `awoooi-worker` both successfully rolled out。 + +**production verification**: +- Live env after rollback: + - API env list no longer includes `HERMES_NL_ENABLED` / `DUMMY_DEPLOY`; Hermes still inherited from ConfigMap. + - Worker explicit env list is only `WORKER_MODE` / `CONSUMER_GROUP` / `CONSUMER_NAME`; alert config now inherited from ConfigMap. +- Health:`https://awoooi.wooo.work/api/v1/health` → `status=healthy`、`mock_mode=false`。 +- Drift scan:`POST /api/v1/drift/scan` with `triggered_by=t67_env_drift_rollback_smoke` → `report_id=no-drift`、`summary=無漂移`、`HIGH=0`、`MEDIUM=0`、`INFO=0`、`has_critical_drift=false`。 + +**邊界 / 下一步**: +- 這次沒有修改 Git manifest,因為 Git/ConfigMap 已是 desired state;T67 是清掉 live manual drift。 +- Config Drift 主線已從「反覆 P0 / stale PR / 假漂移」收斂到 `no-drift`。後續若再出現 drift,應以新 fingerprint / report 重新處理,不沿用舊 #145/#3-#144 殘影。 +- 下一步可把 T67 的 live rollback evidence 做成 AwoooP `drift remediation` record,而不是只靠 LOGBOOK,讓前端歷史也能顯示「人工/Agent 已回到 Git truth」。 + +**目前整體進度**: +- AwoooP observability / truth-chain 可回看:約 99.4%。 +- 來源告警入庫、重複發生、Sentry / SignOz 與修復結果可見性:約 99.3%。 +- Telegram callback detail/history 可追溯:約 96%。 +- AI 自動修復閉環:約 97.6%;T67 是受控 live rollback,不是全自動修復。 +- Config Drift 治理:約 99.2%;目前 production scan 已 `no-drift`,剩下要補 remediation record / status writeback 的產品化細節。 +- 前端 AI 自動化管理介面產品化:約 98.6%。 +- 完整 AI 自動化管理產品化:約 96.5%。 + ## 2026-05-19 | T66 Config Drift PR Ghost Cleanup + Detector Source-of-Truth Fix **背景**:T64-T65 已讓 Config Drift 有 fingerprint FSM 與 semantic P0 dedupe,但 production 仍卡在 `pr_open_zero_diff`,Telegram 也持續讓 Operator 看到「有採納 PR / 需人工」的狀態。實查後確認不是單一 #145,而是一整串舊 `chore: adopt drift` PR 殘影;同時 drift detector 讀的是 API image 內 baked repo,不是 Gitea main 最新 deploy marker,導致每次部署後 image tag 都會變成假 drift。 diff --git a/docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md b/docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md index 41137cc5f..11ff86ba9 100644 --- a/docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md +++ b/docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md @@ -2243,6 +2243,14 @@ Phase 6 完成後 - 邊界:T66 不宣稱 Config Drift 完全解決,也不自動採納 live env。剩餘 2 個 MEDIUM 是真差異候選,下一步必須查 live managed fields / CD history / Ansible check-mode,再決定採納或 declarative rollback;不可把 `DUMMY_DEPLOY` 或 worker model mismatch 直接白名單。 - 目前進度更新:AwoooP truth-chain 可回看約 99.3%;AI 自動修復閉環約 97.4%;Config Drift 治理約 98%;前端 AI 自動化管理介面產品化約 98.6%;完整 AI 自動化管理產品化約 96%。 +**T67 Config Drift true env rollback to Git/ConfigMap production verified(2026-05-19 台北)**: +- 觸發:T66 後剩餘 `MEDIUM=2` 是真 env drift,不可在 detector 白名單。查證 live API 多 `HERMES_NL_ENABLED=true` / `DUMMY_DEPLOY=1777914462`;worker 多 4 個 alert env,其中 `ALERT_OLLAMA_MODEL=gemma3:4b` 覆蓋 Git/ConfigMap 的 `qwen3:14b`。 +- 判斷:`HERMES_NL_ENABLED=true` 已在 ConfigMap,API explicit env 是重複覆蓋;`DUMMY_DEPLOY` repo 無來源;worker alert env 應回到 ConfigMap truth,符合 2026-05-05「告警診斷優先解決品質」決策。 +- 現場修正:先用 `kubectl set env ... --dry-run=server` 確認 env list,再移除 API `HERMES_NL_ENABLED` / `DUMMY_DEPLOY` 與 worker `ALERT_AI_ALLOW_CLOUD_FALLBACK` / `ALERT_AI_ENFORCE_OLLAMA_FIRST` / `ALERT_OLLAMA_MODEL` / `OLLAMA_HEALTH_CHECK_MODEL` explicit env;API / worker rollout both success。 +- Production evidence:health healthy;API env 不再含 `HERMES_NL_ENABLED` / `DUMMY_DEPLOY`;worker explicit env 只剩 `WORKER_MODE` / `CONSUMER_GROUP` / `CONSUMER_NAME`;manual drift scan `triggered_by=t67_env_drift_rollback_smoke` 回 `report_id=no-drift`、`summary=無漂移`、`HIGH=0`、`MEDIUM=0`、`INFO=0`。 +- 邊界:T67 是受控 live rollback to Git/ConfigMap truth,不是全自動修復,也沒有修改 Git manifest。下一步應把這類 rollback evidence 寫入 AwoooP remediation/status record,讓前端歷史不只依賴 LOGBOOK。 +- 目前進度更新:AwoooP truth-chain 可回看約 99.4%;AI 自動修復閉環約 97.6%;Config Drift 治理約 99.2%;前端 AI 自動化管理介面產品化約 98.6%;完整 AI 自動化管理產品化約 96.5%。 + --- ### 2026-04-20 晚 (台北) — C1-C4 全流程串接 — Playbook 鏈路保護(commit de2d34d)