docs: record adr100 playbook ticket remediation [skip ci]
This commit is contained in:
@@ -1,3 +1,63 @@
|
||||
## 2026-06-01|ADR-100 observe-only PlayBook 補救工作項落地
|
||||
|
||||
**背景**:
|
||||
|
||||
- Docker 診斷型 PlayBook 守門已阻止 read-only / diagnose-only PlayBook 再被算成自動修復,但 production SLO read-model 仍有 6 筆 `observe_only_playbook`。
|
||||
- 若這些項目只停在 `needs_playbook_ticket` 分類,operator 仍看不到「下一步由誰做、會不會真的改 Incident / auto-repair、是否只產生草稿」。
|
||||
|
||||
**本次調整**:
|
||||
|
||||
- `apps/api/src/services/adr100_remediation_service.py`:
|
||||
- 新增 `ticket` remediation mode。
|
||||
- `needs_playbook_ticket` / `promote_diagnostic_to_repair_playbook` 自動選擇 `ticket`,產生 PlayBook 改造草稿。
|
||||
- ticket mode 只允許 `record_only`:可寫 `alert_operation_log` / timeline history,不改 incident state、不改 auto-repair result、不建立外部 ticket。
|
||||
- ticket 草稿要求把 diagnostic-only PlayBook 補成 gated mutating repair step,例如 Docker restart、Ansible check-mode/apply 或已批准 executor action,且後驗證必須綁同一 target。
|
||||
- `apps/web/src/app/[locale]/awooop/work-items/page.tsx`:
|
||||
- 新增 ADR-100 補救工作佇列面板,直接顯示 remediation queue 的 top items。
|
||||
- 顯示 `needs_playbook_ticket`、`observe_only_playbook`、`promote_diagnostic_to_repair_playbook`、owner、PlayBook 與 `預覽` / `預檢 / 草稿` 操作。
|
||||
- `apps/web/messages/zh-TW.json` / `en.json`:
|
||||
- 新增 Work Items 面板文案;英文語系維持繁中文案鏡像。
|
||||
- `apps/api/tests/test_adr100_remediation_service.py`:
|
||||
- 補 ticket preview / dry-run history 測試,鎖定不寫 incident、不寫 auto-repair、不建立外部 ticket。
|
||||
|
||||
**驗證**:
|
||||
|
||||
- Local validation:
|
||||
- `python3 -m py_compile apps/api/src/services/adr100_remediation_service.py apps/api/tests/test_adr100_remediation_service.py`
|
||||
- `DATABASE_URL=postgresql://test:test@localhost:5432/test PYTHONPATH=apps/api /Users/ogt/.pyenv/shims/pytest apps/api/tests/test_adr100_remediation_service.py apps/api/tests/test_adr100_slo_status_service.py -q` → `16 passed`
|
||||
- `python3 -m json.tool apps/web/messages/zh-TW.json`
|
||||
- `python3 -m json.tool apps/web/messages/en.json`
|
||||
- `pnpm --dir apps/web exec tsc --noEmit --tsBuildInfoFile /tmp/awoooi-work-items-adr100-remediation.tsbuildinfo`
|
||||
- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work NEXT_PRIVATE_BUILD_WORKER_COUNT=1 pnpm --dir apps/web run build`
|
||||
- `git diff --check`
|
||||
- `python3 scripts/security/security-mirror-progress-guard.py --root .` → `SECURITY_MIRROR_PROGRESS_GUARD_OK`
|
||||
- Gitea / deployment:
|
||||
- `a7b807db feat(adr100): surface playbook ticket remediation` 已推 `gitea main`;GitHub 未推。
|
||||
- 首次 push CD:`3547` code-review success;`3546` build-and-deploy failure,原因為 Gitea 在 deploy marker push 期間重啟,production 未切換。
|
||||
- 補跑 `cd.yaml` workflow_dispatch:`3548` success,部署 `a7b807db`。
|
||||
- 後續另一段前端工作推進到 `fa29f856 fix(web): surface IwoooS S4.9 draft radar`,其包含本次 ADR-100 commit;最終 `3549` CD success、`3550` code-review success,deploy marker `e8f4d16b chore(cd): deploy fa29f85 [skip ci]`。
|
||||
- 最終 production image:
|
||||
- `awoooi-api=192.168.0.110:5000/awoooi/api:fa29f856b073ff13c30d9e0ec659178e04fef15a`,Ready `2/2`。
|
||||
- `awoooi-worker=192.168.0.110:5000/awoooi/api:fa29f856b073ff13c30d9e0ec659178e04fef15a`,Ready `1/1`。
|
||||
- `awoooi-web=192.168.0.110:5000/awoooi/web:fa29f856b073ff13c30d9e0ec659178e04fef15a`,Ready `2/2`。
|
||||
- Production smoke:`ALERT_CHAIN_API_HEALTH_RETRY_DELAY=1 python3 scripts/alert_chain_smoke_test.py --api-url https://awoooi.wooo.work --json` → `PASSED — 8/8 checks passed in 0.8s`。
|
||||
- Production ADR-100 API:
|
||||
- selected work item:`verification:INC-20260601-DDB0AC:9407ec90-1efb-4be8-82a0-aac7759a172d`。
|
||||
- `remediation_status=needs_playbook_ticket`、`remediation_action=promote_diagnostic_to_repair_playbook`。
|
||||
- preview:`mode=ticket`、`allowed=true`、`agent_id=openclaw_playbook_planner`、`required_scope=record_only`、writes=`alert_operation_log,timeline`。
|
||||
- dry-run history:`verification_result_preview=ticket_proposal`、`writes_incident_state=false`、`writes_auto_repair_result=false`。
|
||||
- Production browser readback:
|
||||
- `/zh-TW/awooop/work-items?project_id=awoooi&_v=fa29f856-adr100-ticket#adr100-remediation`
|
||||
- `ADR-100 補救工作佇列=true`、`補救 8 筆=true`、`needs_playbook_ticket=true`、`observe_only_playbook=true`、`promote_diagnostic_to_repair_playbook=true`、`預檢 / 草稿=true`。
|
||||
- i18n fallback key:`false`;horizontal overflow:`0`。
|
||||
|
||||
**目前整體進度(本階段完成後)**:
|
||||
|
||||
- ADR-100 非成功驗證補救工作項:約 `90%`;已能把 observe-only 歷史項轉成 record-only PlayBook 改造草稿與 Work Items 操作面。
|
||||
- Docker 診斷型 PlayBook 守門:約 `95%`;仍需下一次真實 Docker 告警證明不再新增假陽性 execution。
|
||||
- 真正 verified auto-repair 成功樣本:仍約 `3-4%`;本階段補的是「可追蹤與改造入口」,不是把歷史項改寫為成功。
|
||||
- 完整 AI 自動化飛輪總進度:維持 `61%`;除非 production 出現可追溯 `verified_success` 與 24h 穩定資料,不能上調。
|
||||
|
||||
## 2026-06-01|IwoooS S4.9 補件題目雷達落地
|
||||
|
||||
**背景**:
|
||||
|
||||
Reference in New Issue
Block a user