diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 87abfeebd..1bb3c6c86 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,43 @@ +## 2026-06-05|IwoooS P2-D2 AIOps 範例資料模式上線 + +**背景**:接續 IwoooS P2-D2 註解語氣清理,本段處理 D1 backlog 中的 `AIops mock-data` 與 GenUI 測試語氣。這是可見 / bundle 文案治理,不是 owner response、runtime gate、Kali 維護、GitHub primary、自動修復或正式 API 行為變更。 + +**本輪完成**: +- `apps/web/src/components/aiops/timeline/mock-data.ts` 重新命名為 `sample-incidents.ts`,匯出 `SAMPLE_TIMELINE_INCIDENTS`,保留 `NEXT_PUBLIC_AIOPS_TIMELINE_MOCK=true` 環境變數相容。 +- AIOps timeline UI 將舊 `MOCK 模式` badge 改為 `範例資料`,避免被誤讀為正式 incident evidence。 +- `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json` 將 `mockBadge` 改為 `sampleBadge`,兩份繁中鏡像維持一致。 +- GenUI 測試註解與 Neural / OpenClaw 註解改為「測試替身 / 範例資料」語氣;測試 API `vi.mock` 保留不改。 +- Code commit `d5ce17c7 fix(web): 標示 AIOps 範例資料模式` 已推 `gitea main`,後續 fast-forward 納入 deploy marker `305b8175 chore(cd): deploy d5ce17c [skip ci]`。 + +**完成度更新**: +- P2-D2 AIOps 範例資料模式 slice:本地 `100%`,正式站 `100%`。 +- P2 全站繁中治理:`47% → 49%`;此調整只代表 AIOps sample/mock 命名、測試語氣與 bundle 字串收斂,不代表全站 TSX hardcoded 可見文案已完成搬遷。 +- IwoooS headline:維持 `64%`。 +- framework / read-only evidence / frontend visualization:維持 `92%`。 +- runtime landing:維持 `40-45%`。 +- owner response received / accepted:`0 / 0`。 +- active runtime gate:`0`。 + +**驗證**: +- 最新同步基線:先 `git fetch gitea main`,並 fast-forward 納入 `10f08c42`、`a367227d`、`96df2231`、`58261a43` 後再推送;沒有 force push。 +- 殘留掃描:`統帥`、`MOCK 模式`、`MOCK_INCIDENTS`、`mock-data`、`Mock Data`、`Mock React`、`MOCK_PENDING`、`MOCK 常數`、`mockBadge` 命中 `0`。 +- i18n mirror:`I18N_JSON_MIRROR_OK leaves=8912`。 +- `git diff --check` / staged diff check:通過。 +- `pnpm --filter @awoooi/web typecheck`:通過。 +- `NEXT_PUBLIC_API_URL=https://awoooi.wooo.work NEXT_PRIVATE_BUILD_WORKER_COUNT=1 SENTRY_SUPPRESS_GLOBAL_ERROR_HANDLER_FILE_WARNING=1 pnpm --filter @awoooi/web build`:通過;`/zh-TW/aiops/timeline` First Load JS `232 kB`。 +- `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`。 +- 本地 sample mode desktop `http://127.0.0.1:3121/zh-TW/aiops/timeline?_v=10f08c42-d2-sample-local-desktop`:`範例資料`、`3 筆事件` 可見;舊 `MOCK 模式` 不可見;`horizontalOverflow=0`;截圖 `/tmp/awoooi-d2-sample-local-desktop-10f08c42.png`。 +- 本地 sample mode mobile `390x844`:`範例資料`、`3 筆事件` 可見;舊 `MOCK 模式` 不可見;`horizontalOverflow=0`;截圖 `/tmp/awoooi-d2-sample-local-mobile-10f08c42.png`。 +- Production asset string probe:`sampleBadge / 範例資料` 命中,`mockBadge / MOCK 模式` 命中 `0`。 +- Production desktop `https://awoooi.wooo.work/zh-TW/aiops/timeline?_v=305b8175-d2-aiops-prod-desktop`,viewport `1440x1000`:`AIOps 全景時序` 可見,舊 mock 文案可見命中 `0`,HTML 舊 key 命中 `0`,`horizontalOverflow=0`;截圖 `/tmp/awoooi-d2-aiops-prod-desktop-305b8175.png`。 +- Production mobile `https://awoooi.wooo.work/zh-TW/aiops/timeline?_v=305b8175-d2-aiops-prod-mobile`,viewport `390x844`:`AIOps 全景時序` 可見,舊 mock 文案可見命中 `0`,HTML 舊 key 命中 `0`,`horizontalOverflow=0`;截圖 `/tmp/awoooi-d2-aiops-prod-mobile-305b8175.png`。 + +**目前邊界**: +- Production 正式環境沒有開 `NEXT_PUBLIC_AIOPS_TIMELINE_MOCK=true`,因此頁面不顯示 sample badge;正式頁仍走 API / loading state,這是預期行為。 +- 本段不代表任何 incident timeline API 資料完整、AI automation runtime gate 開啟或自動修復已授權。 +- 不 SSH、不 active scan、不 Kali `/execute`、不主機維護、不 repo / refs / workflow / secret / primary 變更。 + ## 2026-06-05|P1-105 復原演練批准包模板正式部署 **背景**:接續 AI Agent 自動化工作清單,統帥批准依優先順序推進 P1-105;本段目標是把 Backup / DR restore drill、credential escrow review、K8s resource recovery、observability recovery 與 route reconstruction 轉成可審核批准包,不執行任何實際復原。 diff --git a/docs/workplans/2026-06-04-iwooos-security-governance-p0.md b/docs/workplans/2026-06-04-iwooos-security-governance-p0.md index 245c1ef87..eeba3de7f 100644 --- a/docs/workplans/2026-06-04-iwooos-security-governance-p0.md +++ b/docs/workplans/2026-06-04-iwooos-security-governance-p0.md @@ -9,11 +9,12 @@ | 工作視窗 | IwoooS / AWOOOI 資安治理 P0 | | 本次乾淨 worktree | `/private/tmp/awoooi-iwooos-i18n-d2-20260605` | | 本次分支 | `codex/iwooos-i18n-d2-20260605` | -| 最新觀察到的 `gitea/main` | `a367227d feat(api): 新增復原演練批准包模板`;D2 deploy marker 為 `2857da80` | +| 最新觀察到的 `gitea/main` | `305b8175 chore(cd): deploy d5ce17c [skip ci]`;前一個 P1-105 docs commit 為 `58261a43` | | 最新 P2-D0 繁中文案基準 | code `cd2275a2`、deploy marker `1920bd08`、code-review `2565`、CD `2564` | | 最新 P2-D1 本地掃描基準 | `VISIBLE_LITERAL_TARGET_SCAN_OK files=221`;全站 TS / TSX 中文 literal 盤點 `35` 檔 / `752` 行;註解語氣 backlog `32` 筆 | | 最新 P2-D1 正式部署基準 | code `f9bf8a28`、deploy marker `879b0a36`、CD `2578`、code-review `2579` | | 最新 P2-D2 註解語氣基準 | code `6ccdf199`、deploy marker `2857da80`、CD `2580`、code-review `2581`;`apps/web/src` 內部稱謂殘留 `32 → 0`;D1 高風險詞命中 `0` | +| 最新 P2-D2 AIOps 範例資料基準 | code `d5ce17c7`、deploy marker `305b8175`;AIOps sample/mock 字串、GenUI 測試語氣與 `sampleBadge` 已正式驗證 | | 前一個正式 IwoooS 候選基準 | code `7b8fc093`、deploy marker `45c63488`、LOGBOOK `02cadee6` | | 最新導航 IA 基準 | code `973fc7a4`、LOGBOOK `2555c811`、deploy marker `0260ec89` | | 禁止事項 | 不 force push、不 destructive git、不 SSH 修改主機、不 active scan、不收 secrets 明文、不把 AwoooP approval 當資安批准、不把 UI 可見當 runtime 授權 | @@ -33,7 +34,7 @@ | VibeWork 納入 IwoooS | P1-9 onboarding handoff package `100%`;產品 / repo / surface / owner / evidence 邊界已可交接 | 否 | 保留 VibeWork 獨立產品邊界;不部署、不掃描、不改 repo / refs / workflow、不收 secrets | | IwoooS P2 首屏 UX / 資安圖表 | 本地階段 `100%`;正式站 `100%`;本輪前端發佈 `100%` | 否 | 首屏已精簡成摘要、資安網圖、拓樸圖譜、決策閘門與矩陣;S4.9 與長證據改為展開式。這只完成 P2 視覺 / 資訊架構 slice,不調高 IwoooS 整體 64% | | Frontend design system / visual grammar | 維持 `60%` | 否 | 本輪只推進 IwoooS 頁面資訊架構與圖表排序,不宣稱全站設計系統完成 | -| P2 全站繁中治理 D0+D1+D2 註解語氣 | `47%` | 只限高風險可見 literal、盤點與註解語氣 | D0 已清 messages 高風險殘留;D1 已掃 `apps/web/src` 字串 literal 並修正高風險可見 / bundle 文案;D2 已清 `apps/web/src` 內部稱謂註解。全站 hardcoded TSX 可見 literal 仍需後續分批搬遷 | +| P2 全站繁中治理 D0+D1+D2 註解語氣 / AIOps sample | `49%` | 只限高風險可見 literal、盤點、註解語氣與 AIOps 範例資料命名 | D0 已清 messages 高風險殘留;D1 已掃 `apps/web/src` 字串 literal 並修正高風險可見 / bundle 文案;D2 已清 `apps/web/src` 內部稱謂註解,並把 AIOps sample/mock 命名與測試語氣收斂。全站 hardcoded TSX 可見 literal 仍需後續分批搬遷 | ## 2. P0 工作拆解與優先順序 @@ -46,7 +47,7 @@ | P0-2b | S4.9 request dispatch preflight 交接包 | 100% | 送件前檢查、交接封套欄位與送後不變條件已固定;dispatch authorized 仍 false | JSON parse、owner response guard、progress guard | | P0-3 | AwoooP 同步封包 | 100% | 已送至 AwoooP 平行工作 thread `019e9154-7d5e-7b72-85be-c9d97e43ecc9`;後續仍需每次推版前重新 fetch / fast-forward | 本文件、thread send readback、mirror checklist readback | | P0-4 | production live sanity 節點 | 100% | desktop / mobile / 展開區塊 / overflow / action href 檢查已完成 | Playwright production sanity 通過 | -| P0-5 | LOGBOOK 與完成度更新 | 100% | D2 code-review、CD、deploy marker 已回填;本段 comments-only,不補頁面 smoke | `docs/LOGBOOK.md` readback | +| P0-5 | LOGBOOK 與完成度更新 | 100% | D2 comments-only 與 D2 AIOps sample 可見 / bundle 變更皆已回填;AIOps sample 已補 local / production desktop + mobile smoke | `docs/LOGBOOK.md` readback | ## 3. S4.9 Owner Response Gate 規範 @@ -142,7 +143,7 @@ S4.9 是目前 IwoooS 64% 能往前的第一優先 gate。驗收前所有 count | P1 | Code Review 候選分類 | 前端體驗、測試補洞、文件同步、低風險重構;人工批准後才 Codex | 候選不自動改 code、不自動 deploy | | P2 | IwoooS UX 精簡 | 首屏保留進度誠實儀表、高層摘要、資安網圖、拓樸圖譜、決策閘門與矩陣;焦點導覽、深度地圖、證據流、解鎖佇列與 S4.9 草稿改成「首層證據與 S4.9 下鑽」展開區 | 本地 desktop/mobile 與正式站 desktop/mobile 已通過;水平溢出維持 0 | | P2 | 資安圖表專業化 | 主拓樸圖、攻擊路徑、主機 / 產品 / 版本來源關聯、決策閘門 flow 保留為主線;詳細證據與 scope 圖表改成下鑽 | 本地 build + browser 與正式站 browser 已通過 | -| P2 | 全站繁中檢查 | D0 已清 messages;D1 已完成 TS / TSX 高風險 literal 掃描與小修;D2 已清 `apps/web/src` 內部稱謂註解 `32 → 0` 並以 deploy marker `2857da80` 正式收尾,仍保留 `35` 檔 / `752` 行中文 literal backlog | comments-only 切片跑文字掃描、guard、diff check、TypeScript 與 CD post-deploy;後續可見文案搬遷需 i18n parse、key drift、placeholder drift、TypeScript、build、local / production desktop + mobile | +| P2 | 全站繁中檢查 | D0 已清 messages;D1 已完成 TS / TSX 高風險 literal 掃描與小修;D2 已清 `apps/web/src` 內部稱謂註解 `32 → 0`,並完成 AIOps sample/mock 命名與 `sampleBadge` 上線;仍保留 `35` 檔 / `752` 行中文 literal backlog | comments-only 切片跑文字掃描、guard、diff check、TypeScript 與 CD post-deploy;可見 / bundle 切片需 i18n parse、key drift、placeholder drift、TypeScript、build、local / production desktop + mobile | | P3 | AI Agent 評估 | NemoTron / Hermes / OpenClaw / ElephantAlpha dry-run、benchmark、成本、安全邊界 | 不切 production | | P3 | runtime gate 收斂 | owner evidence、人工批准、rollback、disable、post-check | production truth,不只 UI | @@ -277,6 +278,7 @@ P1 只讀重盤階段整體完成度:`70%`。它代表 freshness / inventory / | P2-D1 production `/zh-TW/iwooos` | desktop 1440x1000 / mobile 390x844 皆可載入,`IwoooS` 與「前台入口與既有資安頁」可見;展開整合區後「審查後修正候選」可見;`horizontalOverflow=0`、禁止 action href `0`、高風險詞命中 `0`;截圖 `/private/tmp/iwooos-i18n-d1-prod-desktop-879b0a36.png`、`/private/tmp/iwooos-i18n-d1-prod-mobile-879b0a36.png` | | P2-D1 production `/zh-TW/code-review` | desktop 1440x1000 / mobile 390x844 皆可載入,`平行工作同步` 可見;`跨 Session` 舊詞與高風險詞命中 `0`;`horizontalOverflow=0`;截圖 `/private/tmp/code-review-i18n-d1-prod-desktop-879b0a36.png`、`/private/tmp/code-review-i18n-d1-prod-mobile-879b0a36.png` | | P2-D2 註解語氣掃描 | `apps/web/src` 內 `統帥`、`188 基地真實血脈` 命中 `0`;D1 高風險詞命中 `0`;owner response guard、security mirror progress guard、`git diff --check`、`pnpm --filter @awoooi/web typecheck` 通過;Gitea code-review `2581` 成功、CD `2580` tests / build-and-deploy / post-deploy-checks 全部成功;deploy marker `2857da80`;本段 comments-only,無前台 DOM / CSS / bundle 行為變更,不需頁面 smoke | +| P2-D2 AIOps 範例資料模式 | code `d5ce17c7`、deploy marker `305b8175`;`mockBadge` 改 `sampleBadge`、`MOCK 模式` 改 `範例資料`、`mock-data.ts` 改 `sample-incidents.ts`;殘留掃描 `統帥 / MOCK 模式 / MOCK_INCIDENTS / mock-data / Mock Data / Mock React / MOCK_PENDING / MOCK 常數 / mockBadge` 命中 `0`;i18n mirror `8912` leaves;typecheck、build、owner response guard、security mirror progress guard、diff check 通過;local sample desktop/mobile 與 production desktop/mobile 均 `horizontalOverflow=0`;production HTML `sampleBadge / 範例資料` 可見、`mockBadge / MOCK 模式` 命中 `0` | 本輪驗證後仍維持: