diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index 1bb3c6c8..1b23bc6c 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,44 @@ +## 2026-06-05|IwoooS P2-D2 Code Review 候選分類上線 + +**背景**:接續 IwoooS P2-D2 AIOps 範例資料模式,本段處理 `/zh-TW/code-review` 的可見文案與 Code Review 修正候選分類。目標是讓候選清楚分為「前端體驗、測試補洞、文件同步、低風險重構」,並明確標示人工批准前不自動改 code、不自動 merge、不自動部署。這不是 owner response、runtime gate、Kali 維護、GitHub primary、自動修復或正式執行授權。 + +**本輪完成**: +- `apps/web/src/app/[locale]/code-review/page.tsx` 改用 `next-intl` `codeReview` namespace,移除本頁可見中文 literal。 +- `apps/web/messages/zh-TW.json` / `apps/web/messages/en.json` 新增 `codeReview` 鏡像文案,兩份維持繁中內容一致。 +- Code Review 候選分類改為 `前端體驗`、`測試補洞`、`文件同步`、`低風險重構`,另以 `CR-BLOCK-01` 標示 Kali、掃描、GitHub primary、正式部署與執行期閘門禁止自動轉派。 +- 新增「人工批准後才進入 Codex coding」流程:候選 → 人工批准 → Codex 任務 → PR / patch → Guard → Deploy。 +- `scripts/security/security-mirror-progress-guard.py` 同步支援 Code Review 可見文案搬到 i18n messages 後的檢查方式;結構與旗標仍檢查 TSX。 +- Code commit `292cfec9 fix(web): 整理 Code Review 候選分類` 已推 `gitea main`,deploy marker `4cfe5ff7 chore(cd): deploy 292cfec [skip ci]` 已追加。 + +**完成度更新**: +- P2-D2 Code Review 候選分類 slice:本地 `100%`,正式站 `100%`。 +- P2 全站繁中治理:`49% → 51%`;此調整只代表 Code Review route 可見文案 i18n 化與候選分類可讀性完成,不代表全站 TSX hardcoded literal 已全部搬遷。 +- IwoooS headline:維持 `64%`。 +- framework / read-only evidence / frontend visualization:維持 `92%`。 +- runtime landing:維持 `40-45%`。 +- owner response received / accepted:`0 / 0`。 +- active runtime gate:`0`。 + +**驗證**: +- i18n mirror:`I18N_JSON_MIRROR_OK leaves=9004`,missing / added / diff 皆 `0`。 +- `rg -n "[\\p{Han}]" 'apps/web/src/app/[locale]/code-review/page.tsx'`:命中 `0`。 +- 高風險詞掃描:`跨 Session`、`統帥`、`MOCK 模式`、`mockBadge`、`reviewer candidate`、`runtime 授權` 命中 `0`。 +- `git 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/code-review` First Load JS `239 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`。 +- 本地 desktop `http://127.0.0.1:3122/zh-TW/code-review?_v=code-review-candidates-d0-local-desktop`:標題、候選分類、四類候選、人工批准流程、禁止 runtime 轉派與 `action_buttons_allowed=false` 可見;高風險詞命中 `0`;`horizontalOverflow=0`;截圖 `/tmp/awoooi-code-review-candidates-d0-local-desktop.png`。 +- 本地 mobile `390x844`:同上可見;高風險詞命中 `0`;`horizontalOverflow=0`;截圖 `/tmp/awoooi-code-review-candidates-d0-local-mobile.png`。 +- Gitea code-review run `2587`:成功。 +- Gitea CD run `2586`:tests / build-and-deploy / post-deploy-checks 全部成功。 +- Production desktop `https://awoooi.wooo.work/zh-TW/code-review?_v=4cfe5ff7-code-review-candidates-d0-prod-desktop`,viewport `1440x1000`:標題、候選分類、四類候選、人工批准流程、禁止 runtime 轉派與 `action_buttons_allowed=false` 可見;高風險詞命中 `0`;`horizontalOverflow=0`;截圖 `/tmp/awoooi-code-review-candidates-d0-prod-desktop-4cfe5ff7.png`。 +- Production mobile `https://awoooi.wooo.work/zh-TW/code-review?_v=4cfe5ff7-code-review-candidates-d0-prod-mobile`,viewport `390x844`:同上可見;高風險詞命中 `0`;`horizontalOverflow=0`;截圖 `/tmp/awoooi-code-review-candidates-d0-prod-mobile-4cfe5ff7.png`。 + +**目前邊界**: +- 本段只整理 Code Review 候選分類與前端文案,不代表候選可自動改 code、自動 merge、自動正式部署或開啟 runtime gate。 +- 不 SSH、不 active scan、不 Kali `/execute`、不主機維護、不 repo / refs / workflow / secret / primary 變更。 + ## 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 行為變更。 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 eeba3de7..18fe2d58 100644 --- a/docs/workplans/2026-06-04-iwooos-security-governance-p0.md +++ b/docs/workplans/2026-06-04-iwooos-security-governance-p0.md @@ -7,14 +7,15 @@ | 項目 | 目前值 | |------|--------| | 工作視窗 | IwoooS / AWOOOI 資安治理 P0 | -| 本次乾淨 worktree | `/private/tmp/awoooi-iwooos-i18n-d2-20260605` | -| 本次分支 | `codex/iwooos-i18n-d2-20260605` | -| 最新觀察到的 `gitea/main` | `305b8175 chore(cd): deploy d5ce17c [skip ci]`;前一個 P1-105 docs commit 為 `58261a43` | +| 本次乾淨 worktree | `/private/tmp/awoooi-iwooos-code-review-candidates-d0-20260605` | +| 本次分支 | `codex/iwooos-code-review-candidates-d0-20260605` | +| 最新觀察到的 `gitea/main` | `4cfe5ff7 chore(cd): deploy 292cfec [skip ci]` | | 最新 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` 已正式驗證 | +| 最新 P2-D2 Code Review 候選分類基準 | code `292cfec9`、deploy marker `4cfe5ff7`、CD `2586`、code-review `2587`;Code Review route 可見文案已搬到 `codeReview` i18n namespace,四類候選分類與人工批准流程已正式驗證 | | 前一個正式 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 授權 | @@ -34,7 +35,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 註解語氣 / AIOps sample | `49%` | 只限高風險可見 literal、盤點、註解語氣與 AIOps 範例資料命名 | D0 已清 messages 高風險殘留;D1 已掃 `apps/web/src` 字串 literal 並修正高風險可見 / bundle 文案;D2 已清 `apps/web/src` 內部稱謂註解,並把 AIOps sample/mock 命名與測試語氣收斂。全站 hardcoded TSX 可見 literal 仍需後續分批搬遷 | +| P2 全站繁中治理 D0+D1+D2 註解語氣 / AIOps sample / Code Review 候選分類 | `51%` | 只限高風險可見 literal、盤點、註解語氣、AIOps 範例資料命名與 Code Review route i18n | D0 已清 messages 高風險殘留;D1 已掃 `apps/web/src` 字串 literal 並修正高風險可見 / bundle 文案;D2 已清 `apps/web/src` 內部稱謂註解、AIOps sample/mock 命名,並將 Code Review 可見文案搬進 `codeReview` namespace。全站 hardcoded TSX 可見 literal 仍需後續分批搬遷 | ## 2. P0 工作拆解與優先順序 @@ -47,7 +48,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 comments-only 與 D2 AIOps sample 可見 / bundle 變更皆已回填;AIOps sample 已補 local / production desktop + mobile smoke | `docs/LOGBOOK.md` readback | +| P0-5 | LOGBOOK 與完成度更新 | 100% | D2 comments-only、D2 AIOps sample 與 D2 Code Review 候選分類皆已回填;可見 / bundle 變更皆已補 local / production desktop + mobile smoke | `docs/LOGBOOK.md` readback | ## 3. S4.9 Owner Response Gate 規範 @@ -140,10 +141,10 @@ S4.9 是目前 IwoooS 64% 能往前的第一優先 gate。驗收前所有 count | P1 | Kali 112 維護窗口草案 | 1994 pending updates、`networking.service` failed、服務硬化 0/4、rollback、post-check | P1-7 草案已完成;不 `apt upgrade`、不 restart | | P1 | 111 / 168 主機 scope 補強 | P1-8 已補 `DEV-HOSTS-111-168-SCOPE-HANDOFF.md`、snapshot 與 schema;scope、maintenance window、credential handling、rollback owner、validation 指標已可交接 | observe-only;不 credentialed scan、不改 route / CORS / firewall / service | | P1 | VibeWork 納入 IwoooS | P1-9 已補 `VIBEWORK-IWOOOS-ONBOARDING-HANDOFF.md`、snapshot 與 schema;repo、product、surface、owner、evidence refs、資料分級、部署邊界與獨立產品邊界已可交接 | 繁中 docs/specs;不合併產品責任、不部署、不改 refs | -| P1 | Code Review 候選分類 | 前端體驗、測試補洞、文件同步、低風險重構;人工批准後才 Codex | 候選不自動改 code、不自動 deploy | +| P1 | Code Review 候選分類 | D2-D0 已在 `/zh-TW/code-review` 顯示前端體驗、測試補洞、文件同步、低風險重構與禁止自動轉派;人工批准後才 Codex | 候選不自動改 code、不自動 merge、不自動 deploy;production desktop/mobile 已驗證 | | 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`,並完成 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 | +| P2 | 全站繁中檢查 | D0 已清 messages;D1 已完成 TS / TSX 高風險 literal 掃描與小修;D2 已清 `apps/web/src` 內部稱謂註解 `32 → 0`、AIOps sample/mock 命名與 `sampleBadge` 上線,並完成 Code Review route i18n 化;仍保留全站中文 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 | @@ -279,6 +280,7 @@ P1 只讀重盤階段整體完成度:`70%`。它代表 freshness / inventory / | 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` | +| P2-D2 Code Review 候選分類 | code `292cfec9`、deploy marker `4cfe5ff7`;`/zh-TW/code-review` 可見文案搬進 `codeReview` namespace,i18n mirror `9004` leaves;TSX 中文 literal 命中 `0`;四類候選分類、人工批准流程、禁止 runtime 轉派與 `action_buttons_allowed=false` 可見;typecheck、build、owner response guard、security mirror progress guard、diff check 通過;Gitea code-review `2587` 成功、CD `2586` tests / build-and-deploy / post-deploy-checks 全部成功;local / production desktop + mobile 均 `horizontalOverflow=0` | 本輪驗證後仍維持: