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
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:
@@ -1,3 +1,21 @@
|
||||
## 2026-07-03 — 12:47 Windows99 VMX locator receipt readback 上卷
|
||||
|
||||
**完成內容**:
|
||||
- 將 live via-110 no-secret locator receipt 收斂成 `docs/operations/windows99-vmx-source-locator-receipt.snapshot.json`,只保留 redacted counters / receipt ref / bounded identity metadata flag;明確禁止 public payload 帶 raw path、內部 IP、UUID、generatedAddress、secret、write、reboot 或 VM power change。
|
||||
- `/api/v1/agents/windows99-vmx-source-locator-readback` 從單純 package ready 推進為 collector receipt readback:投影 `candidate_source_count=6`、`alias_hint_candidate_count=0`、`unassigned_ubuntu_candidate_count=5`、`identity_unassigned_ubuntu_candidate_count=1`、`candidate_confirmation_required=true`,狀態為 `collector_readback_single_identity_candidate_confirmation_required`。
|
||||
- `awoooi-priority-work-order-readback` 同步上卷 locator receipt counters / confirmation gate;AwoooP Work Items 補上候選、未指派、需確認與 identity read chips,維持 mobile overflow 防護。
|
||||
- 合併 remote `effective_locator_collect_ready` / `ssh_batch_status` / `locator_collect_blocker` 防誤判欄位:direct SSH collect 仍顯示 blocker,但 via-110 receipt 已把下一步推到 identity confirmation,而不是重複等待 blind collect。
|
||||
|
||||
**已跑驗證**:
|
||||
- `git diff --check`:通過。
|
||||
- `python3.11 -m py_compile apps/api/src/services/windows99_vmx_source_locator_readback.py apps/api/src/services/awoooi_priority_work_order_readback.py`:通過。
|
||||
- `DATABASE_URL=postgresql+asyncpg://test:test@localhost/test PYTHONPATH=apps/api python3.11 -m pytest apps/api/tests/test_windows99_vmx_source_locator_readback_api.py apps/api/tests/test_awoooi_priority_work_order_readback_api.py -q -p no:cacheprovider`:`22 passed`。
|
||||
- `pnpm --dir apps/web typecheck`:通過。
|
||||
|
||||
**仍維持**:
|
||||
- P0-006 尚未完成:唯一 identity-unassigned Ubuntu candidate 需要更強 identity confirmation 後,才能產生 scoped relink / restore dry-run;本輪未執行 relink / restore / apply / VM power change。
|
||||
- 未讀 secret / token / `.env` / raw sessions / SQLite / auth;未使用 GitHub / gh;未 workflow_dispatch;未啟動或關閉 VM;未重啟 host / service;未 Docker / Nginx / K3s / DB / firewall restart;未 DROP / TRUNCATE / restore / prune / delete / force push。
|
||||
|
||||
## 2026-07-03 — 12:36 Windows99 VMX locator effective collect readiness 防誤判
|
||||
|
||||
**完成內容**:
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"schema_version": "windows99_vmx_source_locator_receipt_v1",
|
||||
"generated_at": "2026-07-03T12:41:34+08:00",
|
||||
"receipt_ref": "log://awoooi/p0-006/windows99-vmx-source-locator-111",
|
||||
"source": "live_via_110_no_secret_check_mode",
|
||||
"collector_schema_version": "windows99_vmx_source_locate_collector_v1",
|
||||
"collector_readback_present": true,
|
||||
"collector_collection_status": "collected_windows99_vmx_source_locator_stdout",
|
||||
"target_host_alias": "99",
|
||||
"via_host_alias": "110",
|
||||
"target_vm_aliases": ["111"],
|
||||
"expected_vmx_path_count": 1,
|
||||
"expected_vmx_path_present_count": 0,
|
||||
"candidate_source_count": 6,
|
||||
"candidate_source_count_known": true,
|
||||
"candidate_source_fingerprint_count": 0,
|
||||
"alias_hint_candidate_count": 0,
|
||||
"unassigned_ubuntu_candidate_count": 5,
|
||||
"identity_metadata_read": true,
|
||||
"bounded_identity_metadata_only": true,
|
||||
"identity_target_hint_count": 0,
|
||||
"identity_unassigned_ubuntu_candidate_count": 1,
|
||||
"locate_status": "single_identity_unassigned_ubuntu_candidate_requires_confirmation",
|
||||
"safe_next_step": "confirm_single_unassigned_ubuntu_candidate_is_target_alias_before_scoped_relink_dry_run",
|
||||
"candidate_confirmation_required": true,
|
||||
"controlled_relink_dry_run_ready": false,
|
||||
"apply_allowed_by_this_receipt": false,
|
||||
"public_lan_topology_redacted": true,
|
||||
"redacted_public_display_only": true,
|
||||
"collector_stdout_raw_path_output_redacted": true,
|
||||
"raw_path_output": false,
|
||||
"path_fingerprint_only": true,
|
||||
"secret_value_read": false,
|
||||
"password_prompt_allowed": false,
|
||||
"remote_write_performed": false,
|
||||
"host_reboot_performed": false,
|
||||
"vm_power_change_performed": false,
|
||||
"windows_service_restart_performed": false,
|
||||
"windows_registry_apply_performed": false,
|
||||
"scheduled_task_write_performed": false,
|
||||
"km_writeback_ref": "km://awoooi/reboot-slo/windows99-vmx-source-locator-111",
|
||||
"rag_chunk_ref": "rag://awoooi/reboot-slo/windows99-vmx-source-locator-111",
|
||||
"mcp_evidence_ref": "mcp://awoooi/windows99/windows99-vmx-source-locator-111",
|
||||
"playbook_trust_writeback_ref": "playbook://awoooi/windows99-vmx-source-locator/windows99-vmx-source-locator-111",
|
||||
"post_apply_verifier": [
|
||||
"bash scripts/reboot-recovery/collect-windows99-vmware-verify.sh --collect",
|
||||
"bash scripts/reboot-recovery/install-reboot-auto-recovery-slo-110.sh --verify-only",
|
||||
"GET /api/v1/agents/windows99-vmx-source-locator-readback",
|
||||
"GET /api/v1/agents/reboot-auto-recovery-slo-scorecard",
|
||||
"GET /api/v1/agents/awoooi-priority-work-order-readback"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user