docs(guanghu-os): register JD pre-root QEMU proof

This commit is contained in:
冰朔 2026-08-15 23:35:22 +08:00
commit fed0c73b04
6 changed files with 110 additions and 15 deletions

View file

@ -1,7 +1,7 @@
{
"schema": "guanghu.os-control-architecture/v1",
"record_id": "HLP-GUANGHU-OS-CONTROL-001",
"version": "2026-08-15.10",
"version": "2026-08-15.11",
"state": "CURRENT_CANONICAL",
"final_topology": "GUANGHU_MASTER_WITH_ON_DEMAND_LINUX_SUBCONTROL_AND_RESCUE",
"control_ownership": {
@ -33,13 +33,13 @@
"linux_hosted_service_control_is_final_master": false
},
"jd_fd_primary": {
"observed_state": "LANGUAGE_PRIMARY_ON_LINUX_HOSTED_GUANGHU_SUPERVISOR_BRIDGE",
"observed_state": "LANGUAGE_PRIMARY_WITH_QEMU_VERIFIED_PRE_ROOT_GUANGHU_SUPERVISOR",
"guanghu_semantic_service_control": 100,
"guanghu_final_boot_control": 0,
"linux_on_demand_subcontrol": 0,
"linux_rescue_preserved": 100,
"final_guanghu_os_master": 0,
"next_engineering_gate": "BUILD_AND_VERIFY_JD_HOST_QEMU_PRE_ROOT_GUANGHU_SUPERVISOR_WITHOUT_BOOT_CHANGE"
"next_engineering_gate": "IMPLEMENT_AND_VERIFY_CROSS_SWITCH_ROOT_PERSISTENT_GUANGHU_SUPERVISOR_IN_ISOLATION"
},
"implementation": {
"guanghu_supervisor_lifecycle_contract_source": 100,
@ -72,7 +72,7 @@
"linux_code_bridge_under_guanghu_supervisor": 100,
"guanghu_pre_root_supervisor_contract_source": 100,
"guanghu_first_boot_initramfs_builder_source": 100,
"jd_host_qemu_pre_root_supervisor": 0,
"jd_host_qemu_pre_root_supervisor": 100,
"independent_guanghu_first_boot_supervisor": 0,
"jd_physical_deployment": 0
},
@ -92,6 +92,21 @@
"final_guanghu_os_master": 0,
"observed_at": "2026-08-15T22:44:59+08:00"
},
"pre_root_supervisor_qemu_evidence": {
"source_commit": "29bb023455ce245dc44dbd5e61ced92cd647e071",
"source_tree": "4e158f7aaf8700afbf5cd859cbd8f00f30c32246",
"repository_receipt": "product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/PRE-ROOT-SUPERVISOR-QEMU-RECEIPT-20260815.hldp",
"server_receipt": "/guanghu/recovery/JD-FD-PRIMARY-pre-root-qemu-af84e42/DEPLOYMENT-RECEIPT.hldp",
"server_receipt_sha256": "446d7226ac89967489785d60b5bdaa5011547e14b8c9c1d90adae8095fdab986",
"candidate_initramfs_sha256": "55d8aafc8ff413c8976e017438372ec6bc45f4f7accfb3ff2e1e570e392b2dfa",
"positive_pre_root_execution": 100,
"negative_authority_binding_hard_fail": 100,
"physical_boot_files_changed": false,
"physical_reboot_performed": false,
"cross_switch_root_persistent_supervisor": 0,
"final_guanghu_os_master": 0,
"observed_at": "2026-08-15T23:45:00+08:00"
},
"current_target_evidence": {
"server_receipt": "/guanghu/recovery/JD-FD-PRIMARY-linux-subcontrol-f5217fe/DEPLOYMENT-RECEIPT.hldp",
"server_receipt_sha256": "4a7d0cb354ff0472dbd8e2e43d89021d65b21f0beea3c702dcbeacdd1c73bfbc",

View file

@ -34,17 +34,21 @@ test("final topology makes Guanghu the master while preserving Linux as on-deman
test("current JD state stays transitional and cannot impersonate final master control", () => {
assert.equal(
contract.jd_fd_primary.observed_state,
"LANGUAGE_PRIMARY_ON_LINUX_HOSTED_GUANGHU_SUPERVISOR_BRIDGE",
"LANGUAGE_PRIMARY_WITH_QEMU_VERIFIED_PRE_ROOT_GUANGHU_SUPERVISOR",
);
assert.equal(contract.jd_fd_primary.guanghu_semantic_service_control, 100);
assert.equal(contract.jd_fd_primary.guanghu_final_boot_control, 0);
assert.equal(contract.jd_fd_primary.linux_on_demand_subcontrol, 0);
assert.equal(contract.jd_fd_primary.linux_rescue_preserved, 100);
assert.equal(contract.jd_fd_primary.final_guanghu_os_master, 0);
assert.equal(
contract.jd_fd_primary.next_engineering_gate,
"IMPLEMENT_AND_VERIFY_CROSS_SWITCH_ROOT_PERSISTENT_GUANGHU_SUPERVISOR_IN_ISOLATION",
);
});
test("the physical shadow and host QEMU cycles are registered without impersonating Guanghu-owned boot control", () => {
assert.equal(contract.version, "2026-08-15.10");
assert.equal(contract.version, "2026-08-15.11");
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);
@ -74,7 +78,7 @@ test("the physical shadow and host QEMU cycles are registered without impersonat
assert.equal(contract.implementation.linux_code_bridge_under_guanghu_supervisor, 100);
assert.equal(contract.implementation.guanghu_pre_root_supervisor_contract_source, 100);
assert.equal(contract.implementation.guanghu_first_boot_initramfs_builder_source, 100);
assert.equal(contract.implementation.jd_host_qemu_pre_root_supervisor, 0);
assert.equal(contract.implementation.jd_host_qemu_pre_root_supervisor, 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");
@ -82,6 +86,13 @@ test("the physical shadow and host QEMU cycles are registered without impersonat
assert.equal(contract.native_service_qemu_evidence.native_physical_residency, 0);
assert.equal(contract.native_service_qemu_evidence.public_native_service_equivalence, 0);
assert.match(contract.native_service_qemu_evidence.server_receipt_sha256, /^[0-9a-f]{64}$/);
assert.equal(contract.pre_root_supervisor_qemu_evidence.positive_pre_root_execution, 100);
assert.equal(contract.pre_root_supervisor_qemu_evidence.negative_authority_binding_hard_fail, 100);
assert.equal(contract.pre_root_supervisor_qemu_evidence.physical_boot_files_changed, false);
assert.equal(contract.pre_root_supervisor_qemu_evidence.physical_reboot_performed, false);
assert.equal(contract.pre_root_supervisor_qemu_evidence.cross_switch_root_persistent_supervisor, 0);
assert.equal(contract.pre_root_supervisor_qemu_evidence.final_guanghu_os_master, 0);
assert.match(contract.pre_root_supervisor_qemu_evidence.server_receipt_sha256, /^[0-9a-f]{64}$/);
assert.equal(contract.native_public_projection_shadow_evidence.synthetic_ready_shadow_readback, 100);
assert.equal(contract.native_public_projection_shadow_evidence.post_test_state, "DORMANT");
assert.equal(contract.native_public_projection_shadow_evidence.live_native_freshness_readback, 0);