fix(reboot): project vmx locator receipt readback
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 3m47s
CD Pipeline / build-and-deploy (push) Successful in 4m48s
CD Pipeline / post-deploy-checks (push) Successful in 1m52s

This commit is contained in:
Your Name
2026-07-03 12:53:33 +08:00
parent 7b02c452e3
commit ba0849f707
9 changed files with 438 additions and 36 deletions

View File

@@ -9385,14 +9385,17 @@
"locatorWaiting": "locator wait",
"locatorTarget": "target {aliases}",
"locatorExpected": "expected {count}",
"locatorCandidatesKnown": "candidates known",
"locatorCandidatesKnown": "candidates {count}",
"locatorCandidatesUnknown": "candidates wait",
"locatorIdentityUnassigned": "unassigned {count}",
"locatorNeedsConfirm": "confirm",
"locatorConfirmClosed": "confirm closed",
"locatorCollected": "collected",
"locatorPending": "collect wait",
"noRawPath": "no raw path",
"rawPathOpen": "raw path open",
"noFileRead": "no file read",
"fileReadOpen": "file read open",
"fileReadOpen": "identity read",
"noWrite": "no write",
"writeOpen": "write open"
},

View File

@@ -9385,14 +9385,17 @@
"locatorWaiting": "等待定位",
"locatorTarget": "目標 {aliases}",
"locatorExpected": "預期 {count}",
"locatorCandidatesKnown": "候選已知",
"locatorCandidatesKnown": "候選 {count}",
"locatorCandidatesUnknown": "候選待收",
"locatorIdentityUnassigned": "未指派 {count}",
"locatorNeedsConfirm": "需確認",
"locatorConfirmClosed": "確認關閉",
"locatorCollected": "已收件",
"locatorPending": "等待收件",
"noRawPath": "不吐原路徑",
"rawPathOpen": "原路徑開",
"noFileRead": "不讀檔",
"fileReadOpen": "讀檔開",
"fileReadOpen": "讀 identity",
"noWrite": "不寫入",
"writeOpen": "寫入開"
},

View File

