diff --git a/deployment/receipts/XX-GZ-001-HOST-NAVIGATION-20260807.json b/deployment/receipts/XX-GZ-001-HOST-NAVIGATION-20260807.json new file mode 100644 index 0000000..735c91d --- /dev/null +++ b/deployment/receipts/XX-GZ-001-HOST-NAVIGATION-20260807.json @@ -0,0 +1,25 @@ +{ + "schema": "guanghu.host-navigation-registration-receipt/v1", + "receipt_id": "XX-GZ-001-HOST-NAVIGATION-20260807", + "node_id": "XX-GZ-001", + "human_controller": "小新", + "intent_id": "INTENT-XX-EDUCATION-SERVER-OPERATION-001", + "host": "HOST-CODEX-MACOS-001", + "transport": "LOCAL_DEDICATED_KEY_SSH", + "base_commit": "18c389b885cdde4e7c11fc6594bdf85ede60ad0b", + "source_policy": "ARTIFACT_ONLY_NO_APPLICATION_SOURCE", + "update_policy": "GUANGHU_RELEASE_CHANNEL_ONLY_NO_OPEN_SOURCE_UPSTREAM_SYNC", + "fallback_policy": "WORKORDER_EMAIL_FORBIDDEN_WHILE_VERIFIED_LOCAL_KEY_ROUTE_IS_AVAILABLE", + "changed_files": [ + "routing/host-skill-navigation-map.json", + "routing/public-navigation-anchor.json", + "skills/shared/guanghu-lighthouse-navigator/scripts/test_resolve_lighthouse_route.py" + ], + "verification": { + "navigator_tests": "PASS_7_OF_7", + "codex_route": "ALLOW_NAVIGATION", + "target_id": "XX-GZ-001", + "authority_granted_by_navigation": false + }, + "state": "READY_FOR_PUBLICATION" +} diff --git a/routing/host-skill-navigation-map.json b/routing/host-skill-navigation-map.json index 921cfad..e21cdee 100644 --- a/routing/host-skill-navigation-map.json +++ b/routing/host-skill-navigation-map.json @@ -2,7 +2,7 @@ "schema": "guanghu.host-skill-navigation-map/v1", "map_id": "GLW-HOST-SKILL-NAV-001", "lighthouse_id": "SYS-GLW-LTH-0001", - "version": "2026-08-07.3", + "version": "2026-08-07.4", "state": "CURRENT", "hosts": [ { @@ -196,6 +196,52 @@ "SERVER_RECEIPT_READBACK_FAILED" ], "authority": "CURRENT_USER_TASK_SCOPE_ONLY_NOT_BLANKET_SERVER_AUTHORITY" + }, + { + "id": "INTENT-XX-EDUCATION-SERVER-OPERATION-001", + "phrases": [ + "小新服务器", + "小新教育服务器", + "教育行业服务器", + "教育服务器", + "XX-GZ-001", + "部署小新教育节点", + "检查小新教育节点", + "更新小新教育节点" + ], + "skill_id": "GHS-009-LIGHTHOUSE-HOST-NAVIGATION", + "target_id": "XX-GZ-001", + "transport": "LOCAL_DEDICATED_KEY_SSH", + "local_access_registry": "HL-LOCAL-SERVER-ACCESS-001", + "executor": "guanghu-os-server", + "sequence": [ + "resolve_target_through_lighthouse", + "verify_current_host_is_bingshuo_local_macos", + "resolve_registered_local_dedicated_key_without_exposing_secret", + "strict_host_key_direct_login", + "verify_exact_dmi_instance_uuid", + "bind_action_to_current_user_task_and_immutable_source", + "execute_only_registered_bounded_action", + "read_back_server_owned_receipt" + ], + "fallback": { + "transport": "WORKORDER_EMAIL", + "allowed_only_when": [ + "CURRENT_INSTANCE_NOT_ON_BINGSHUO_LOCAL_COMPUTER", + "REGISTERED_LOCAL_DEDICATED_KEY_ROUTE_UNAVAILABLE" + ], + "forbidden_when": "VERIFIED_LOCAL_DEDICATED_KEY_DIRECT_ROUTE_AVAILABLE" + }, + "stop_conditions": [ + "LIGHTHOUSE_LOOKUP_NOT_200", + "TARGET_NOT_CURRENT", + "LOCAL_ACCESS_REGISTRY_MISSING", + "STRICT_HOST_KEY_VERIFICATION_FAILED", + "DMI_INSTANCE_UUID_MISMATCH", + "CURRENT_TASK_AUTHORITY_NOT_PROVEN", + "SERVER_RECEIPT_READBACK_FAILED" + ], + "authority": "CURRENT_USER_TASK_SCOPE_ONLY_NOT_BLANKET_SERVER_AUTHORITY" } ], "truth_precedence": [ diff --git a/routing/public-navigation-anchor.json b/routing/public-navigation-anchor.json index d29df37..ed647d1 100644 --- a/routing/public-navigation-anchor.json +++ b/routing/public-navigation-anchor.json @@ -47,7 +47,7 @@ "host_skills": { "path": "routing/host-skill-navigation-map.json", "id": "GLW-HOST-SKILL-NAV-001", - "version": "2026-08-07.3" + "version": "2026-08-07.4" }, "persona_skills": { "path": "skills/codex/guanghu-persona-skill-guard/references/persona-skill-registry.json", diff --git a/skills/shared/guanghu-lighthouse-navigator/scripts/test_resolve_lighthouse_route.py b/skills/shared/guanghu-lighthouse-navigator/scripts/test_resolve_lighthouse_route.py index 1157d59..9a94a0b 100644 --- a/skills/shared/guanghu-lighthouse-navigator/scripts/test_resolve_lighthouse_route.py +++ b/skills/shared/guanghu-lighthouse-navigator/scripts/test_resolve_lighthouse_route.py @@ -54,6 +54,17 @@ class LighthouseNavigatorTests(unittest.TestCase): ) self.assertFalse(route["authority_granted"]) + def test_xiaoxin_education_server_uses_registered_node(self): + route = compile_route(self.registry, self.host_map, "codex", "继续部署小新教育服务器") + self.assertEqual(route["decision"], "ALLOW_NAVIGATION") + self.assertEqual( + route["intent"]["id"], + "INTENT-XX-EDUCATION-SERVER-OPERATION-001", + ) + self.assertEqual(route["target"]["id"], "XX-GZ-001") + self.assertEqual(route["intent"]["transport"], "LOCAL_DEDICATED_KEY_SSH") + self.assertFalse(route["authority_granted"]) + def test_hololake_architecture_uses_repo014_online_main(self): route = compile_route( self.registry,