From b5f895804e38d50e213328b8ab840ecd0d095c6f Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 3 Jul 2026 08:28:26 +0800 Subject: [PATCH] fix(awooop): show reboot blockers after backup clear --- apps/web/messages/en.json | 4 ++- apps/web/messages/zh-TW.json | 4 ++- .../app/[locale]/awooop/work-items/page.tsx | 26 ++++++++++++++----- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 5091a71a6..f94b44c97 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -9295,7 +9295,8 @@ "value": "Public API not green", "detail": "Source trust is not sufficient.", "rebootValue": "Reboot recovery is not closed", - "rebootDetail": "Fresh reboot window, service green, and backup readback are not all true." + "rebootDetail": "Fresh reboot window, service green, and backup readback are not all true.", + "rebootBackupClearDetail": "Service/data/backup is green; {hostCount} host boot and {windowsCount} Windows99 blockers remain." }, "evidence": { "label": "Evidence", @@ -9313,6 +9314,7 @@ "rebootValue": "Collect public readback", "rebootVerifierValue": "Run verifier-only", "rebootDetail": "Collect service data backup readback first; {count} backup blockers remain.", + "rebootHostWindows99Detail": "Run host probe verifier-only, then collect Windows99 console / VMware readback; host {hostCount} / Windows99 {windowsCount}.", "rebootWindows99Detail": "Collect Windows99 console / VMware readback; {count} Windows99 blockers remain.", "rebootHostDetail": "Rerun reboot event detector + host probe; {count} host blockers remain." }, diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index ed32f4a87..55a997c55 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -9295,7 +9295,8 @@ "value": "公開 API 未綠燈", "detail": "資料來源可信度不足", "rebootValue": "重啟後恢復未閉環", - "rebootDetail": "fresh reboot window、service green 與 backup readback 尚未同時成立" + "rebootDetail": "fresh reboot window、service green 與 backup readback 尚未同時成立", + "rebootBackupClearDetail": "service/data/backup 已綠;剩 host boot {hostCount} 個、Windows99 {windowsCount} 個" }, "evidence": { "label": "證據", @@ -9313,6 +9314,7 @@ "rebootValue": "補 public readback", "rebootVerifierValue": "跑 verifier-only", "rebootDetail": "先收 service data backup readback;目前 {count} 個 backup blocker", + "rebootHostWindows99Detail": "先跑 host probe verifier-only,再收 Windows99 console / VMware readback;host {hostCount} / Windows99 {windowsCount}", "rebootWindows99Detail": "收 Windows99 console / VMware readback;目前 {count} 個 Windows99 blocker", "rebootHostDetail": "重跑 reboot event detector + host probe;目前 {count} 個 host blocker" }, diff --git a/apps/web/src/app/[locale]/awooop/work-items/page.tsx b/apps/web/src/app/[locale]/awooop/work-items/page.tsx index 7a9740bce..417a6be29 100644 --- a/apps/web/src/app/[locale]/awooop/work-items/page.tsx +++ b/apps/web/src/app/[locale]/awooop/work-items/page.tsx @@ -9109,7 +9109,14 @@ function ManagerSituationBoard({ icon: Database, label: t("cards.impact.label"), value: isRebootP0 ? t("cards.impact.rebootValue") : t("cards.impact.value"), - detail: isRebootP0 ? t("cards.impact.rebootDetail") : t("cards.impact.detail"), + detail: isRebootP0 + ? serviceBackupBlockerCount > 0 + ? t("cards.impact.rebootDetail") + : t("cards.impact.rebootBackupClearDetail", { + hostCount: hostBootBlockerCount, + windowsCount: windows99BlockerCount, + }) + : t("cards.impact.detail"), tone: "border-[#c9d8ea] bg-[#eef5ff] text-[#1f5b9b]", }, { @@ -9136,15 +9143,20 @@ function ManagerSituationBoard({ detail: isRebootP0 ? serviceBackupBlockerCount > 0 ? t("cards.next.rebootDetail", { - count: serviceBackupBlockerCount, - }) + count: serviceBackupBlockerCount, + }) + : windows99BlockerCount > 0 && hostBootBlockerCount > 0 + ? t("cards.next.rebootHostWindows99Detail", { + hostCount: hostBootBlockerCount, + windowsCount: windows99BlockerCount, + }) : windows99BlockerCount > 0 ? t("cards.next.rebootWindows99Detail", { - count: windows99BlockerCount, - }) + count: windows99BlockerCount, + }) : t("cards.next.rebootHostDetail", { - count: hostBootBlockerCount, - }) + count: hostBootBlockerCount, + }) : t("cards.next.detail"), tone: "border-[#cbd7bf] bg-[#f4faef] text-[#3d6b24]", },