@@ -1189,6 +1189,9 @@ type PriorityWorkOrderResponse = {
windows99_vmx_source_locator_target_aliases?: string[] | null;
windows99_vmx_source_locator_next_executable_step?: string | null;
windows99_vmx_source_locator_expected_vmx_path_count?: number | null;
windows99_vmx_source_locator_candidate_source_count?: number | null;
windows99_vmx_source_locator_identity_unassigned_ubuntu_candidate_count?: number | null;
windows99_vmx_source_locator_candidate_confirmation_required?: boolean | null;
windows99_vmx_source_locator_candidate_source_count_known?: boolean | null;
windows99_vmx_source_locator_collector_readback_present?: boolean | null;
windows99_vmx_source_locator_collector_collection_status?: string | null;
@@ -1269,6 +1272,9 @@ type PriorityWorkOrderResponse = {
windows99_vmx_source_locator_target_aliases?: string[] | null;
windows99_vmx_source_locator_next_executable_step?: string | null;
windows99_vmx_source_locator_expected_vmx_path_count?: number | null;
windows99_vmx_source_locator_candidate_source_count?: number | null;
windows99_vmx_source_locator_identity_unassigned_ubuntu_candidate_count?: number | null;
windows99_vmx_source_locator_candidate_confirmation_required?: boolean | null;
windows99_vmx_source_locator_candidate_source_count_known?: boolean | null;
windows99_vmx_source_locator_collector_readback_present?: boolean | null;
windows99_vmx_source_locator_collector_collection_status?: string | null;
@@ -1414,20 +1420,23 @@ const COMMANDER_INSERTED_REQUIREMENT_FALLBACK: PriorityWorkOrderResponse = {
windows99_vmx_source_repair_playbook_trust_writeback_ref:
"playbook://awoooi/windows99-vmx-source-repair/windows99-vmx-source-repair-111",
windows99_vmx_source_locator_status:
"check_mode_locator_ready_windows99_vmx_source_required",
"collector_readback_single_identity_candidate_confirmation_required",
windows99_vmx_source_locator_required: true,
windows99_vmx_source_locator_check_mode_ready: true,
windows99_vmx_source_locator_target_aliases: ["111"],
windows99_vmx_source_locator_next_executable_step:
"run_no_secret_windows99_vmx_source_locator_collect",
"confirm_single_unassigned_ubuntu_candidate_before_scoped_relink_dry_run",
windows99_vmx_source_locator_expected_vmx_path_count: 1,
windows99_vmx_source_locator_candidate_source_count_known: false,
windows99_vmx_source_locator_collector_readback_present: false,
windows99_vmx_source_locator_candidate_source_count: 6,
windows99_vmx_source_locator_identity_unassigned_ubuntu_candidate_count: 1,
windows99_vmx_source_locator_candidate_confirmation_required: true,
windows99_vmx_source_locator_candidate_source_count_known: true,
windows99_vmx_source_locator_collector_readback_present: true,
windows99_vmx_source_locator_collector_collection_status:
"not_collected_by_api_readback",
"collected_windows99_vmx_source_locator_stdout",
windows99_vmx_source_locator_raw_path_output: false,
windows99_vmx_source_locator_path_fingerprint_only: true,
windows99_vmx_source_locator_file_content_read: false,
windows99_vmx_source_locator_file_content_read: true,
windows99_vmx_source_locator_remote_write_performed: false,
windows99_vmx_source_locator_vm_power_change_performed: false,
stockplatform_public_api_runtime_status: "stockplatform_public_api_runtime_ready",
@@ -1528,20 +1537,23 @@ const COMMANDER_INSERTED_REQUIREMENT_FALLBACK: PriorityWorkOrderResponse = {
windows99_vmx_source_repair_playbook_trust_writeback_ref:
"playbook://awoooi/windows99-vmx-source-repair/windows99-vmx-source-repair-111",
windows99_vmx_source_locator_status:
"check_mode_locator_ready_windows99_vmx_source_required",
"collector_readback_single_identity_candidate_confirmation_required",
windows99_vmx_source_locator_required: true,
windows99_vmx_source_locator_check_mode_ready: true,
windows99_vmx_source_locator_target_aliases: ["111"],
windows99_vmx_source_locator_next_executable_step:
"run_no_secret_windows99_vmx_source_locator_collect",
"confirm_single_unassigned_ubuntu_candidate_before_scoped_relink_dry_run",
windows99_vmx_source_locator_expected_vmx_path_count: 1,
windows99_vmx_source_locator_candidate_source_count_known: false,
windows99_vmx_source_locator_collector_readback_present: false,
windows99_vmx_source_locator_candidate_source_count: 6,
windows99_vmx_source_locator_identity_unassigned_ubuntu_candidate_count: 1,
windows99_vmx_source_locator_candidate_confirmation_required: true,
windows99_vmx_source_locator_candidate_source_count_known: true,
windows99_vmx_source_locator_collector_readback_present: true,
windows99_vmx_source_locator_collector_collection_status:
"not_collected_by_api_readback",
"collected_windows99_vmx_source_locator_stdout",
windows99_vmx_source_locator_raw_path_output: false,
windows99_vmx_source_locator_path_fingerprint_only: true,
windows99_vmx_source_locator_file_content_read: false,
windows99_vmx_source_locator_file_content_read: true,
windows99_vmx_source_locator_remote_write_performed: false,
windows99_vmx_source_locator_vm_power_change_performed: false,
drill_preflight_blocker_count: 5,
@@ -9357,6 +9369,18 @@ function ManagerSituationBoard({
summary?.windows99_vmx_source_locator_expected_vmx_path_count ??
evidence?.windows99_vmx_source_locator_expected_vmx_path_count ??
0;
const vmxSourceLocatorCandidateCount =
summary?.windows99_vmx_source_locator_candidate_source_count ??
evidence?.windows99_vmx_source_locator_candidate_source_count ??
0;
const vmxSourceLocatorIdentityUnassignedCount =
summary?.windows99_vmx_source_locator_identity_unassigned_ubuntu_candidate_count ??
evidence?.windows99_vmx_source_locator_identity_unassigned_ubuntu_candidate_count ??
0;
const vmxSourceLocatorConfirmationRequired =
summary?.windows99_vmx_source_locator_candidate_confirmation_required ??
evidence?.windows99_vmx_source_locator_candidate_confirmation_required ??
false;
const vmxSourceLocatorCandidateKnown =
summary?.windows99_vmx_source_locator_candidate_source_count_known ??
evidence?.windows99_vmx_source_locator_candidate_source_count_known ??
@@ -9736,9 +9760,28 @@ function ManagerSituationBoard({
</span>
<span className="border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{vmxSourceLocatorCandidateKnown
? t("vmxRepair.locatorCandidatesKnown")
? t("vmxRepair.locatorCandidatesKnown", {
count: vmxSourceLocatorCandidateCount,
})
: t("vmxRepair.locatorCandidatesUnknown")}
</span>
<span className="border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{t("vmxRepair.locatorIdentityUnassigned", {
count: vmxSourceLocatorIdentityUnassignedCount,
})}
</span>
<span
className={cn(
"border bg-white px-2 py-0.5 text-[11px] font-semibold",
vmxSourceLocatorConfirmationRequired
? "border-[#f0c6a8] text-[#9a4d16]"
: "border-[#cbd7bf] text-[#3d6b24]"
)}
>
{vmxSourceLocatorConfirmationRequired
? t("vmxRepair.locatorNeedsConfirm")
: t("vmxRepair.locatorConfirmClosed")}
</span>
<span className="border border-[#d8d3c7] bg-white px-2 py-0.5 text-[11px] font-semibold text-[#5f5b52]">
{vmxSourceLocatorCollectorPresent
? t("vmxRepair.locatorCollected")