From fec093b2e7c35c302ef60cbd98f257c629ee6791 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 11 Jun 2026 10:29:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(security):=20=E9=87=90=E6=B8=85=20rollout?= =?UTF-8?q?=20risk=20=E4=BE=86=E6=BA=90=E6=A8=99=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/messages/en.json | 8 ++++---- apps/web/messages/zh-TW.json | 8 ++++---- apps/web/src/app/[locale]/iwooos/page.tsx | 4 ++-- docs/LOGBOOK.md | 2 +- docs/security/IWOOOS-POSTURE-PROJECTION.md | 4 ++-- docs/security/iwooos-posture-projection.snapshot.json | 2 +- .../specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md | 2 +- scripts/security/security-mirror-progress-guard.py | 4 ++-- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 0f0a132a2..1b34fd8f5 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -14310,15 +14310,15 @@ "rolloutRiskReadOnly": { "eyebrow": "部署風險只讀卡", "title": "CD 已完成,但 ArgoCD 風險仍不能假裝全綠", - "subtitle": "最新正式部署 marker 為 16756d24;CD smoke 與 API health 通過,但 `AWOOOI_ROLLOUT_RISK=1` 仍存在,因 ArgoCD health 為 Degraded 且部分資源 OutOfSync。此卡只顯示風險,不修復、不同步、不重啟、不開執行期。", + "subtitle": "風險來源部署 marker 為 16756d24;該次 CD smoke 與 API health 通過,但 `AWOOOI_ROLLOUT_RISK=1` 仍存在,因 ArgoCD health 為 Degraded 且部分資源 OutOfSync。此卡只顯示風險,不修復、不同步、不重啟、不開執行期。", "signalLabel": "訊號", "stateLabel": "狀態", "boundaryTitle": "部署風險邊界", "boundaryIntro": "以下鍵值固定:部署完成、API health 與 smoke 通過不等於 GitOps 狀態全綠,也不代表 runtime gate、kubectl、ArgoCD sync、主機重啟或自動修復獲得授權。", "summary": { - "latestDeployMarker": { - "label": "部署標記", - "detail": "目前正式站對應的部署 marker。" + "sourceDeployMarker": { + "label": "風險來源", + "detail": "產生此風險證據的部署 marker,不等於目前最新部署。" }, "rolloutRisk": { "label": "風險訊號", diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 0f0a132a2..1b34fd8f5 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -14310,15 +14310,15 @@ "rolloutRiskReadOnly": { "eyebrow": "部署風險只讀卡", "title": "CD 已完成,但 ArgoCD 風險仍不能假裝全綠", - "subtitle": "最新正式部署 marker 為 16756d24;CD smoke 與 API health 通過,但 `AWOOOI_ROLLOUT_RISK=1` 仍存在,因 ArgoCD health 為 Degraded 且部分資源 OutOfSync。此卡只顯示風險,不修復、不同步、不重啟、不開執行期。", + "subtitle": "風險來源部署 marker 為 16756d24;該次 CD smoke 與 API health 通過,但 `AWOOOI_ROLLOUT_RISK=1` 仍存在,因 ArgoCD health 為 Degraded 且部分資源 OutOfSync。此卡只顯示風險,不修復、不同步、不重啟、不開執行期。", "signalLabel": "訊號", "stateLabel": "狀態", "boundaryTitle": "部署風險邊界", "boundaryIntro": "以下鍵值固定:部署完成、API health 與 smoke 通過不等於 GitOps 狀態全綠,也不代表 runtime gate、kubectl、ArgoCD sync、主機重啟或自動修復獲得授權。", "summary": { - "latestDeployMarker": { - "label": "部署標記", - "detail": "目前正式站對應的部署 marker。" + "sourceDeployMarker": { + "label": "風險來源", + "detail": "產生此風險證據的部署 marker,不等於目前最新部署。" }, "rolloutRisk": { "label": "風險訊號", diff --git a/apps/web/src/app/[locale]/iwooos/page.tsx b/apps/web/src/app/[locale]/iwooos/page.tsx index b7a59ce53..62d21e2f7 100644 --- a/apps/web/src/app/[locale]/iwooos/page.tsx +++ b/apps/web/src/app/[locale]/iwooos/page.tsx @@ -1971,7 +1971,7 @@ const agentBountySecurityOnboardingBoundaries = [ ] as const const rolloutRiskReadOnlySummary = [ - { key: 'latestDeployMarker', value: '16756d24', icon: GitBranch, tone: 'warn' }, + { key: 'sourceDeployMarker', value: '16756d24', icon: GitBranch, tone: 'warn' }, { key: 'rolloutRisk', value: '1', icon: AlertTriangle, tone: 'warn' }, { key: 'runtimeGate', value: '0', icon: Lock, tone: 'locked' }, ] as const @@ -1985,7 +1985,7 @@ const rolloutRiskReadOnlyItems: RolloutRiskReadOnlyItem[] = [ const rolloutRiskReadOnlyBoundaries = [ 'rollout_risk_read_only_card_count=4', - 'rollout_risk_latest_deploy_marker=16756d24', + 'rollout_risk_source_deploy_marker=16756d24', 'rollout_risk_awoooi_rollout_risk=1', 'rollout_risk_argocd_health=Degraded', 'rollout_risk_resource_sync=OutOfSync', diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index d664cf4b0..0d244af58 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -3,7 +3,7 @@ **背景**:上一輪 `agent-bounty-protocol` 納管後,CD `2635` 的 API health、Playwright smoke 與 rollout 成功,但仍記錄 `AWOOOI_ROLLOUT_RISK=1`,原因為 ArgoCD health `Degraded` 且部分資源 `OutOfSync`。本階段只把風險放進 IwoooS 只讀態勢,不執行 ArgoCD sync、kubectl、主機重啟、修復或部署操作。 **完成內容:** -- `/zh-TW/iwooos` 新增「部署風險只讀卡」,首層顯示 deploy marker `16756d24`、`AWOOOI_ROLLOUT_RISK=1`、ArgoCD `Degraded`、資源 `OutOfSync`、API / smoke 已通過與執行期閘門 `0`。 +- `/zh-TW/iwooos` 新增「部署風險只讀卡」,首層顯示風險來源 deploy marker `16756d24`、`AWOOOI_ROLLOUT_RISK=1`、ArgoCD `Degraded`、資源 `OutOfSync`、API / smoke 已通過與執行期閘門 `0`。 - 更新 `docs/security/iwooos-posture-projection.snapshot.json` 與 `docs/schemas/iwooos_posture_projection_v1.schema.json`,新增 rollout risk 只讀 summary 與 `display_rollout_risk_read_only`。 - 更新 `docs/security/IWOOOS-POSTURE-PROJECTION.md` 與 MASTER Living Changelog,記錄此卡只能做部署風險可見性,不得解讀成 GitOps 全綠或 runtime 授權。 - 更新 `scripts/security/security-mirror-progress-guard.py`,固定檢查 rollout risk 卡片、邊界鍵值、i18n key 與允許輸出。 diff --git a/docs/security/IWOOOS-POSTURE-PROJECTION.md b/docs/security/IWOOOS-POSTURE-PROJECTION.md index c9b44efdb..28918195b 100644 --- a/docs/security/IWOOOS-POSTURE-PROJECTION.md +++ b/docs/security/IWOOOS-POSTURE-PROJECTION.md @@ -29,7 +29,7 @@ IwoooS 首版只讀取或對齊以下已提交 evidence: | `source_control_primary_readiness_gate_v1` | GitHub primary readiness 仍為 0、候選 repo 與切換前置缺口 | | `kali_integration_status_v1` | Kali 112 observe-only 整合態勢 | | `vibework_iwooos_onboarding_handoff_v1` | VibeWork repo / product / surface / owner / evidence refs / 獨立產品邊界只讀 handoff | -| `docs/LOGBOOK.md` | 最新部署 marker、Gitea run 與 rollout risk 邊界紀錄 | +| `docs/LOGBOOK.md` | 部署 marker、Gitea run 與 rollout risk 邊界紀錄 | | `2026-06-04-iwooos-security-governance-p0.md` | IwoooS P0 完成度、優先順序、跨 Session 同步與驗證節點 | | `/iwooos` 前端路由 | 顯示入口,不提供執行按鈕 | | 既有前端資安頁面 | 只讀索引,不搬移原頁責任邊界、不新增執行控制 | @@ -88,7 +88,7 @@ IwoooS 首版只讀取或對齊以下已提交 evidence: 50. 6 個 AwoooP cross-session handoff packets,固定另一個 AwoooP Session 接手前要確認的 PR / branch、進度語義、guard commands、runtime 禁止動作、只讀輸入與下一個協調 gate,但不把 handoff 當 merge、deploy、primary switch、refs mutation、guard skip 或 production consumption。 51. 10 個 frontend surface reverse bridge statuses,顯示既有資安入口目前是 embedded bridge、direct bridge 或 AwoooP read-only candidate;這只是連接狀態,不代表 owner response、runtime authorization、Code Review blocker、Gitea/GitHub action 或任何執行控制。 52. 6 個 source control primary readiness items,顯示 GitHub primary 前置缺口:candidate repo inventory、primary ready counter、owner response validation、refs truth、workflow / secret name inventory、rollback ADR;這只是 readiness,不代表 repo 建立、visibility 變更、refs mutation、secret value collection、primary switch 或 Gitea 停用。 -53. 4 個 rollout risk read-only items,顯示最新部署 marker、`AWOOOI_ROLLOUT_RISK=1`、ArgoCD `Degraded` / `OutOfSync`、API health / smoke 已通過與執行期閘門仍為 0;這只是部署風險可見性,不代表 ArgoCD sync、kubectl、主機重啟、修復、部署或 runtime gate 已授權。 +53. 4 個 rollout risk read-only items,顯示風險來源部署 marker、`AWOOOI_ROLLOUT_RISK=1`、ArgoCD `Degraded` / `OutOfSync`、API health / smoke 已通過與執行期閘門仍為 0;這只是部署風險可見性,不代表 ArgoCD sync、kubectl、主機重啟、修復、部署或 runtime gate 已授權。 ## 3.1 既有前端資安頁面整合 diff --git a/docs/security/iwooos-posture-projection.snapshot.json b/docs/security/iwooos-posture-projection.snapshot.json index f4c070344..1c92000fd 100644 --- a/docs/security/iwooos-posture-projection.snapshot.json +++ b/docs/security/iwooos-posture-projection.snapshot.json @@ -192,7 +192,7 @@ "agent_bounty_security_onboarding_runtime_gate_count": 0, "rollout_risk_read_only_first_layer": true, "rollout_risk_read_only_card_count": 4, - "rollout_risk_latest_deploy_marker": "16756d24", + "rollout_risk_source_deploy_marker": "16756d24", "rollout_risk_awoooi_rollout_risk": 1, "rollout_risk_argocd_health": "Degraded", "rollout_risk_resource_sync": "OutOfSync", 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 1439050b5..107285fae 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 @@ -3624,7 +3624,7 @@ Trigger commit `f5cd37b7` 與 deploy marker `0ba92357` 已把 governance UI 的 **觸發**:`agent-bounty-protocol` 納入 IwoooS 只讀資安範圍後,正式 CD `2635` 顯示 API health、Playwright smoke 與 rollout 成功,但仍保留 `AWOOOI_ROLLOUT_RISK=1`,原因為 ArgoCD health `Degraded` 且部分資源 `OutOfSync`。需要避免團隊把 UI 可見、smoke 通過或部署 marker 誤讀成 GitOps 全綠或 runtime gate 已開。 **已推進:** -- IwoooS `/zh-TW/iwooos` 新增「部署風險只讀卡」,顯示最新 deploy marker `16756d24`、`AWOOOI_ROLLOUT_RISK=1`、ArgoCD `Degraded`、資源 `OutOfSync`、API / smoke 通過與執行期閘門 `0`。 +- IwoooS `/zh-TW/iwooos` 新增「部署風險只讀卡」,顯示風險來源 deploy marker `16756d24`、`AWOOOI_ROLLOUT_RISK=1`、ArgoCD `Degraded`、資源 `OutOfSync`、API / smoke 通過與執行期閘門 `0`。 - `iwooos_posture_projection_v1` snapshot / schema 新增 rollout risk 只讀 summary 欄位與 `display_rollout_risk_read_only` 允許輸出。 - `security-mirror-progress-guard.py` 固定檢查 rollout risk 卡片、邊界鍵值與 i18n 鏡像,避免後續誤刪或改成操作入口。 diff --git a/scripts/security/security-mirror-progress-guard.py b/scripts/security/security-mirror-progress-guard.py index da42082f7..ecdb2cb95 100755 --- a/scripts/security/security-mirror-progress-guard.py +++ b/scripts/security/security-mirror-progress-guard.py @@ -11188,7 +11188,7 @@ def validate(root: Path) -> None: ) for text in [ "rollout_risk_read_only_card_count=4", - "rollout_risk_latest_deploy_marker=16756d24", + "rollout_risk_source_deploy_marker=16756d24", "rollout_risk_awoooi_rollout_risk=1", "rollout_risk_argocd_health=Degraded", "rollout_risk_resource_sync=OutOfSync", @@ -11240,7 +11240,7 @@ def validate(root: Path) -> None: list(web_messages_en["iwooos"]["rolloutRiskReadOnly"].keys()), key, ) - for key in ["latestDeployMarker", "rolloutRisk", "runtimeGate"]: + for key in ["sourceDeployMarker", "rolloutRisk", "runtimeGate"]: assert_contains( "web_messages.zh-TW.iwooos.rolloutRiskReadOnly.summary", list(web_messages_zh["iwooos"]["rolloutRiskReadOnly"]["summary"].keys()),