diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json
index b0cdf58ef..69f8e17a1 100644
--- a/apps/web/messages/en.json
+++ b/apps/web/messages/en.json
@@ -21526,6 +21526,7 @@
"waiting_per_host_matrix": "待逐主機矩陣",
"waiting_time_window": "待時間窗",
"waiting_health_參照": "待健康參照",
+ "waiting_health_refs": "待健康參照",
"reject_sensitive_payloads": "拒收敏感內容",
"waiting_owner_decision": "待負責人決策",
"runtime_closed": "執行期關閉"
diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json
index 2cf118967..3052ffaee 100644
--- a/apps/web/messages/zh-TW.json
+++ b/apps/web/messages/zh-TW.json
@@ -21526,6 +21526,7 @@
"waiting_per_host_matrix": "待逐主機矩陣",
"waiting_time_window": "待時間窗",
"waiting_health_參照": "待健康參照",
+ "waiting_health_refs": "待健康參照",
"reject_sensitive_payloads": "拒收敏感內容",
"waiting_owner_decision": "待負責人決策",
"runtime_closed": "執行期關閉"
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 52c54e114..c54d3bc8c 100644
--- a/apps/web/src/app/[locale]/awooop/work-items/page.tsx
+++ b/apps/web/src/app/[locale]/awooop/work-items/page.tsx
@@ -1259,6 +1259,47 @@ type PriorityWorkOrderResponse = {
const COMMANDER_INSERTED_REQUIREMENT_FALLBACK: PriorityWorkOrderResponse = {
summary: {
+ active_p0_state: "blocked_reboot_auto_recovery_slo_not_ready",
+ active_p0_workplan_id: "P0-006",
+ active_p0_readiness_percent: 47,
+ active_p0_live_active_blockers: [
+ "all_required_hosts_not_in_10_minute_reboot_window",
+ "backup_core_green_not_1",
+ "host_boot_observation_older_than_target_window",
+ "host_unreachable_after_reboot",
+ "host_uptime_unknown",
+ "post_start_blocked_not_zero",
+ "reboot_event_required_host_unreachable",
+ "service_green_not_1",
+ "wazuh_dashboard_degraded",
+ "windows99_remote_execution_channel_unavailable",
+ "windows99_vmware_autostart_readback_missing",
+ ],
+ next_executable_mainline_workplan_id: "P0-006-REBOOT-AUTO-RECOVERY-SLO-SCORECARD",
+ next_executable_mainline_state:
+ "blocked_reboot_slo_scorecard_service_data_backup_readback_present_blockers_open",
+ controlled_service_data_backup_blocker_count: 4,
+ controlled_service_data_backup_can_clear_blockers: false,
+ controlled_service_data_backup_next_safe_action:
+ "collect_public_service_data_backup_readback_and_refresh_reboot_slo_scorecard_no_reboot_no_db_write",
+ windows99_verify_collection_blocker_count: 2,
+ windows99_verify_collection_blockers: [
+ "windows99_vmware_autostart_readback_missing",
+ "windows99_uptime_unknown",
+ ],
+ stockplatform_public_api_runtime_status: "stockplatform_public_api_runtime_ready",
+ stockplatform_public_api_runtime_ready: true,
+ stockplatform_public_api_controlled_recovery_preflight_status:
+ "not_required_stockplatform_runtime_ready",
+ stockplatform_public_api_controlled_recovery_data_dependency: "none",
+ stockplatform_public_api_recovery_control_path_status:
+ "not_required_stockplatform_runtime_ready",
+ stockplatform_postgres_readiness_or_data_source_readback_status:
+ "stockplatform_data_readiness_ready",
+ stockplatform_postgres_readiness_or_data_source_receipt_provided: true,
+ stockplatform_source_contract_readback_status: "stockplatform_source_contract_ready",
+ stockplatform_source_contract_receipt_provided: true,
+ stockplatform_source_contract_non_ok_source_count: 1,
commander_inserted_requirement_work_item_count: 55,
commander_inserted_requirement_p0_count: 34,
commander_inserted_requirement_p1_count: 14,
@@ -1276,6 +1317,55 @@ const COMMANDER_INSERTED_REQUIREMENT_FALLBACK: PriorityWorkOrderResponse = {
commander_inserted_requirement_source:
"docs/workplans/2026-07-02-commander-inserted-requirements-priority-ledger.md",
},
+ in_progress_or_blocked_in_priority_order: [
+ {
+ id: "P0-006",
+ title: "主機重啟自動偵測、自動觸發與 10 分鐘恢復 SLO",
+ status: "blocked_reboot_auto_recovery_slo_not_ready",
+ evidence: {
+ active_blockers: [
+ "all_required_hosts_not_in_10_minute_reboot_window",
+ "backup_core_green_not_1",
+ "host_boot_observation_older_than_target_window",
+ "host_unreachable_after_reboot",
+ "host_uptime_unknown",
+ "post_start_blocked_not_zero",
+ "reboot_event_required_host_unreachable",
+ "service_green_not_1",
+ "wazuh_dashboard_degraded",
+ "windows99_remote_execution_channel_unavailable",
+ "windows99_vmware_autostart_readback_missing",
+ ],
+ live_slo_metric_present: true,
+ live_slo_service_last_result: "success",
+ live_slo_timer_active: true,
+ live_slo_timer_enabled: true,
+ controlled_service_data_backup_blocker_count: 4,
+ controlled_service_data_backup_can_clear_blockers: false,
+ windows99_verify_collection_blockers: [
+ "windows99_vmware_autostart_readback_missing",
+ "windows99_uptime_unknown",
+ ],
+ drill_preflight_blocker_count: 5,
+ stockplatform_public_api_runtime_status: "stockplatform_public_api_runtime_ready",
+ stockplatform_public_api_runtime_ready: true,
+ stockplatform_controlled_recovery_preflight_status:
+ "not_required_stockplatform_runtime_ready",
+ stockplatform_controlled_recovery_data_dependency: "none",
+ stockplatform_recovery_control_path_status:
+ "not_required_stockplatform_runtime_ready",
+ stockplatform_postgres_readiness_or_data_source_readback_status:
+ "stockplatform_data_readiness_ready",
+ stockplatform_postgres_readiness_or_data_source_receipt_provided: true,
+ stockplatform_source_contract_readback_status: "stockplatform_source_contract_ready",
+ stockplatform_source_contract_receipt_provided: true,
+ stockplatform_source_contract_non_ok_source_count: 1,
+ stockplatform_source_contract_blocking_sources: [
+ { source: "raw.source_quality_observations.unit_sanity" },
+ ],
+ },
+ },
+ ],
commander_inserted_requirement_work_items: [
{
id: "CIR-P0-001",
@@ -9917,13 +10007,13 @@ export default function AwoooPWorkItemsPage() {