diff --git a/product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/LINUX-SHADOW-BACKEND-PHYSICAL-RECEIPT-20260815.hdlp b/product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/LINUX-SHADOW-BACKEND-PHYSICAL-RECEIPT-20260815.hdlp new file mode 100644 index 0000000..4315b59 --- /dev/null +++ b/product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/LINUX-SHADOW-BACKEND-PHYSICAL-RECEIPT-20260815.hdlp @@ -0,0 +1,48 @@ +schema: guanghu.linux-subcontrol-deployment-receipt/v1 +id: GH-OS-RECEIPT-JD-FD-PRIMARY-LINUX-SHADOW-20260815-001 +result: PASS_100_BOUNDED_SHADOW_CYCLE +observed_at: 2026-08-15T18:08:11+08:00 +target: + node_id: JD-FD-PRIMARY + instance_id: f3d4b730-7f02-452f-975b-7091a4800431 +implementation: + commit: 9c8fc5046adc6766ebc4e2f2542c2b60c4b7d1af + tree: 5711a5235b6a0557d11001f038153a4bcb0e9cdd + quality_gate: GHNQG_PASS_100 + image: docker.m.daocloud.io/library/ubuntu@sha256:3b06811b2afd352be909dd088a004166d665dc76d38b13eada33522a9d915c6f +physical_cycle: + initial: dormant + wake: ready + capability: runtime-identity-readback + target_id: ubuntu + target_version_id: 22.04 + verify: PASS + reclaim: PASS + final: dormant + container_absent_after_reclaim: true +isolation: + network: none + readonly_rootfs: true + capabilities_dropped: ALL + no_new_privileges: true + pids_limit: 64 + memory_bytes: 268435456 + nano_cpus: 500000000 +unchanged: + boot_id: 68d4a3c9-c866-4f4a-be2e-0aa5f41a61b1 + default_target: guanghu-language-primary.target + current_world: /guanghu/versions/da26f27e35ba2751ce495e6103da56d6d0b6449a-unified-world-20260807 + rescue_slot_present: true + public_code_http: 200 + public_anchor_http: 200 +server_receipt: + path: /guanghu/recovery/JD-FD-PRIMARY-linux-subcontrol-f5217fe/DEPLOYMENT-RECEIPT.hldp + sha256: 4a7d0cb354ff0472dbd8e2e43d89021d65b21f0beea3c702dcbeacdd1c73bfbc +truth_boundary: + linux_hosted_isolated_shadow_backend: 100 + jd_shadow_backend_physical_cycle: 100 + real_isolated_linux_backend_owned_by_guanghu_boot_supervisor: 0 + linux_on_demand_subcontrol: 0 + final_guanghu_boot_control: 0 + final_guanghu_os_master: 0 + reason: Ubuntu remains the host; this receipt does not prove Guanghu-first boot ownership diff --git a/routing/guanghu-os-control-architecture.json b/routing/guanghu-os-control-architecture.json index 4056055..45cbfdd 100644 --- a/routing/guanghu-os-control-architecture.json +++ b/routing/guanghu-os-control-architecture.json @@ -1,7 +1,7 @@ { "schema": "guanghu.os-control-architecture/v1", "record_id": "HLP-GUANGHU-OS-CONTROL-001", - "version": "2026-08-15.2", + "version": "2026-08-15.3", "state": "CURRENT_CANONICAL", "final_topology": "GUANGHU_MASTER_WITH_ON_DEMAND_LINUX_SUBCONTROL_AND_RESCUE", "control_ownership": { @@ -39,7 +39,7 @@ "linux_on_demand_subcontrol": 0, "linux_rescue_preserved": 100, "final_guanghu_os_master": 0, - "next_engineering_gate": "INTEGRATE_A_REAL_ISOLATED_LINUX_BACKEND_AND_GUANGHU_FIRST_BOOT_SUPERVISOR_BEFORE_JD_PHYSICAL_CUTOVER" + "next_engineering_gate": "IMPLEMENT_EQUIVALENT_SERVICE_CONTRACT_AND_INDEPENDENT_GUANGHU_SUPERVISOR_OWNERSHIP_BEFORE_ANY_BOOT_CUTOVER" }, "implementation": { "guanghu_supervisor_lifecycle_contract_source": 100, @@ -47,11 +47,20 @@ "target_readback_and_mandatory_reclaim_state_machine": 100, "declared_supervisor_core_line_and_function_coverage": 100, "docker_shadow_backend_source_and_isolation_contract": 100, + "linux_hosted_isolated_shadow_backend": 100, "real_isolated_linux_backend": 0, - "jd_shadow_backend_physical_cycle": 0, + "jd_shadow_backend_physical_cycle": 100, "independent_guanghu_first_boot_supervisor": 0, "jd_physical_deployment": 0 }, + "current_target_evidence": { + "server_receipt": "/guanghu/recovery/JD-FD-PRIMARY-linux-subcontrol-f5217fe/DEPLOYMENT-RECEIPT.hldp", + "server_receipt_sha256": "4a7d0cb354ff0472dbd8e2e43d89021d65b21f0beea3c702dcbeacdd1c73bfbc", + "backend_source_commit": "9c8fc5046adc6766ebc4e2f2542c2b60c4b7d1af", + "image": "docker.m.daocloud.io/library/ubuntu@sha256:3b06811b2afd352be909dd088a004166d665dc76d38b13eada33522a9d915c6f", + "final_state": "DORMANT", + "observed_at": "2026-08-15T18:08:11+08:00" + }, "historical_evidence_policy": { "bare_metal_gosk_ghal_receipts_remain_valid_for_observed_capabilities": true, "historical_linux_free_completion_formula_is_current": false, diff --git a/routing/guanghu-os-control-architecture.test.mjs b/routing/guanghu-os-control-architecture.test.mjs index 66d6ef9..5474998 100644 --- a/routing/guanghu-os-control-architecture.test.mjs +++ b/routing/guanghu-os-control-architecture.test.mjs @@ -31,16 +31,19 @@ test("current JD state stays transitional and cannot impersonate final master co assert.equal(contract.jd_fd_primary.final_guanghu_os_master, 0); }); -test("source lifecycle progress does not impersonate backend, boot, or JD deployment", () => { - assert.equal(contract.version, "2026-08-15.2"); +test("the physical shadow cycle is registered without impersonating Guanghu-owned boot control", () => { + assert.equal(contract.version, "2026-08-15.3"); assert.equal(contract.implementation.guanghu_supervisor_lifecycle_contract_source, 100); assert.equal(contract.implementation.target_readback_and_mandatory_reclaim_state_machine, 100); assert.equal(contract.implementation.declared_supervisor_core_line_and_function_coverage, 100); assert.equal(contract.implementation.docker_shadow_backend_source_and_isolation_contract, 100); + assert.equal(contract.implementation.linux_hosted_isolated_shadow_backend, 100); assert.equal(contract.implementation.real_isolated_linux_backend, 0); - assert.equal(contract.implementation.jd_shadow_backend_physical_cycle, 0); + assert.equal(contract.implementation.jd_shadow_backend_physical_cycle, 100); assert.equal(contract.implementation.independent_guanghu_first_boot_supervisor, 0); assert.equal(contract.implementation.jd_physical_deployment, 0); + assert.equal(contract.current_target_evidence.final_state, "DORMANT"); + assert.match(contract.current_target_evidence.server_receipt_sha256, /^[0-9a-f]{64}$/); }); test("current architecture and global engineering rules project the same control contract", () => {