From c06d51825413ba6b2f23bacd434226efbfd028bf Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 19 May 2026 09:25:33 +0800 Subject: [PATCH] docs(awooop): record t68 drift remediation evidence [skip ci] --- docs/LOGBOOK.md | 59 +++++++++++++++++++ ...-04-15-MASTER-ai-autonomous-flywheel-v2.md | 11 ++++ 2 files changed, 70 insertions(+) diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 226a83712..d01141765 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,62 @@ +## 2026-05-19 | T68 Config Drift remediation record + frontend verified state + +**背景**:T67 已把 live env drift 回到 Git/ConfigMap truth,production drift scan 也連續 `no-drift`。但那次修復證據只存在 LOGBOOK / shell history;Operator 從 Telegram 或前端仍無法直接看出「舊 drift 怎麼處理、是否已驗證、驗證 report 是哪一筆」。 + +**修正**: +- 新增 record-only endpoint:`POST /api/v1/drift/fingerprints/remediation`。 + - 只寫 `alert_operation_log` / `timeline_events`。 + - 不修改 drift report 狀態、不修改 incident 狀態、不宣稱 auto-repair result、不執行 `kubectl`、不建立外部 ticket。 +- `drift_fingerprint_state_service` 新增 `latest_remediation` read model: + - `verified_no_drift` + 最新 no-drift report → `fsm_state=no_drift_verified`。 + - 舊 drift report + verified remediation → `fsm_state=remediated_verified`。 + - 未驗證修復 → `remediation_executed_unverified`,下一步要求跑 verification scan 後再記錄。 +- 前端同步: + - `/awooop/work-items` 的 Config Drift 工作項增加「修復 / 驗證」區塊與 evidence detail。 + - `/drift` 的同指紋狀態鏈顯示 remediation kind、verification report、verification summary、note。 + - i18n 已補 zh-TW / en。 + +**local verification**: +- `py_compile`:`drift_fingerprint_state_service.py`、`api/v1/drift.py`、`test_drift_fingerprint_state_service.py` pass。 +- `DATABASE_URL=postgresql+asyncpg://test:test@localhost/test PYTHONPATH=apps/api pytest apps/api/tests/test_phase25_drift_detection.py apps/api/tests/test_drift_detector_normalization.py apps/api/tests/test_drift_fingerprint_state_service.py -q`:28 passed。 +- `ruff check --select F,E9,I` for changed API/test files:pass。 +- `node` JSON parse for `apps/web/messages/zh-TW.json` / `en.json`:pass。 +- `pnpm --dir apps/web typecheck`:pass。 +- `pnpm --dir apps/web exec next lint --file src/app/[locale]/awooop/work-items/page.tsx --file src/components/panels/DriftPanel.tsx`:pass。 +- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work pnpm --dir apps/web build`:pass。 +- Playwright local mock state:Work Items / Drift 均顯示 `verified_no_drift`,導航列存在且無 runtime error。 + +**production deployment / verification**: +- Code commit:`64b34828 feat(drift): record remediation evidence`。 +- Gitea Code Review run `1818` success;CD run `1817` tests / build-and-deploy / post-deploy-checks 全 success。 +- Deploy marker:`3e94fba7 chore(cd): deploy 64b3482 [skip ci]`。 +- Health:`https://awoooi.wooo.work/api/v1/health` → `status=healthy`、`mock_mode=false`、`environment=prod`。 +- 最新 no-drift verification report:`df5b337e`,`HIGH=0`、`MEDIUM=0`、`INFO=0`,triggered_by=`cron`。 +- 寫入 remediation record: + - request target:remediated report `58181a51`,verification report `df5b337e`,kind=`live_env_rollback`。 + - response:`fsm_state=remediated_verified`、`remediation_status=verified_no_drift`。 + - `alert_operation_id=5c9d6ae5-5bca-4138-b0c0-c99c567c498e`。 + - `timeline_event_id=0779771f-cf5c-4c09-acad-4795dcf2a5de`。 +- Readback: + - `GET /api/v1/drift/fingerprints/state?namespace=awoooi-prod` → latest report `df5b337e`、`fsm_state=no_drift_verified`、`next_step=monitor_for_recurrence`、`latest_remediation.verification_report_id=df5b337e`。 + - `GET /api/v1/drift/fingerprints/state?report_id=58181a51` → `fsm_state=remediated_verified`、`latest_remediation.remediated_report_id=58181a51`。 +- Production frontend smoke: + - `https://awoooi.wooo.work/zh-TW/awooop/work-items` 顯示 AwoooP navigation、修復 / 驗證區塊、`已驗證無漂移`、`df5b337e`,無 runtime error。 + - `https://awoooi.wooo.work/zh-TW/drift` 顯示同指紋狀態鏈、`修復:verified_no_drift`、`df5b337e`,無 runtime error。 + +**邊界 / 下一步**: +- T68 是 evidence/status writeback,不是新的自動修復執行;T67 的 rollback 仍是受控人工/Agent 操作。 +- Config Drift 目前已從「重複告警 + stale PR + 無法判斷處理階段」收斂成 `no_drift_verified`,後續若再發生 drift,應以新 report/fingerprint 重新判斷,不沿用舊處理結論。 +- 下一步可把同樣 record-only remediation pattern 推廣到其他 Telegram 告警類型,讓每張告警卡都能顯示 investigation / remediation / verification / human gate 階段。 + +**目前整體進度**: +- AwoooP observability / truth-chain 可回看:約 99.5%。 +- 來源告警入庫、重複發生、Sentry / SignOz 與修復結果可見性:約 99.4%。 +- Telegram callback detail/history 可追溯:約 96.5%。 +- AI 自動修復閉環:約 97.8%;T68 補齊修復證據回寫,但不新增全自動執行能力。 +- Config Drift 治理:約 99.6%;目前 production state 已 `no_drift_verified`。 +- 前端 AI 自動化管理介面產品化:約 98.9%。 +- 完整 AI 自動化管理產品化:約 97.6%。 + ## 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 宣告狀態。 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 11ff86ba9..05d71d029 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 @@ -2251,6 +2251,17 @@ Phase 6 完成後 - 邊界: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%。 +**T68 Config Drift remediation evidence writeback production verified(2026-05-19 台北)**: +- 觸發:T67 已 no-drift,但修復證據只在 LOGBOOK / shell history;Operator 從 Telegram 或前端仍無法直接看到舊 drift 的處理階段、驗證 report、timeline/audit id。 +- 修正:新增 `POST /api/v1/drift/fingerprints/remediation` record-only endpoint;只寫 `alert_operation_log` / `timeline_events`,不修改 drift / incident / auto-repair 狀態、不執行 kubectl、不建立外部 ticket。`/drift/fingerprints/state` 增加 `latest_remediation`,並新增 `no_drift_verified`、`remediated_verified`、`remediation_executed_unverified`、`remediation_verification_failed` FSM。 +- UI:`/awooop/work-items` 的 T64 Config Drift 工作項新增「修復 / 驗證」區塊與 evidence detail;`/drift` 同指紋狀態鏈顯示 remediation kind、verification report、verification summary、note;zh-TW/en i18n 已補。 +- Verification:local `py_compile` / ruff / 28 drift tests / web typecheck / targeted lint / Next build pass;Playwright mock state 確認 Work Items / Drift 顯示 `verified_no_drift` 且導航列仍存在。 +- Production deploy:`64b34828 feat(drift): record remediation evidence` 推 Gitea main;Code Review run `1818` success;CD run `1817` tests / build-and-deploy / post-deploy-checks 全 success;deploy marker `3e94fba7 chore(cd): deploy 64b3482 [skip ci]`。 +- Production writeback:remediated report `58181a51`、verification report `df5b337e`、kind=`live_env_rollback` 寫入成功;`alert_operation_id=5c9d6ae5-5bca-4138-b0c0-c99c567c498e`、`timeline_event_id=0779771f-cf5c-4c09-acad-4795dcf2a5de`。 +- Readback:`state?namespace=awoooi-prod` → latest `df5b337e`、`fsm_state=no_drift_verified`、`next_step=monitor_for_recurrence`;`state?report_id=58181a51` → `fsm_state=remediated_verified`。Production frontend `/zh-TW/awooop/work-items` 與 `/zh-TW/drift` 均顯示 `verified_no_drift` / `df5b337e`,無 runtime error。 +- 邊界:T68 補齊 evidence/status writeback,不宣稱 T67 是全自動修復。下一步可把同樣 record-only remediation pattern 推廣到其他 Telegram 告警,讓 investigation / remediation / verification / human gate 都能在前端與 Telegram 回覆裡同源呈現。 +- 目前進度更新:AwoooP truth-chain 可回看約 99.5%;AI 自動修復閉環約 97.8%;Config Drift 治理約 99.6%;前端 AI 自動化管理介面產品化約 98.9%;完整 AI 自動化管理產品化約 97.6%。 + --- ### 2026-04-20 晚 (台北) — C1-C4 全流程串接 — Playbook 鏈路保護(commit de2d34d)