docs(logbook): 記錄 no-action 處置包部署 [skip ci]
This commit is contained in:
@@ -1,3 +1,38 @@
|
||||
## 2026-06-18|Telegram no-action 批准轉人工處置包與資產沉澱契約
|
||||
|
||||
**背景**:使用者指出 Telegram 告警批准後仍常顯示「AI 選擇不執行修復,需人工判斷」,而且沒有真正進入可操作的 AI 自動化閉環;KM、PlayBook、腳本、排程與自動化機制也沒有在告警、頁面與工作項目形成可查證沉澱。程式碼盤點後確認舊契約會把 `NO_ACTION - REPAIR_CANDIDATE_MISSING` 類批准回成 `ApprovedWithoutExecution`,並刻意不排 executor,導致 operator 體感是「批准後無事發生」。
|
||||
|
||||
**完成內容**:
|
||||
- `apps/api/src/api/v1/telegram.py` 新增 `ApprovedForManualHandoff` 回應契約:當批准的 action 是 `NO_ACTION` / `REPAIR_CANDIDATE_MISSING` 時,仍禁止排 executor,但 API 回應必須帶出 `manual_handoff_required`、`manual_handoff_scheduled`、`manual_handoff_kind=repair_candidate_draft`、`next_action`、`work_item_id`、`work_item_href`、`repair_candidate_blocker`、`required_fields`、`required_writebacks` 與 `automation_asset_requirements`。
|
||||
- `apps/api/src/services/telegram_gateway.py` 的批准後卡片文案改為「已轉人工處置包;請按處置包或重診補修復候選,這不是執行中」,避免再把 no-action 類批准誤解成執行中或完成。
|
||||
- Telegram 人工處置包新增資產沉澱要求:KM、PlayBook、腳本 / Ansible、排程 / 監控規則、Verifier 結果;並要求 Runs、Work Items、Knowledge Base 顯示資產 ID、owner、狀態與下一步。
|
||||
- `apps/api/src/services/repair_candidate_service.py` 的 `repair_candidate_draft_package_v1` 新增 `automation_asset_requirements` 與 `required_writebacks`,讓 AwoooP Work Item / API / Telegram 共用同一份沉澱契約,而不是只有文字提醒。
|
||||
- 修復候選草案必填欄位從 PlayBook 基礎欄位擴充為:`script_or_ansible_ref`、`schedule_or_monitoring_rule_ref`、`km_update_plan`、`automation_asset_record`,並把 `automation_asset_record` / `dashboard_visibility_refs` 納入 coverage gap 模板欄位。
|
||||
|
||||
**本地驗證**:
|
||||
- `DATABASE_URL=postgresql+asyncpg://ci:ci@localhost/ci PYTHONFAULTHANDLER=1 /Users/ogt/.pyenv/shims/pytest tests/test_telegram_webhook_execution_handoff.py tests/test_telegram_message_templates.py tests/test_telegram_ai_automation_block.py tests/test_repair_candidate_service.py -q -p no:cacheprovider`:`71 passed`。
|
||||
- `python3 -m py_compile apps/api/src/api/v1/telegram.py apps/api/src/services/telegram_gateway.py apps/api/src/services/repair_candidate_service.py` 通過。
|
||||
- `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`。
|
||||
- 舊死結字串掃描:`ApprovedWithoutExecution`、`此卡沒有可執行修復`、`等待補修復候選` 在 `apps/api/src` / `apps/api/tests` 命中 `0`。
|
||||
|
||||
**正式部署與 readback**:
|
||||
- Code commit:`c1c20656 fix(api): 將無修復批准轉入處置包`。
|
||||
- Deploy marker:`3c6b9865 chore(cd): deploy c1c2065 [skip ci]`。
|
||||
- Gitea Actions:code-review `3108` 成功;CD `3107` 已產生 deploy marker,Actions list 顯示 `c1c20656` 已進 success 清單。
|
||||
- Production API:`GET https://awoooi.wooo.work/api/v1/health` 回 `healthy / prod / mock_mode=false`;PostgreSQL、Redis、Ollama GCP-A、OpenClaw、SigNoz 皆為 `up`。
|
||||
- Production Telegram health:`GET https://awoooi.wooo.work/api/v1/telegram/health` 回 `status=configured`、`mode=long_polling`、`polling_active=true`、`bot_token_set=true`、`chat_id_set=true`、`sre_group_chat_id_set=true`、whitelist `10`。
|
||||
- Production AwoooP smoke:`/zh-TW/awooop?_v=3c6b9865-ai-handoff-prod-desktop` 桌機 `1440x1000` 與 `/zh-TW/awooop?_v=3c6b9865-ai-handoff-prod-mobile` 手機 `390x844` 皆可見 `AwoooP`、`操作決策圖譜`、`告警 / 來源`、`證據鏈`、`學習回寫`、`來源到 Run`;console error `0`、HTTP failed `0`、頁面水平溢位 `0`、敏感工作視窗片語命中 `0`。
|
||||
- 截圖:`/tmp/awoooi-awooop-ai-handoff-prod-desktop-3c6b9865.png`、`/tmp/awoooi-awooop-ai-handoff-prod-mobile-3c6b9865.png`。
|
||||
|
||||
**仍待處理**:
|
||||
- 手機 AwoooP 深層舊區塊仍有少量長 span 元素局部 overflow,頁面層沒有水平捲動,但仍屬於 D2 文字牆 / 舊區塊元件化問題。
|
||||
- 本輪沒有偽造正式 Telegram callback,不亂打 production nonce;no-action 批准契約以單元測試、部署 marker、Telegram health 與頁面 smoke 作為本段證據。
|
||||
- 下一段必須把 Work Items / Knowledge Base / Runs 的資產沉澱顯示整併,讓 KM、PlayBook、腳本、排程、Verifier 的 asset record 在頁面上可查,否則仍會落入「做了但使用者看不到」。
|
||||
|
||||
**邊界**:本輪沒有把 `NO_ACTION` 偷改成直接執行命令,沒有打開 runtime gate,沒有讀 secret,沒有發送測試 Telegram,沒有呼叫 Bot API 發正式訊息,沒有 SSH / kubectl / host write / active scan。此修正只把「無安全修復候選」從批准死結改成可追蹤處置包與資產沉澱契約;真正自動修復仍必須經修復候選、owner review、approval gate、executor、verifier 與 KM / PlayBook writeback。
|
||||
|
||||
## 2026-06-18|重啟 Plan B 機讀 baseline 與 readiness audit guard 補強
|
||||
|
||||
**背景**:前一段已把 Plan B 寫進 `FULL-STACK-COLD-START-SOP.md`,但如果只有 Markdown,未來仍可能在重構或同步時漂移。這輪把 Plan B 升成機讀 baseline 與 readiness audit 必檢項,讓「有沒有 Plan B」可以被工具檢查。
|
||||
|
||||
Reference in New Issue
Block a user