fix(web): refresh IwoooS rollout risk readback
All checks were successful
Code Review / ai-code-review (push) Successful in 16s
CD Pipeline / tests (push) Successful in 1m45s
CD Pipeline / build-and-deploy (push) Successful in 7m56s
CD Pipeline / post-deploy-checks (push) Successful in 3m25s

This commit is contained in:
Your Name
2026-06-27 14:11:21 +08:00
parent f791107938
commit d304b48bb3
4 changed files with 34 additions and 28 deletions

View File

@@ -20285,8 +20285,8 @@
},
"rolloutRiskReadOnly": {
"eyebrow": "部署風險只讀卡",
"title": "CD 已完成,但 ArgoCD 風險仍不能假裝全綠",
"subtitle": "風險來源部署 marker 為 16756d24該次 CD smoke 與 API health 通過,但 `AWOOOI_ROLLOUT_RISK=1` 仍存在,因 ArgoCD health 為 Degraded 且部分資源 OutOfSync。此卡只顯示風險,不修復、不同步、不重啟、不開執行期。",
"title": "正式讀回已綠,但 CD rollout timeout 不能假裝全綠",
"subtitle": "風險來源部署 marker 為 52e942e19CD #3601 已將 ArgoCD 同步到該 revision但 build-and-deploy 在 rollout 等待時 timeout當下 health Progressingpost-deploy checks 被略過。production API 與桌機 / 手機 smoke 已綠;此卡只顯示 no-false-green 風險,不修復、不同步、不重啟、不開執行期。",
"signalLabel": "訊號",
"stateLabel": "狀態",
"boundaryTitle": "部署風險邊界",
@@ -20294,7 +20294,7 @@
"summary": {
"sourceDeployMarker": {
"label": "風險來源",
"detail": "產生此風險證據的部署 marker不等於目前最新部署。"
"detail": "目前正式讀回的 deploy marker同時也是 rollout timeout 的證據來源。"
},
"rolloutRisk": {
"label": "風險訊號",
@@ -20307,16 +20307,16 @@
},
"items": {
"argocdHealth": {
"title": "ArgoCD health 降級",
"body": "CD log 顯示 health=Degraded這是只讀風險證據需要另行盤點來源不能被 smoke 成功覆蓋。"
"title": "ArgoCD health 仍在轉換",
"body": "CD log 顯示 ArgoCD 已 Synced 到 52e942e1但 health 仍為 Progressing這是只讀風險證據不能被 route 200 或 smoke 成功覆蓋。"
},
"resourceSync": {
"title": "部分資源同步",
"body": "CD log 顯示部分資源 OutOfSync;目前只標示風險,不執行 ArgoCD sync、kubectl 或 host 操作。"
"title": "GitOps revision 已同步",
"body": "CD log 顯示 GitOps revision 已同步,但 rollout 等待超時;目前只標示風險,不執行 ArgoCD sync、kubectl 或 host 操作。"
},
"smokePassed": {
"title": "API 與煙霧測試通過",
"body": "API health 與 Playwright smoke 通過代表服務可讀,不代表 GitOps 狀態已全綠。"
"title": "正式 API 與頁面讀回通過",
"body": "API health、owner evidence intake API、IwoooS 桌機與手機 smoke 通過代表服務可讀,不代表 CD workflow 或 GitOps rollout 已全綠。"
},
"riskBoundary": {
"title": "執行期閘門仍為 0",

View File

@@ -20285,8 +20285,8 @@
},
"rolloutRiskReadOnly": {
"eyebrow": "部署風險只讀卡",
"title": "CD 已完成,但 ArgoCD 風險仍不能假裝全綠",
"subtitle": "風險來源部署 marker 為 16756d24該次 CD smoke 與 API health 通過,但 `AWOOOI_ROLLOUT_RISK=1` 仍存在,因 ArgoCD health 為 Degraded 且部分資源 OutOfSync。此卡只顯示風險,不修復、不同步、不重啟、不開執行期。",
"title": "正式讀回已綠,但 CD rollout timeout 不能假裝全綠",
"subtitle": "風險來源部署 marker 為 52e942e19CD #3601 已將 ArgoCD 同步到該 revision但 build-and-deploy 在 rollout 等待時 timeout當下 health Progressingpost-deploy checks 被略過。production API 與桌機 / 手機 smoke 已綠;此卡只顯示 no-false-green 風險,不修復、不同步、不重啟、不開執行期。",
"signalLabel": "訊號",
"stateLabel": "狀態",
"boundaryTitle": "部署風險邊界",
@@ -20294,7 +20294,7 @@
"summary": {
"sourceDeployMarker": {
"label": "風險來源",
"detail": "產生此風險證據的部署 marker不等於目前最新部署。"
"detail": "目前正式讀回的 deploy marker同時也是 rollout timeout 的證據來源。"
},
"rolloutRisk": {
"label": "風險訊號",
@@ -20307,16 +20307,16 @@
},
"items": {
"argocdHealth": {
"title": "ArgoCD health 降級",
"body": "CD log 顯示 health=Degraded這是只讀風險證據需要另行盤點來源不能被 smoke 成功覆蓋。"
"title": "ArgoCD health 仍在轉換",
"body": "CD log 顯示 ArgoCD 已 Synced 到 52e942e1但 health 仍為 Progressing這是只讀風險證據不能被 route 200 或 smoke 成功覆蓋。"
},
"resourceSync": {
"title": "部分資源同步",
"body": "CD log 顯示部分資源 OutOfSync;目前只標示風險,不執行 ArgoCD sync、kubectl 或 host 操作。"
"title": "GitOps revision 已同步",
"body": "CD log 顯示 GitOps revision 已同步,但 rollout 等待超時;目前只標示風險,不執行 ArgoCD sync、kubectl 或 host 操作。"
},
"smokePassed": {
"title": "API 與煙霧測試通過",
"body": "API health 與 Playwright smoke 通過代表服務可讀,不代表 GitOps 狀態已全綠。"
"title": "正式 API 與頁面讀回通過",
"body": "API health、owner evidence intake API、IwoooS 桌機與手機 smoke 通過代表服務可讀,不代表 CD workflow 或 GitOps rollout 已全綠。"
},
"riskBoundary": {
"title": "執行期閘門仍為 0",

View File

@@ -2202,24 +2202,27 @@ const agentBountySecurityOnboardingBoundaries = [
] as const
const rolloutRiskReadOnlySummary = [
{ key: 'sourceDeployMarker', value: '16756d24', icon: GitBranch, tone: 'warn' },
{ key: 'sourceDeployMarker', value: '52e942e19', icon: GitBranch, tone: 'warn' },
{ key: 'rolloutRisk', value: '1', icon: AlertTriangle, tone: 'warn' },
{ key: 'runtimeGate', value: '0', icon: Lock, tone: 'locked' },
] as const
const rolloutRiskReadOnlyItems: RolloutRiskReadOnlyItem[] = [
{ key: 'argocdHealth', signal: 'RR1', state: 'Degraded', icon: Cloud, tone: 'warn' },
{ key: 'resourceSync', signal: 'RR2', state: 'OutOfSync', icon: Workflow, tone: 'warn' },
{ key: 'smokePassed', signal: 'RR3', state: '通過', icon: CheckCircle2, tone: 'steady' },
{ key: 'argocdHealth', signal: 'RR1', state: 'Progressing', icon: Cloud, tone: 'warn' },
{ key: 'resourceSync', signal: 'RR2', state: 'Synced', icon: Workflow, tone: 'warn' },
{ key: 'smokePassed', signal: 'RR3', state: '讀回綠', icon: CheckCircle2, tone: 'steady' },
{ key: 'riskBoundary', signal: 'RR4', state: '不開閘', icon: Lock, tone: 'locked' },
]
const rolloutRiskReadOnlyBoundaries = [
'rollout_risk_read_only_card_count=4',
'rollout_risk_source_deploy_marker=16756d24',
'rollout_risk_source_deploy_marker=52e942e19',
'rollout_risk_source_cd_run=3601',
'rollout_risk_awoooi_rollout_risk=1',
'rollout_risk_argocd_health=Degraded',
'rollout_risk_resource_sync=OutOfSync',
'rollout_risk_argocd_health=Progressing',
'rollout_risk_resource_sync=Synced',
'rollout_risk_failure_step=Deploy_to_K8s_ArgoCD_GitOps',
'rollout_risk_post_deploy_checks=skipped',
'rollout_risk_api_health_passed=true',
'rollout_risk_playwright_smoke_passed=true',
'rollout_risk_requires_read_only_triage=true',

View File

@@ -18434,10 +18434,13 @@ def validate(root: Path) -> None:
)
for text in [
"rollout_risk_read_only_card_count=4",
"rollout_risk_source_deploy_marker=16756d24",
"rollout_risk_source_deploy_marker=52e942e19",
"rollout_risk_source_cd_run=3601",
"rollout_risk_awoooi_rollout_risk=1",
"rollout_risk_argocd_health=Degraded",
"rollout_risk_resource_sync=OutOfSync",
"rollout_risk_argocd_health=Progressing",
"rollout_risk_resource_sync=Synced",
"rollout_risk_failure_step=Deploy_to_K8s_ArgoCD_GitOps",
"rollout_risk_post_deploy_checks=skipped",
"rollout_risk_api_health_passed=true",
"rollout_risk_playwright_smoke_passed=true",
"rollout_risk_requires_read_only_triage=true",