docs(guanghu-os): register native projection shadow deployment

This commit is contained in:
冰朔 2026-08-15 20:20:13 +08:00
commit ace87cfba7
6 changed files with 84 additions and 14 deletions

View file

@ -1,7 +1,7 @@
{
"schema": "guanghu.os-control-architecture/v1",
"record_id": "HLP-GUANGHU-OS-CONTROL-001",
"version": "2026-08-15.6",
"version": "2026-08-15.7",
"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": "DEPLOY_AND_VERIFY_BS_GZ_006_LOOPBACK_SHADOW_RECEIVER_WITHOUT_NGINX_OR_BOOT_CHANGES"
"next_engineering_gate": "DESIGN_AND_TEST_FAIL_CLOSED_LINUX_FALLBACK_BEFORE_ANY_NGINX_ROUTE_SWITCH_OR_NATIVE_BOOT"
},
"implementation": {
"guanghu_supervisor_lifecycle_contract_source": 100,
@ -56,8 +56,8 @@
"jd_physical_host_isolated_qemu_capability": 100,
"native_public_projection_contract_source": 100,
"native_public_projection_isolated_end_to_end_test": 100,
"bs_gz_shadow_projection_receiver": 0,
"bs_sg_authenticated_projection_sender": 0,
"bs_gz_shadow_projection_receiver": 100,
"bs_sg_authenticated_projection_sender": 100,
"live_native_projection_freshness": 0,
"nginx_native_projection_route_switch": 0,
"public_native_anchor_equivalence": 0,
@ -84,6 +84,18 @@
"native_physical_residency": 0,
"public_native_service_equivalence": 0
},
"native_public_projection_shadow_evidence": {
"source_commit": "2e076c4d5ea75da55abecfd9d021fa4d1709705e",
"source_tree": "c631bed8b042e718f4cbeb5b409446613a48687d",
"bs_gz_server_receipt": "/var/lib/guanghu-os/receipts/BS-GZ-006-NATIVE-PROJECTION-SHADOW-RECEIPT.hldp",
"bs_gz_server_receipt_sha256": "d3c22066ef5ad1880d4724df8bc1e8e99c1a6cf4ad5e35b662ccb3522e40a7bb",
"bs_sg_server_receipt": "/var/lib/guanghu-os/BS-SG-003-NATIVE-PROJECTION-RELAY-RECEIPT.hldp",
"bs_sg_server_receipt_sha256": "e567ec9a776641bbde61b078a9c69c5988e105e91a3346394e0fdf409965d387",
"synthetic_ready_shadow_readback": 100,
"post_test_state": "DORMANT",
"live_native_freshness_readback": 0,
"nginx_public_route_switched": 0
},
"historical_evidence_policy": {
"bare_metal_gosk_ghal_receipts_remain_valid_for_observed_capabilities": true,
"historical_linux_free_completion_formula_is_current": false,

View file

@ -38,7 +38,7 @@ test("current JD state stays transitional and cannot impersonate final master co
});
test("the physical shadow and host QEMU cycles are registered without impersonating Guanghu-owned boot control", () => {
assert.equal(contract.version, "2026-08-15.6");
assert.equal(contract.version, "2026-08-15.7");
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);
@ -52,8 +52,8 @@ test("the physical shadow and host QEMU cycles are registered without impersonat
assert.equal(contract.implementation.jd_physical_host_isolated_qemu_capability, 100);
assert.equal(contract.implementation.native_public_projection_contract_source, 100);
assert.equal(contract.implementation.native_public_projection_isolated_end_to_end_test, 100);
assert.equal(contract.implementation.bs_gz_shadow_projection_receiver, 0);
assert.equal(contract.implementation.bs_sg_authenticated_projection_sender, 0);
assert.equal(contract.implementation.bs_gz_shadow_projection_receiver, 100);
assert.equal(contract.implementation.bs_sg_authenticated_projection_sender, 100);
assert.equal(contract.implementation.live_native_projection_freshness, 0);
assert.equal(contract.implementation.nginx_native_projection_route_switch, 0);
assert.equal(contract.implementation.public_native_anchor_equivalence, 0);
@ -66,6 +66,12 @@ 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.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);
assert.equal(contract.native_public_projection_shadow_evidence.nginx_public_route_switched, 0);
assert.match(contract.native_public_projection_shadow_evidence.bs_gz_server_receipt_sha256, /^[0-9a-f]{64}$/);
assert.match(contract.native_public_projection_shadow_evidence.bs_sg_server_receipt_sha256, /^[0-9a-f]{64}$/);
});
test("native public projection separates liveness, authenticated state, and pinned public bytes", () => {
@ -78,8 +84,8 @@ test("native public projection separates liveness, authenticated state, and pinn
assert.equal(projectionContract.front_door_projection.nginx_route_switch_authorized, false);
assert.equal(projectionContract.acceptance_gates.contract_source, 100);
assert.equal(projectionContract.acceptance_gates.isolated_end_to_end_test, 100);
assert.equal(projectionContract.acceptance_gates.bs_gz_shadow_receiver_deployed, 0);
assert.equal(projectionContract.acceptance_gates.bs_sg_authenticated_projector_deployed, 0);
assert.equal(projectionContract.acceptance_gates.bs_gz_shadow_receiver_deployed, 100);
assert.equal(projectionContract.acceptance_gates.bs_sg_authenticated_projector_deployed, 100);
assert.equal(projectionContract.acceptance_gates.live_native_freshness_readback, 0);
assert.equal(projectionContract.acceptance_gates.nginx_public_route_switched, 0);
assert.equal(projectionContract.acceptance_gates.public_native_anchor_equivalence, 0);