evidence: verify JD repository bridge lifecycle
This commit is contained in:
parent
c9eb7e8c08
commit
9d411a252a
6 changed files with 127 additions and 10 deletions
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"schema": "guanghu.os-control-architecture/v1",
|
||||
"record_id": "HLP-GUANGHU-OS-CONTROL-001",
|
||||
"version": "2026-08-16.1",
|
||||
"version": "2026-08-16.2",
|
||||
"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_WITH_QEMU_VERIFIED_PRE_ROOT_GUANGHU_SUPERVISOR",
|
||||
"observed_state": "LINUX_HOSTED_MAINTENANCE_WITH_GUANGHU_SUPERVISOR_BRIDGE_AND_QEMU_VERIFIED_CROSS_ROOT_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_REAL_FORGEJO_REPOSITORY_SHADOW_LIFECYCLE_ON_JD_WITHOUT_TOUCHING_PUBLIC_REPOSITORY"
|
||||
"next_engineering_gate": "INTEGRATE_BOUNDED_REPOSITORY_BRIDGE_INTO_CROSS_ROOT_GUANGHU_BOOT_CANDIDATE_AND_VERIFY_SERVICE_EQUIVALENCE_IN_QEMU"
|
||||
},
|
||||
"implementation": {
|
||||
"guanghu_supervisor_lifecycle_contract_source": 100,
|
||||
|
|
@ -81,7 +81,7 @@
|
|||
"repository_bridge_lifecycle_controller_source": 100,
|
||||
"forgejo_repository_shadow_backend_source": 100,
|
||||
"repository_bridge_failure_reclaim_contract_test": 100,
|
||||
"jd_real_forgejo_repository_shadow_lifecycle": 0,
|
||||
"jd_real_forgejo_repository_shadow_lifecycle": 100,
|
||||
"independent_guanghu_first_boot_supervisor": 0,
|
||||
"jd_physical_deployment": 0
|
||||
},
|
||||
|
|
@ -131,6 +131,30 @@
|
|||
"final_guanghu_os_master": 0,
|
||||
"observed_at": "2026-08-15T23:55:00+08:00"
|
||||
},
|
||||
"repository_bridge_lifecycle_evidence": {
|
||||
"source_commit": "c9eb7e8c08bfe4120fe3c788523477d7f641ace6",
|
||||
"source_tree": "d25f6e620a69ea9c5546698df9f167f2b038ff66",
|
||||
"repository_receipt": "product-source/hololake-platform/guanghu-os/deployments/JD-FD-PRIMARY/REPOSITORY-BRIDGE-LIFECYCLE-RECEIPT-20260816.hldp",
|
||||
"server_receipt": "/var/lib/guanghu/personas/guanghu/hlcc-v16.0.1/data/recovery/JD-FD-PRIMARY-repository-lifecycle-0d1ded1/DEPLOYMENT-RECEIPT.hldp",
|
||||
"server_receipt_sha256": "bc9cf420125e0633532a7d1fbbe5134141e74defddcca05b5a8f2730ef00d7cc",
|
||||
"lifecycle_receipt": "/var/lib/guanghu/personas/guanghu/hlcc-v16.0.1/data/recovery/JD-FD-PRIMARY-repository-lifecycle-0d1ded1/receipts/REQ-JD-REPO-003.json",
|
||||
"lifecycle_receipt_sha256": "6aee31f6f0ab36fa6ddd090fc7044b43e62abf457dcf69484a51eecd262b8d87",
|
||||
"request_id": "REQ-JD-REPO-003",
|
||||
"isolated_snapshot_main": "0d1ded1196d38a002d9a31f6fd23122bdc96ae93",
|
||||
"public_main_after": "c9eb7e8c08bfe4120fe3c788523477d7f641ace6",
|
||||
"initial_state": "DORMANT",
|
||||
"active_state": "READY",
|
||||
"final_state": "DORMANT",
|
||||
"public_repository_process_preserved": 100,
|
||||
"public_repository_bootstrap_pid": 760,
|
||||
"public_code_http": 200,
|
||||
"public_repository_http": 200,
|
||||
"physical_boot_files_changed": false,
|
||||
"physical_reboot_performed": false,
|
||||
"linux_on_demand_subcontrol": 0,
|
||||
"final_guanghu_os_master": 0,
|
||||
"observed_at": "2026-08-16T00:22:30+08:00"
|
||||
},
|
||||
"current_target_evidence": {
|
||||
"server_receipt": "/guanghu/recovery/JD-FD-PRIMARY-linux-subcontrol-f5217fe/DEPLOYMENT-RECEIPT.hldp",
|
||||
"server_receipt_sha256": "4a7d0cb354ff0472dbd8e2e43d89021d65b21f0beea3c702dcbeacdd1c73bfbc",
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ 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_WITH_QEMU_VERIFIED_PRE_ROOT_GUANGHU_SUPERVISOR",
|
||||
"LINUX_HOSTED_MAINTENANCE_WITH_GUANGHU_SUPERVISOR_BRIDGE_AND_QEMU_VERIFIED_CROSS_ROOT_SUPERVISOR",
|
||||
);
|
||||
assert.equal(contract.jd_fd_primary.guanghu_semantic_service_control, 100);
|
||||
assert.equal(contract.jd_fd_primary.guanghu_final_boot_control, 0);
|
||||
|
|
@ -43,12 +43,12 @@ test("current JD state stays transitional and cannot impersonate final master co
|
|||
assert.equal(contract.jd_fd_primary.final_guanghu_os_master, 0);
|
||||
assert.equal(
|
||||
contract.jd_fd_primary.next_engineering_gate,
|
||||
"BUILD_AND_VERIFY_REAL_FORGEJO_REPOSITORY_SHADOW_LIFECYCLE_ON_JD_WITHOUT_TOUCHING_PUBLIC_REPOSITORY",
|
||||
"INTEGRATE_BOUNDED_REPOSITORY_BRIDGE_INTO_CROSS_ROOT_GUANGHU_BOOT_CANDIDATE_AND_VERIFY_SERVICE_EQUIVALENCE_IN_QEMU",
|
||||
);
|
||||
});
|
||||
|
||||
test("the physical shadow and host QEMU cycles are registered without impersonating Guanghu-owned boot control", () => {
|
||||
assert.equal(contract.version, "2026-08-16.1");
|
||||
assert.equal(contract.version, "2026-08-16.2");
|
||||
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);
|
||||
|
|
@ -87,7 +87,7 @@ test("the physical shadow and host QEMU cycles are registered without impersonat
|
|||
assert.equal(contract.implementation.repository_bridge_lifecycle_controller_source, 100);
|
||||
assert.equal(contract.implementation.forgejo_repository_shadow_backend_source, 100);
|
||||
assert.equal(contract.implementation.repository_bridge_failure_reclaim_contract_test, 100);
|
||||
assert.equal(contract.implementation.jd_real_forgejo_repository_shadow_lifecycle, 0);
|
||||
assert.equal(contract.implementation.jd_real_forgejo_repository_shadow_lifecycle, 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");
|
||||
|
|
@ -109,6 +109,19 @@ test("the physical shadow and host QEMU cycles are registered without impersonat
|
|||
assert.equal(contract.cross_root_supervisor_qemu_evidence.linux_on_demand_subcontrol, 0);
|
||||
assert.equal(contract.cross_root_supervisor_qemu_evidence.final_guanghu_os_master, 0);
|
||||
assert.match(contract.cross_root_supervisor_qemu_evidence.server_receipt_sha256, /^[0-9a-f]{64}$/);
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.initial_state, "DORMANT");
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.active_state, "READY");
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.final_state, "DORMANT");
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.public_repository_process_preserved, 100);
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.public_repository_bootstrap_pid, 760);
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.public_code_http, 200);
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.public_repository_http, 200);
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.physical_boot_files_changed, false);
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.physical_reboot_performed, false);
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.linux_on_demand_subcontrol, 0);
|
||||
assert.equal(contract.repository_bridge_lifecycle_evidence.final_guanghu_os_master, 0);
|
||||
assert.match(contract.repository_bridge_lifecycle_evidence.server_receipt_sha256, /^[0-9a-f]{64}$/);
|
||||
assert.match(contract.repository_bridge_lifecycle_evidence.lifecycle_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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue