fix(reboot): surface windows99 autostart check-mode readback
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m52s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
Your Name
2026-07-03 14:55:30 +08:00
parent ff9e086e2e
commit b3b3eb08a2
4 changed files with 334 additions and 111 deletions

View File

@@ -9345,10 +9345,13 @@
},
"vmxRepair": {
"label": "VMX repair",
"powerLabel": "Autostart check-mode",
"ready": "package ready",
"waiting": "waiting package",
"missing": "VMX {aliases}",
"missingNone": "VMX 0",
"sourceDependency": "source dep {aliases}",
"sourceDependencyClear": "source dep 0",
"poweredOff": "power off {count}",
"checkMode": "check-mode",
"applyClosed": "apply 0",
@@ -9366,6 +9369,9 @@
"rollbackMissing": "rollback missing",
"noPower": "no VM power",
"powerOpen": "VM power open",
"noRemoteWrite": "no remote write",
"noWindowsWrite": "no Windows write",
"windowsWriteOpen": "Windows write open",
"noDestructive": "no destructive",
"destructiveOpen": "destructive open",
"executor": "executor {value}",

View File

@@ -9345,10 +9345,13 @@
},
"vmxRepair": {
"label": "VMX repair",
"powerLabel": "自動啟動 check-mode",
"ready": "package ready",
"waiting": "等待 package",
"missing": "VMX {aliases}",
"missingNone": "VMX 0",
"sourceDependency": "source dep {aliases}",
"sourceDependencyClear": "source dep 0",
"poweredOff": "power off {count}",
"checkMode": "check-mode",
"applyClosed": "apply 0",
@@ -9366,6 +9369,9 @@
"rollbackMissing": "rollback missing",
"noPower": "no VM power",
"powerOpen": "VM power open",
"noRemoteWrite": "no remote write",
"noWindowsWrite": "no Windows write",
"windowsWriteOpen": "Windows write open",
"noDestructive": "no destructive",
"destructiveOpen": "destructive open",
"executor": "executor {value}",

View File

@@ -1183,6 +1183,36 @@ type PriorityWorkOrderResponse = {
windows99_vmx_source_repair_rag_chunk_ref?: string | null;
windows99_vmx_source_repair_mcp_evidence_ref?: string | null;
windows99_vmx_source_repair_playbook_trust_writeback_ref?: string | null;
windows99_vmware_autostart_check_mode_package_status?: string | null;
windows99_vmware_autostart_check_mode_package_ready?: boolean | null;
windows99_vmware_autostart_check_mode_powered_off_aliases?: string[] | null;
windows99_vmware_autostart_check_mode_powered_off_count?: number | null;
windows99_vmware_autostart_check_mode_safe_next_step?: string | null;
windows99_vmware_autostart_check_mode_controlled_apply_mode?: string | null;
windows99_vmware_autostart_check_mode_apply_allowed_by_this_package?: boolean | null;
windows99_vmware_autostart_check_mode_work_order_id?: string | null;
windows99_vmware_autostart_check_mode_action_stage?: string | null;
windows99_vmware_autostart_check_mode_next_executable_step?: string | null;
windows99_vmware_autostart_check_mode_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_rollback_required?: boolean | null;
windows99_vmware_autostart_check_mode_vm_power_change_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_remote_write_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_windows_service_restart_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_registry_apply_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_scheduled_task_modify_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_source_diff_alias_count?: number | null;
windows99_vmware_autostart_check_mode_target_vm_aliases?: string[] | null;
windows99_vmware_autostart_check_mode_probe_command_count?: number | null;
windows99_vmware_autostart_check_mode_controlled_apply_candidate_status?: string | null;
windows99_vmware_autostart_check_mode_controlled_apply_candidate_executor?: string | null;
windows99_vmware_autostart_check_mode_controlled_apply_candidate_command_id?: string | null;
windows99_vmware_autostart_check_mode_post_apply_verifier_count?: number | null;
windows99_vmware_autostart_check_mode_learning_writeback_ref_count?: number | null;
windows99_vmware_autostart_check_mode_log_receipt_ref?: string | null;
windows99_vmware_autostart_check_mode_km_writeback_ref?: string | null;
windows99_vmware_autostart_check_mode_rag_chunk_ref?: string | null;
windows99_vmware_autostart_check_mode_mcp_evidence_ref?: string | null;
windows99_vmware_autostart_check_mode_playbook_trust_writeback_ref?: string | null;
windows99_vmx_source_locator_status?: string | null;
windows99_vmx_source_locator_required?: boolean | null;
windows99_vmx_source_locator_check_mode_ready?: boolean | null;
@@ -1273,6 +1303,36 @@ type PriorityWorkOrderResponse = {
windows99_vmx_source_repair_rag_chunk_ref?: string | null;
windows99_vmx_source_repair_mcp_evidence_ref?: string | null;
windows99_vmx_source_repair_playbook_trust_writeback_ref?: string | null;
windows99_vmware_autostart_check_mode_package_status?: string | null;
windows99_vmware_autostart_check_mode_package_ready?: boolean | null;
windows99_vmware_autostart_check_mode_powered_off_aliases?: string[] | null;
windows99_vmware_autostart_check_mode_powered_off_count?: number | null;
windows99_vmware_autostart_check_mode_safe_next_step?: string | null;
windows99_vmware_autostart_check_mode_controlled_apply_mode?: string | null;
windows99_vmware_autostart_check_mode_apply_allowed_by_this_package?: boolean | null;
windows99_vmware_autostart_check_mode_work_order_id?: string | null;
windows99_vmware_autostart_check_mode_action_stage?: string | null;
windows99_vmware_autostart_check_mode_next_executable_step?: string | null;
windows99_vmware_autostart_check_mode_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_rollback_required?: boolean | null;
windows99_vmware_autostart_check_mode_vm_power_change_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_remote_write_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_windows_service_restart_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_registry_apply_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_scheduled_task_modify_allowed?: boolean | null;
windows99_vmware_autostart_check_mode_source_diff_alias_count?: number | null;
windows99_vmware_autostart_check_mode_target_vm_aliases?: string[] | null;
windows99_vmware_autostart_check_mode_probe_command_count?: number | null;
windows99_vmware_autostart_check_mode_controlled_apply_candidate_status?: string | null;
windows99_vmware_autostart_check_mode_controlled_apply_candidate_executor?: string | null;
windows99_vmware_autostart_check_mode_controlled_apply_candidate_command_id?: string | null;
windows99_vmware_autostart_check_mode_post_apply_verifier_count?: number | null;
windows99_vmware_autostart_check_mode_learning_writeback_ref_count?: number | null;
windows99_vmware_autostart_check_mode_log_receipt_ref?: string | null;
windows99_vmware_autostart_check_mode_km_writeback_ref?: string | null;
windows99_vmware_autostart_check_mode_rag_chunk_ref?: string | null;
windows99_vmware_autostart_check_mode_mcp_evidence_ref?: string | null;
windows99_vmware_autostart_check_mode_playbook_trust_writeback_ref?: string | null;
windows99_vmx_source_locator_status?: string | null;
windows99_vmx_source_locator_required?: boolean | null;
windows99_vmx_source_locator_check_mode_ready?: boolean | null;
@@ -1377,7 +1437,6 @@ const COMMANDER_INSERTED_REQUIREMENT_FALLBACK: PriorityWorkOrderResponse = {
"host_uptime_unknown",
"reboot_event_required_host_unreachable",
"windows99_vmware_guest_power_not_ready",
"windows99_vmware_vmx_missing",
],
next_executable_mainline_workplan_id: "P0-006-REBOOT-AUTO-RECOVERY-SLO-SCORECARD",
next_executable_mainline_state:
@@ -1386,53 +1445,95 @@ const COMMANDER_INSERTED_REQUIREMENT_FALLBACK: PriorityWorkOrderResponse = {
controlled_service_data_backup_can_clear_blockers: true,
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: 3,
windows99_verify_collection_blocker_count: 2,
windows99_verify_collection_blockers: [
"windows99_vmware_guest_power_not_ready",
"windows99_vmware_vmx_missing",
"windows99_uptime_unknown",
],
windows99_vmx_source_repair_package_status:
"check_mode_package_ready_windows99_vmx_source_repair_required",
"check_mode_package_ready_windows99_power_check_required",
windows99_vmx_source_repair_package_ready: true,
windows99_vmx_source_repair_missing_aliases: ["111"],
windows99_vmx_source_repair_powered_off_aliases: ["111", "112", "120", "121", "188"],
windows99_vmx_source_repair_controlled_restore_required_count: 1,
windows99_vmx_source_repair_missing_aliases: [],
windows99_vmx_source_repair_powered_off_aliases: ["110", "112", "120", "121", "188"],
windows99_vmx_source_repair_controlled_restore_required_count: 0,
windows99_vmx_source_repair_powered_off_count: 5,
windows99_vmx_source_repair_safe_next_step:
"restore_windows99_missing_vmx_source_for_aliases_then_rerun_no_secret_collector_and_scorecard_no_vm_power_change",
"build_windows99_vmware_autostart_check_mode_package_for_powered_off_aliases_then_rerun_no_secret_collector_no_vm_power_change",
windows99_vmx_source_repair_controlled_apply_mode:
"check_mode_package_only_no_windows_or_vm_write",
windows99_vmx_source_repair_apply_allowed_by_this_package: false,
windows99_vmx_source_repair_work_order_id: "windows99-vmx-source-repair-111",
windows99_vmx_source_repair_action_stage: "source_repair_check_mode_ready",
windows99_vmx_source_repair_work_order_id: "windows99-vmx-source-repair-110",
windows99_vmx_source_repair_action_stage: "power_readback_check_mode_ready",
windows99_vmx_source_repair_next_executable_step:
"locate_or_relink_missing_vmx_source_check_mode",
"build_vmware_autostart_power_readback_check_mode",
windows99_vmx_source_repair_check_mode_allowed: true,
windows99_vmx_source_repair_rollback_required: true,
windows99_vmx_source_repair_vm_power_change_allowed: false,
windows99_vmx_source_repair_destructive_restore_allowed: false,
windows99_vmx_source_repair_source_diff_alias_count: 1,
windows99_vmx_source_repair_target_vm_aliases: ["111"],
windows99_vmx_source_repair_check_mode_probe_command_count: 1,
windows99_vmx_source_repair_source_diff_alias_count: 5,
windows99_vmx_source_repair_target_vm_aliases: ["110", "112", "120", "121", "188"],
windows99_vmx_source_repair_check_mode_probe_command_count: 5,
windows99_vmx_source_repair_controlled_apply_candidate_status:
"candidate_waiting_existing_vmx_source_or_backup_path",
"candidate_waiting_power_policy_check_mode",
windows99_vmx_source_repair_controlled_apply_candidate_executor:
"windows99_no_secret_management_channel_or_local_console",
windows99_vmx_source_repair_controlled_apply_candidate_command_id:
"windows99_vmx_source_relink_or_restore_scoped",
"windows99_vmware_autostart_power_readback_check_mode",
windows99_vmx_source_repair_post_apply_verifier_count: 5,
windows99_vmx_source_repair_learning_writeback_ref_count: 6,
windows99_vmx_source_repair_log_receipt_ref:
"log://awoooi/p0-006/windows99-vmx-source-repair-111",
"log://awoooi/p0-006/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_repair_km_writeback_ref:
"km://awoooi/reboot-slo/windows99-vmx-source-repair-111",
"km://awoooi/reboot-slo/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_repair_rag_chunk_ref:
"rag://awoooi/reboot-slo/windows99-vmx-source-repair-111",
"rag://awoooi/reboot-slo/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_repair_mcp_evidence_ref:
"mcp://awoooi/windows99/windows99-vmx-source-repair-111",
"mcp://awoooi/windows99/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_repair_playbook_trust_writeback_ref:
"playbook://awoooi/windows99-vmx-source-repair/windows99-vmx-source-repair-111",
"playbook://awoooi/windows99-vmware-autostart-power/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_package_status:
"check_mode_package_ready_windows99_vmware_guest_power_readback_required",
windows99_vmware_autostart_check_mode_package_ready: true,
windows99_vmware_autostart_check_mode_powered_off_aliases: ["110", "112", "120", "121", "188"],
windows99_vmware_autostart_check_mode_powered_off_count: 5,
windows99_vmware_autostart_check_mode_safe_next_step:
"build_windows99_vmware_autostart_check_mode_package_for_powered_off_aliases_then_rerun_no_secret_collector_no_vm_power_change",
windows99_vmware_autostart_check_mode_controlled_apply_mode:
"check_mode_package_only_no_windows_or_vm_write",
windows99_vmware_autostart_check_mode_apply_allowed_by_this_package: false,
windows99_vmware_autostart_check_mode_work_order_id:
"windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_action_stage: "power_readback_check_mode_ready",
windows99_vmware_autostart_check_mode_next_executable_step:
"run_windows99_vmware_autostart_power_readback_check_mode",
windows99_vmware_autostart_check_mode_allowed: true,
windows99_vmware_autostart_check_mode_rollback_required: false,
windows99_vmware_autostart_check_mode_vm_power_change_allowed: false,
windows99_vmware_autostart_check_mode_remote_write_allowed: false,
windows99_vmware_autostart_check_mode_windows_service_restart_allowed: false,
windows99_vmware_autostart_check_mode_registry_apply_allowed: false,
windows99_vmware_autostart_check_mode_scheduled_task_modify_allowed: false,
windows99_vmware_autostart_check_mode_source_diff_alias_count: 0,
windows99_vmware_autostart_check_mode_target_vm_aliases: ["110", "112", "120", "121", "188"],
windows99_vmware_autostart_check_mode_probe_command_count: 5,
windows99_vmware_autostart_check_mode_controlled_apply_candidate_status:
"candidate_waiting_power_state_readback_check_mode",
windows99_vmware_autostart_check_mode_controlled_apply_candidate_executor:
"windows99_no_secret_management_channel_or_local_console",
windows99_vmware_autostart_check_mode_controlled_apply_candidate_command_id:
"windows99_vmware_autostart_power_readback_check_mode",
windows99_vmware_autostart_check_mode_post_apply_verifier_count: 5,
windows99_vmware_autostart_check_mode_learning_writeback_ref_count: 6,
windows99_vmware_autostart_check_mode_log_receipt_ref:
"log://awoooi/p0-006/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_km_writeback_ref:
"km://awoooi/reboot-slo/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_rag_chunk_ref:
"rag://awoooi/reboot-slo/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_mcp_evidence_ref:
"mcp://awoooi/windows99/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_playbook_trust_writeback_ref:
"playbook://awoooi/windows99-vmware-autostart-power/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_locator_status:
"collector_readback_single_identity_candidate_confirmation_required",
windows99_vmx_source_locator_required: true,
@@ -1496,7 +1597,6 @@ const COMMANDER_INSERTED_REQUIREMENT_FALLBACK: PriorityWorkOrderResponse = {
"host_uptime_unknown",
"reboot_event_required_host_unreachable",
"windows99_vmware_guest_power_not_ready",
"windows99_vmware_vmx_missing",
],
live_slo_metric_present: true,
live_slo_service_last_result: "success",
@@ -1506,50 +1606,93 @@ const COMMANDER_INSERTED_REQUIREMENT_FALLBACK: PriorityWorkOrderResponse = {
controlled_service_data_backup_can_clear_blockers: true,
windows99_verify_collection_blockers: [
"windows99_vmware_guest_power_not_ready",
"windows99_vmware_vmx_missing",
"windows99_uptime_unknown",
],
windows99_vmx_source_repair_package_status:
"check_mode_package_ready_windows99_vmx_source_repair_required",
"check_mode_package_ready_windows99_power_check_required",
windows99_vmx_source_repair_package_ready: true,
windows99_vmx_source_repair_missing_aliases: ["111"],
windows99_vmx_source_repair_powered_off_aliases: ["111", "112", "120", "121", "188"],
windows99_vmx_source_repair_controlled_restore_required_count: 1,
windows99_vmx_source_repair_missing_aliases: [],
windows99_vmx_source_repair_powered_off_aliases: ["110", "112", "120", "121", "188"],
windows99_vmx_source_repair_controlled_restore_required_count: 0,
windows99_vmx_source_repair_powered_off_count: 5,
windows99_vmx_source_repair_safe_next_step:
"restore_windows99_missing_vmx_source_for_aliases_then_rerun_no_secret_collector_and_scorecard_no_vm_power_change",
"build_windows99_vmware_autostart_check_mode_package_for_powered_off_aliases_then_rerun_no_secret_collector_no_vm_power_change",
windows99_vmx_source_repair_controlled_apply_mode:
"check_mode_package_only_no_windows_or_vm_write",
windows99_vmx_source_repair_apply_allowed_by_this_package: false,
windows99_vmx_source_repair_work_order_id: "windows99-vmx-source-repair-111",
windows99_vmx_source_repair_action_stage: "source_repair_check_mode_ready",
windows99_vmx_source_repair_work_order_id: "windows99-vmx-source-repair-110",
windows99_vmx_source_repair_action_stage: "power_readback_check_mode_ready",
windows99_vmx_source_repair_next_executable_step:
"locate_or_relink_missing_vmx_source_check_mode",
"build_vmware_autostart_power_readback_check_mode",
windows99_vmx_source_repair_check_mode_allowed: true,
windows99_vmx_source_repair_rollback_required: true,
windows99_vmx_source_repair_vm_power_change_allowed: false,
windows99_vmx_source_repair_destructive_restore_allowed: false,
windows99_vmx_source_repair_source_diff_alias_count: 1,
windows99_vmx_source_repair_target_vm_aliases: ["111"],
windows99_vmx_source_repair_check_mode_probe_command_count: 1,
windows99_vmx_source_repair_source_diff_alias_count: 5,
windows99_vmx_source_repair_target_vm_aliases: ["110", "112", "120", "121", "188"],
windows99_vmx_source_repair_check_mode_probe_command_count: 5,
windows99_vmx_source_repair_controlled_apply_candidate_status:
"candidate_waiting_existing_vmx_source_or_backup_path",
"candidate_waiting_power_policy_check_mode",
windows99_vmx_source_repair_controlled_apply_candidate_executor:
"windows99_no_secret_management_channel_or_local_console",
windows99_vmx_source_repair_controlled_apply_candidate_command_id:
"windows99_vmx_source_relink_or_restore_scoped",
"windows99_vmware_autostart_power_readback_check_mode",
windows99_vmx_source_repair_post_apply_verifier_count: 5,
windows99_vmx_source_repair_learning_writeback_ref_count: 6,
windows99_vmx_source_repair_log_receipt_ref:
"log://awoooi/p0-006/windows99-vmx-source-repair-111",
"log://awoooi/p0-006/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_repair_km_writeback_ref:
"km://awoooi/reboot-slo/windows99-vmx-source-repair-111",
"km://awoooi/reboot-slo/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_repair_rag_chunk_ref:
"rag://awoooi/reboot-slo/windows99-vmx-source-repair-111",
"rag://awoooi/reboot-slo/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_repair_mcp_evidence_ref:
"mcp://awoooi/windows99/windows99-vmx-source-repair-111",
"mcp://awoooi/windows99/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_repair_playbook_trust_writeback_ref:
"playbook://awoooi/windows99-vmx-source-repair/windows99-vmx-source-repair-111",
"playbook://awoooi/windows99-vmware-autostart-power/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_package_status:
"check_mode_package_ready_windows99_vmware_guest_power_readback_required",
windows99_vmware_autostart_check_mode_package_ready: true,
windows99_vmware_autostart_check_mode_powered_off_aliases: ["110", "112", "120", "121", "188"],
windows99_vmware_autostart_check_mode_powered_off_count: 5,
windows99_vmware_autostart_check_mode_safe_next_step:
"build_windows99_vmware_autostart_check_mode_package_for_powered_off_aliases_then_rerun_no_secret_collector_no_vm_power_change",
windows99_vmware_autostart_check_mode_controlled_apply_mode:
"check_mode_package_only_no_windows_or_vm_write",
windows99_vmware_autostart_check_mode_apply_allowed_by_this_package: false,
windows99_vmware_autostart_check_mode_work_order_id:
"windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_action_stage:
"power_readback_check_mode_ready",
windows99_vmware_autostart_check_mode_next_executable_step:
"run_windows99_vmware_autostart_power_readback_check_mode",
windows99_vmware_autostart_check_mode_allowed: true,
windows99_vmware_autostart_check_mode_rollback_required: false,
windows99_vmware_autostart_check_mode_vm_power_change_allowed: false,
windows99_vmware_autostart_check_mode_remote_write_allowed: false,
windows99_vmware_autostart_check_mode_windows_service_restart_allowed: false,
windows99_vmware_autostart_check_mode_registry_apply_allowed: false,
windows99_vmware_autostart_check_mode_scheduled_task_modify_allowed: false,
windows99_vmware_autostart_check_mode_source_diff_alias_count: 0,
windows99_vmware_autostart_check_mode_target_vm_aliases: ["110", "112", "120", "121", "188"],
windows99_vmware_autostart_check_mode_probe_command_count: 5,
windows99_vmware_autostart_check_mode_controlled_apply_candidate_status:
"candidate_waiting_power_state_readback_check_mode",
windows99_vmware_autostart_check_mode_controlled_apply_candidate_executor:
"windows99_no_secret_management_channel_or_local_console",
windows99_vmware_autostart_check_mode_controlled_apply_candidate_command_id:
"windows99_vmware_autostart_power_readback_check_mode",
windows99_vmware_autostart_check_mode_post_apply_verifier_count: 5,
windows99_vmware_autostart_check_mode_learning_writeback_ref_count: 6,
windows99_vmware_autostart_check_mode_log_receipt_ref:
"log://awoooi/p0-006/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_km_writeback_ref:
"km://awoooi/reboot-slo/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_rag_chunk_ref:
"rag://awoooi/reboot-slo/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_mcp_evidence_ref:
"mcp://awoooi/windows99/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmware_autostart_check_mode_playbook_trust_writeback_ref:
"playbook://awoooi/windows99-vmware-autostart-power/windows99-vmware-autostart-power-readback-110-112-120-121-188",
windows99_vmx_source_locator_status:
"collector_readback_single_identity_candidate_confirmation_required",
windows99_vmx_source_locator_required: true,
@@ -9294,18 +9437,6 @@ function ManagerSituationBoard({
summary?.windows99_vmx_source_repair_package_ready ??
evidence?.windows99_vmx_source_repair_package_ready ??
false;
const vmxRepairRestoreCount =
summary?.windows99_vmx_source_repair_controlled_restore_required_count ??
evidence?.windows99_vmx_source_repair_controlled_restore_required_count ??
vmxRepairMissingAliases.length;
const vmxRepairPoweredOffCount =
summary?.windows99_vmx_source_repair_powered_off_count ??
evidence?.windows99_vmx_source_repair_powered_off_count ??
vmxRepairPoweredOffAliases.length;
const vmxRepairApplyAllowed =
summary?.windows99_vmx_source_repair_apply_allowed_by_this_package ??
evidence?.windows99_vmx_source_repair_apply_allowed_by_this_package ??
false;
const vmxRepairActionStage =
summary?.windows99_vmx_source_repair_action_stage ??
evidence?.windows99_vmx_source_repair_action_stage ??
@@ -9318,18 +9449,6 @@ function ManagerSituationBoard({
summary?.windows99_vmx_source_repair_check_mode_allowed ??
evidence?.windows99_vmx_source_repair_check_mode_allowed ??
false;
const vmxRepairRollbackRequired =
summary?.windows99_vmx_source_repair_rollback_required ??
evidence?.windows99_vmx_source_repair_rollback_required ??
false;
const vmxRepairVmPowerAllowed =
summary?.windows99_vmx_source_repair_vm_power_change_allowed ??
evidence?.windows99_vmx_source_repair_vm_power_change_allowed ??
false;
const vmxRepairDestructiveAllowed =
summary?.windows99_vmx_source_repair_destructive_restore_allowed ??
evidence?.windows99_vmx_source_repair_destructive_restore_allowed ??
false;
const vmxRepairTargetAliases = (
summary?.windows99_vmx_source_repair_target_vm_aliases ??
evidence?.windows99_vmx_source_repair_target_vm_aliases ??
@@ -9355,17 +9474,98 @@ function ManagerSituationBoard({
summary?.windows99_vmx_source_repair_learning_writeback_ref_count ??
evidence?.windows99_vmx_source_repair_learning_writeback_ref_count ??
0;
const vmxRepairWritebackRefs = [
summary?.windows99_vmx_source_repair_log_receipt_ref ??
evidence?.windows99_vmx_source_repair_log_receipt_ref,
summary?.windows99_vmx_source_repair_km_writeback_ref ??
evidence?.windows99_vmx_source_repair_km_writeback_ref,
summary?.windows99_vmx_source_repair_rag_chunk_ref ??
evidence?.windows99_vmx_source_repair_rag_chunk_ref,
summary?.windows99_vmx_source_repair_mcp_evidence_ref ??
evidence?.windows99_vmx_source_repair_mcp_evidence_ref,
summary?.windows99_vmx_source_repair_playbook_trust_writeback_ref ??
evidence?.windows99_vmx_source_repair_playbook_trust_writeback_ref,
const autostartCheckModePoweredOffAliases = (
summary?.windows99_vmware_autostart_check_mode_powered_off_aliases ??
evidence?.windows99_vmware_autostart_check_mode_powered_off_aliases ??
vmxRepairPoweredOffAliases
).filter(Boolean);
const autostartCheckModePackageReady =
summary?.windows99_vmware_autostart_check_mode_package_ready ??
evidence?.windows99_vmware_autostart_check_mode_package_ready ??
vmxRepairPackageReady;
const autostartCheckModePoweredOffCount =
summary?.windows99_vmware_autostart_check_mode_powered_off_count ??
evidence?.windows99_vmware_autostart_check_mode_powered_off_count ??
autostartCheckModePoweredOffAliases.length;
const autostartCheckModeApplyAllowed =
summary?.windows99_vmware_autostart_check_mode_apply_allowed_by_this_package ??
evidence?.windows99_vmware_autostart_check_mode_apply_allowed_by_this_package ??
false;
const autostartCheckModeActionStage =
summary?.windows99_vmware_autostart_check_mode_action_stage ??
evidence?.windows99_vmware_autostart_check_mode_action_stage ??
vmxRepairActionStage;
const autostartCheckModeNextStep =
summary?.windows99_vmware_autostart_check_mode_next_executable_step ??
evidence?.windows99_vmware_autostart_check_mode_next_executable_step ??
vmxRepairNextStep;
const autostartCheckModeCheckModeAllowed =
summary?.windows99_vmware_autostart_check_mode_allowed ??
evidence?.windows99_vmware_autostart_check_mode_allowed ??
vmxRepairCheckModeAllowed;
const autostartCheckModeRollbackRequired =
summary?.windows99_vmware_autostart_check_mode_rollback_required ??
evidence?.windows99_vmware_autostart_check_mode_rollback_required ??
false;
const autostartCheckModeVmPowerAllowed =
summary?.windows99_vmware_autostart_check_mode_vm_power_change_allowed ??
evidence?.windows99_vmware_autostart_check_mode_vm_power_change_allowed ??
false;
const autostartCheckModeRemoteWriteAllowed =
summary?.windows99_vmware_autostart_check_mode_remote_write_allowed ??
evidence?.windows99_vmware_autostart_check_mode_remote_write_allowed ??
false;
const autostartCheckModeWindowsWriteAllowed =
(summary?.windows99_vmware_autostart_check_mode_windows_service_restart_allowed ??
evidence?.windows99_vmware_autostart_check_mode_windows_service_restart_allowed ??
false) ||
(summary?.windows99_vmware_autostart_check_mode_registry_apply_allowed ??
evidence?.windows99_vmware_autostart_check_mode_registry_apply_allowed ??
false) ||
(summary?.windows99_vmware_autostart_check_mode_scheduled_task_modify_allowed ??
evidence?.windows99_vmware_autostart_check_mode_scheduled_task_modify_allowed ??
false);
const autostartCheckModeSourceDependencyAliases = vmxRepairMissingAliases.filter(Boolean);
const autostartCheckModeSourceDependencyCount =
summary?.windows99_vmware_autostart_check_mode_source_diff_alias_count ??
evidence?.windows99_vmware_autostart_check_mode_source_diff_alias_count ??
autostartCheckModeSourceDependencyAliases.length;
const autostartCheckModeTargetAliases = (
summary?.windows99_vmware_autostart_check_mode_target_vm_aliases ??
evidence?.windows99_vmware_autostart_check_mode_target_vm_aliases ??
vmxRepairTargetAliases
).filter(Boolean);
const autostartCheckModeProbeCount =
summary?.windows99_vmware_autostart_check_mode_probe_command_count ??
evidence?.windows99_vmware_autostart_check_mode_probe_command_count ??
vmxRepairProbeCount;
const autostartCheckModeExecutor =
summary?.windows99_vmware_autostart_check_mode_controlled_apply_candidate_executor ??
evidence?.windows99_vmware_autostart_check_mode_controlled_apply_candidate_executor ??
vmxRepairExecutor;
const autostartCheckModeCandidateStatus =
summary?.windows99_vmware_autostart_check_mode_controlled_apply_candidate_status ??
evidence?.windows99_vmware_autostart_check_mode_controlled_apply_candidate_status ??
vmxRepairCandidateStatus;
const autostartCheckModeVerifierCount =
summary?.windows99_vmware_autostart_check_mode_post_apply_verifier_count ??
evidence?.windows99_vmware_autostart_check_mode_post_apply_verifier_count ??
vmxRepairVerifierCount;
const autostartCheckModeWritebackCount =
summary?.windows99_vmware_autostart_check_mode_learning_writeback_ref_count ??
evidence?.windows99_vmware_autostart_check_mode_learning_writeback_ref_count ??
vmxRepairWritebackCount;
const autostartCheckModeWritebackRefs = [
summary?.windows99_vmware_autostart_check_mode_log_receipt_ref ??
evidence?.windows99_vmware_autostart_check_mode_log_receipt_ref,
summary?.windows99_vmware_autostart_check_mode_km_writeback_ref ??
evidence?.windows99_vmware_autostart_check_mode_km_writeback_ref,
summary?.windows99_vmware_autostart_check_mode_rag_chunk_ref ??
evidence?.windows99_vmware_autostart_check_mode_rag_chunk_ref,
summary?.windows99_vmware_autostart_check_mode_mcp_evidence_ref ??
evidence?.windows99_vmware_autostart_check_mode_mcp_evidence_ref,
summary?.windows99_vmware_autostart_check_mode_playbook_trust_writeback_ref ??
evidence?.windows99_vmware_autostart_check_mode_playbook_trust_writeback_ref,
].filter((value): value is string => Boolean(value));
const vmxSourceLocatorReady =
summary?.windows99_vmx_source_locator_check_mode_ready ??
@@ -9432,28 +9632,29 @@ function ManagerSituationBoard({
summary?.windows99_vmx_source_locator_remote_write_performed ??
evidence?.windows99_vmx_source_locator_remote_write_performed ??
false;
const vmxRepairMissingLabel = vmxRepairMissingAliases.length
? vmxRepairMissingAliases.join(", ")
const autostartCheckModeTargetLabel = autostartCheckModeTargetAliases.length
? autostartCheckModeTargetAliases.join(", ")
: "0";
const vmxRepairTargetLabel = vmxRepairTargetAliases.length
? vmxRepairTargetAliases.join(", ")
: "0";
const vmxRepairExecutorLabel = vmxRepairExecutor.includes("local_console")
const autostartCheckModeSourceDependencyLabel =
autostartCheckModeSourceDependencyAliases.length
? autostartCheckModeSourceDependencyAliases.join(", ")
: String(autostartCheckModeSourceDependencyCount);
const autostartCheckModeExecutorLabel = autostartCheckModeExecutor.includes("local_console")
? t("vmxRepair.executorConsole")
: vmxRepairExecutor
: autostartCheckModeExecutor
? t("vmxRepair.executorReady")
: t("vmxRepair.executorWaiting");
const vmxRepairCandidateLabel = vmxRepairCandidateStatus.includes("waiting")
const autostartCheckModeCandidateLabel = autostartCheckModeCandidateStatus.includes("waiting")
? t("vmxRepair.candidateWaiting")
: t("vmxRepair.candidateReady");
const vmxRepairStageLabel = vmxRepairActionStage.includes("source")
const autostartCheckModeStageLabel = autostartCheckModeActionStage.includes("source")
? t("vmxRepair.stageSource")
: vmxRepairActionStage.includes("power")
: autostartCheckModeActionStage.includes("power")
? t("vmxRepair.stagePower")
: t("vmxRepair.stageVerify");
const vmxRepairNextLabel = vmxRepairNextStep.includes("locate")
const autostartCheckModeNextLabel = autostartCheckModeNextStep.includes("locate")
? t("vmxRepair.nextLocate")
: vmxRepairNextStep.includes("power")
: autostartCheckModeNextStep.includes("power")
? t("vmxRepair.nextPower")
: t("vmxRepair.nextVerify");
const readinessPercent = summary?.active_p0_readiness_percent ?? null;
@@ -9660,20 +9861,22 @@ function ManagerSituationBoard({
>
<span className="inline-flex max-w-full items-center gap-1.5 break-words border border-[#c9d8ea] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#1f5b9b]">
<FileText className="h-3.5 w-3.5" aria-hidden="true" />
{t("vmxRepair.label")}
{t("vmxRepair.powerLabel")}
</span>
<span className="max-w-full break-words border border-[#cbd7bf] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#3d6b24]">
{vmxRepairPackageReady
{autostartCheckModePackageReady
? t("vmxRepair.ready")
: t("vmxRepair.waiting")}
</span>
<span className="max-w-full break-words border border-[#f0c6a8] bg-white px-2 py-0.5 font-mono text-[11px] font-semibold text-[#9a4d16]">
{vmxRepairRestoreCount > 0
? t("vmxRepair.missing", { aliases: vmxRepairMissingLabel })
: t("vmxRepair.missingNone")}
{autostartCheckModeSourceDependencyCount > 0
? t("vmxRepair.sourceDependency", {
aliases: autostartCheckModeSourceDependencyLabel,
})
: t("vmxRepair.sourceDependencyClear")}
</span>
<span className="max-w-full break-words border border-[#f0c6a8] bg-white px-2 py-0.5 font-mono text-[11px] font-semibold text-[#9a4d16]">
{t("vmxRepair.poweredOff", { count: vmxRepairPoweredOffCount })}
{t("vmxRepair.poweredOff", { count: autostartCheckModePoweredOffCount })}
</span>
<span className="max-w-full break-words border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{t("vmxRepair.checkMode")}
@@ -9681,12 +9884,12 @@ function ManagerSituationBoard({
<span
className={cn(
"max-w-full break-words border bg-white px-2 py-0.5 text-[11px] font-semibold",
vmxRepairApplyAllowed
autostartCheckModeApplyAllowed
? "border-[#b9d9c2] text-[#236332]"
: "border-[#d8d3c7] text-[#5f5b52]"
)}
>
{vmxRepairApplyAllowed
{autostartCheckModeApplyAllowed
? t("vmxRepair.applyOpen")
: t("vmxRepair.applyClosed")}
</span>
@@ -9699,30 +9902,35 @@ function ManagerSituationBoard({
{t("vmxRepair.actionChain")}
</span>
<span className="max-w-full break-words border border-[#cbd7bf] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#3d6b24]">
{vmxRepairStageLabel}
{autostartCheckModeStageLabel}
</span>
<span className="max-w-full break-words border border-[#cbd7bf] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#3d6b24]">
{vmxRepairNextLabel}
{autostartCheckModeNextLabel}
</span>
<span className="max-w-full break-words border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{vmxRepairCheckModeAllowed
{autostartCheckModeCheckModeAllowed
? t("vmxRepair.checkReady")
: t("vmxRepair.checkWaiting")}
</span>
<span className="max-w-full break-words border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{vmxRepairRollbackRequired
{autostartCheckModeRollbackRequired
? t("vmxRepair.rollbackSet")
: t("vmxRepair.rollbackMissing")}
</span>
<span className="max-w-full break-words border border-[#f0c6a8] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#9a4d16]">
{vmxRepairVmPowerAllowed
{autostartCheckModeVmPowerAllowed
? t("vmxRepair.powerOpen")
: t("vmxRepair.noPower")}
</span>
<span className="max-w-full break-words border border-[#f0c6a8] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#9a4d16]">
{vmxRepairDestructiveAllowed
? t("vmxRepair.destructiveOpen")
: t("vmxRepair.noDestructive")}
{autostartCheckModeRemoteWriteAllowed
? t("vmxRepair.writeOpen")
: t("vmxRepair.noRemoteWrite")}
</span>
<span className="max-w-full break-words border border-[#f0c6a8] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#9a4d16]">
{autostartCheckModeWindowsWriteAllowed
? t("vmxRepair.windowsWriteOpen")
: t("vmxRepair.noWindowsWrite")}
</span>
</div>
<div
@@ -9730,19 +9938,19 @@ function ManagerSituationBoard({
data-testid="awooop-windows99-vmx-executor-chain"
>
<span className="max-w-full break-words border border-[#c9d8ea] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#1f5b9b]">
{t("vmxRepair.executor", { value: vmxRepairExecutorLabel })}
{t("vmxRepair.executor", { value: autostartCheckModeExecutorLabel })}
</span>
<span className="max-w-full break-words border border-[#d8d3c7] bg-white px-2 py-0.5 font-mono text-[11px] font-semibold text-[#5f5b52]">
{t("vmxRepair.target", { aliases: vmxRepairTargetLabel })}
{t("vmxRepair.target", { aliases: autostartCheckModeTargetLabel })}
</span>
<span className="max-w-full break-words border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{t("vmxRepair.probes", { count: vmxRepairProbeCount })}
{t("vmxRepair.probes", { count: autostartCheckModeProbeCount })}
</span>
<span className="max-w-full break-words border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{vmxRepairCandidateLabel}
{autostartCheckModeCandidateLabel}
</span>
<span className="max-w-full break-words border border-[#cbd7bf] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#3d6b24]">
{t("vmxRepair.verifiers", { count: vmxRepairVerifierCount })}
{t("vmxRepair.verifiers", { count: autostartCheckModeVerifierCount })}
</span>
</div>
<div
@@ -9750,13 +9958,13 @@ function ManagerSituationBoard({
data-testid="awooop-windows99-vmx-learning-chain"
>
<span className="max-w-full break-words border border-[#dbcdf0] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#62439b]">
{t("vmxRepair.learning", { count: vmxRepairWritebackCount })}
{t("vmxRepair.learning", { count: autostartCheckModeWritebackCount })}
</span>
<span className="max-w-full break-words border border-[#dbcdf0] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#62439b]">
{t("vmxRepair.learningTargets")}
</span>
<span className="max-w-full break-words border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{t("vmxRepair.refs", { count: vmxRepairWritebackRefs.length })}
{t("vmxRepair.refs", { count: autostartCheckModeWritebackRefs.length })}
</span>
</div>
<div

View File

@@ -5,10 +5,13 @@
- `/api/v1/agents/reboot-auto-recovery-slo-scorecard` 新增 `windows99_vmware_autostart_check_mode_package` 與 readback / rollups 欄位,包含 package status、safe next step、powered-off aliases、post-verifier count、learning writeback ref count 與 executor。
- 新增 `/api/v1/agents/windows99-vmware-autostart-check-mode-package`,可直接讀回 target selector、check-mode、controlled apply candidate、execution boundary、rollback、post-verifier 與 LOG / KM / RAG / MCP / PlayBook writeback refs。
- `awoooi-priority-work-order-readback` 會把 autostart check-mode package 投影到 `mainline_execution_state`、P0-006 evidence、summary 與 rollupsWork Item 不再只看到 VMX source repair 欄位。
- `/zh-TW/awooop/work-items` 已改讀 `windows99_vmware_autostart_check_mode_*` 欄位,顯示 package ready、powered-off count、source dependency count、check-mode、apply 0、no VM power、no remote write、no Windows write、executor、target、probe、verifier 與 LOG / KM / RAG / MCP / PlayBook refsVMX source repair 只保留 fallback / dependency evidence。
**已跑驗證**
- `DATABASE_URL=postgresql+asyncpg://test:test@localhost/test PYTHONPATH=apps/api python3.11 -m pytest apps/api/tests/test_windows99_vmware_autostart_check_mode_package_api.py apps/api/tests/test_reboot_auto_recovery_slo_scorecard_api.py apps/api/tests/test_awoooi_priority_work_order_readback_api.py -q -p no:cacheprovider``41 passed`
- `DATABASE_URL=postgresql+asyncpg://test:test@localhost/test PYTHONPATH=apps/api python3.11 -m pytest apps/api/tests/test_windows99_vmware_autostart_check_mode_package_api.py apps/api/tests/test_windows99_vmx_source_repair_package_api.py apps/api/tests/test_reboot_auto_recovery_slo_scorecard_api.py apps/api/tests/test_awoooi_priority_work_order_readback_api.py -q -p no:cacheprovider``44 passed`
- `python3.11 -m py_compile apps/api/src/services/reboot_auto_recovery_slo_scorecard.py apps/api/src/services/windows99_vmware_autostart_check_mode_package.py apps/api/src/services/awoooi_priority_work_order_readback.py apps/api/src/api/v1/agents.py apps/api/tests/test_windows99_vmware_autostart_check_mode_package_api.py apps/api/tests/test_reboot_auto_recovery_slo_scorecard_api.py apps/api/tests/test_awoooi_priority_work_order_readback_api.py`:通過。
- `pnpm --dir apps/web typecheck`:通過。
- `python3.11 ops/runner/guard-gitea-runner-pressure.py --root .``GITEA_RUNNER_PRESSURE_GUARD_OK workflow_files=12 scheduled_workflows=4 auto_branch_events_on_110=0 generic_runner_labels=0`
- `git diff --check`:通過。