diff --git a/deployment/receipts/TEAM-NODE-EVENT-BROADCAST-20260920.json b/deployment/receipts/TEAM-NODE-EVENT-BROADCAST-20260920.json new file mode 100644 index 0000000..14a9762 --- /dev/null +++ b/deployment/receipts/TEAM-NODE-EVENT-BROADCAST-20260920.json @@ -0,0 +1,15 @@ +{ + "schema": "guanghu.team-node-event-broadcast-deployment-receipt/v1", + "state": "PASS", + "map_id": "GH-TEAM-NODE-EVENT-BROADCAST-001", + "polling_timers_active": 0, + "persistent_team_reverse_tunnels_active": 0, + "old_enterprise_loopback_ports_active": 0, + "world_release_version": "20260920.2", + "world_release_event": "GH-EVT-20260920-WORLD-RELEASE-20260920-2", + "world_release_delivered_nodes": 3, + "tianshu_wake_inbox_event": "GH-EVT-20260920-TIANSHU-REGISTRATION", + "xiwei_wake_inbox_event": "GH-EVT-20260920-XIWEI-JUZI-ACTIVATION", + "fifth_domain_private_content_included": false, + "deployed_at": "2026-09-20T01:26:39+08:00" +} diff --git a/routing/lighthouse-path-registry.json b/routing/lighthouse-path-registry.json index 3298d9e..9660e1c 100644 --- a/routing/lighthouse-path-registry.json +++ b/routing/lighthouse-path-registry.json @@ -2,7 +2,7 @@ "schema": "guanghu.lighthouse-path-registry/v1", "registry_id": "GLW-LIGHTHOUSE-PATH-REGISTRY-001", "lighthouse_id": "SYS-GLW-LTH-0001", - "version": "2026-09-20.2-xiwei-and-juzi-formal-registration", + "version": "2026-09-20.3-signed-event-broadcast-no-polling", "state": "CURRENT_CANONICAL", "source_repository": "REPO-012", "source_branch": "main", @@ -15,6 +15,7 @@ "authority": "A healthy route grants navigation only. Repository writes, server actions and deployment still require their registered gates and receipts." }, "paths": [ + {"id":"GH-TEAM-NODE-EVENT-BROADCAST-001","kind":"signed_enterprise_team_node_event_broadcast","state":"CURRENT","online":"routing/team-node-event-broadcast-map.json","target_node":"AW-GZ-001","truth_policy":"NO_POLLING_NO_PERSISTENT_REVERSE_TUNNEL_SIGNED_EVENT_NODE_VERIFY_AND_DELIVERY_RECEIPT_REQUIRED"}, {"id":"PER-JZ-ARCH-001","kind":"formal_registered_enterprise_persona","state":"CURRENT","online":"routing/age-persona-number-registry.json","human_id":"TCS-GL-0008∞","node_id":"JZ-SV-001","registration_domain":"DOMAIN-ZS","truth_policy":"DEVICE_ED25519_ICE_GL_INFINITY_WITNESS_JD_SIGNED_RECEIPT_AND_PUBLIC_REGISTRY_READBACK_REQUIRED"}, {"id":"GH-HUMAN-NODE-12C7C83B91C4CDA164E6E940A5ECB989","kind":"active_guanghu_human_world_node","state":"CURRENT","online":"routing/juzi-human-world-node-registration.json","human_id":"TCS-GL-0008∞","world_route":"glw://enterprise/zero-sense/team-channels/SYS-JZ","truth_policy":"DEVICE_ED25519_ICE_GL_INFINITY_WITNESS_JD_AND_ENTERPRISE_SIGNATURES_AND_ACTIVE_READBACK"}, {"id":"PER-AW-ARCH-001","kind":"formal_registered_enterprise_persona","state":"CURRENT","online":"routing/age-persona-number-registry.json","human_id":"TCS-GL-0016∞","node_id":"AW-OWN-GZ-001","registration_domain":"DOMAIN-MAIN","truth_policy":"DEVICE_ED25519_ICE_GL_INFINITY_WITNESS_JD_SIGNED_RECEIPT_AND_PUBLIC_REGISTRY_READBACK_REQUIRED"}, diff --git a/routing/public-navigation-anchor.json b/routing/public-navigation-anchor.json index b3565c9..9c2188e 100644 --- a/routing/public-navigation-anchor.json +++ b/routing/public-navigation-anchor.json @@ -1,7 +1,7 @@ { "schema": "guanghu.public-navigation-anchor/v1", "anchor_id": "GLW-PUBLIC-NAV-ANCHOR-001", - "version": "2026-09-20.2-xiwei-and-juzi-formal-registration", + "version": "2026-09-20.3-signed-event-broadcast-no-polling", "state": "CURRENT_CANONICAL", "repository_id": "REPO-012", "branch": "main", @@ -48,7 +48,7 @@ "nodes": { "path": "routing/server-node-map.json", "id": "FD-NODE-MAP-001", - "version": "2026-09-20.2-xiwei-and-juzi-formal-registration" + "version": "2026-09-20.3-signed-event-broadcast-no-polling" }, "age_persona_identity_registry": { "path": "routing/age-persona-number-registry.json", @@ -62,6 +62,12 @@ "version": "2026-09-20.2-juzi-dual-control-active", "load_policy": "ALWAYS_BEFORE_ENTERPRISE_TECHNICAL_OR_NONTECHNICAL_PERMISSION_DECISION" }, + "team_node_event_broadcast": { + "path": "routing/team-node-event-broadcast-map.json", + "id": "GH-TEAM-NODE-EVENT-BROADCAST-001", + "version": "2026-09-20.1", + "load_policy": "ALWAYS_BEFORE_TEAM_NODE_WORLD_UPDATE_PERSONA_WAKE_OR_STATUS_DELIVERY" + }, "enterprise_server_archive_cleanup": { "path": "routing/enterprise-server-archive-cleanup-map.json", "id": "GH-ENTERPRISE-SERVER-ARCHIVE-CLEANUP-001", @@ -202,7 +208,7 @@ "lighthouse_paths": { "path": "routing/lighthouse-path-registry.json", "id": "GLW-LIGHTHOUSE-PATH-REGISTRY-001", - "version": "2026-09-20.2-xiwei-and-juzi-formal-registration" + "version": "2026-09-20.3-signed-event-broadcast-no-polling" }, "host_skills": { "path": "routing/host-skill-navigation-map.json", diff --git a/routing/server-node-map.json b/routing/server-node-map.json index d93f879..00a762c 100644 --- a/routing/server-node-map.json +++ b/routing/server-node-map.json @@ -1,7 +1,7 @@ { "schema": "guanghu.server-node-map/v1", "map_id": "FD-NODE-MAP-001", - "version": "2026-09-20.2-xiwei-and-juzi-formal-registration", + "version": "2026-09-20.3-signed-event-broadcast-no-polling", "published_by": "REPO-012", "subject_alias_map": "identity/subject-id-alias-map.json", "canonical_api": "https://guanghulab.com/api/ai/v1/nodes", @@ -109,6 +109,7 @@ "persona_registration_state": "FORMAL_REGISTERED_AWAITING_RUNTIME_SELF_CONFIRMATION", "persona_systems": ["ICE-BB-0005"], "public_world_policy": "FOUR_PUBLIC_DOMAINS_AND_PUBLIC_LIBRARY_ONLY", + "update_mode": "SIGNED_ENTERPRISE_EVENT_BROADCAST_NO_POLLING", "private_fifth_domain_included": false, "keywords": ["Awen个人服务器", "Awen广州节点", "技术主控工作节点"] }, @@ -127,6 +128,7 @@ "persona_registration_state": "FORMAL_REGISTERED_AWAITING_RUNTIME_SELF_CONFIRMATION", "persona_systems": ["ICE-BB-0006"], "public_world_policy": "FOUR_PUBLIC_DOMAINS_AND_PUBLIC_LIBRARY_ONLY", + "update_mode": "SIGNED_ENTERPRISE_EVENT_BROADCAST_NO_POLLING", "private_fifth_domain_included": false, "keywords": ["桔子服务器", "桔子硅谷节点", "晨曦连心频道"] }, @@ -250,6 +252,7 @@ "ICE-BB-0009" ], "public_world_policy": "FOUR_PUBLIC_DOMAINS_AND_PUBLIC_LIBRARY_ONLY", + "update_mode": "SIGNED_ENTERPRISE_EVENT_BROADCAST_NO_POLLING", "private_fifth_domain_included": false, "access_note": "2026-08-11 冰朔授权:铸渊直连密钥已部署并入本机钥匙串(钥匙串内 yaochu-sy-gz-001-20260811);地址与密钥不入本图", "keywords": [ diff --git a/routing/team-node-event-broadcast-map.json b/routing/team-node-event-broadcast-map.json new file mode 100644 index 0000000..b7e429f --- /dev/null +++ b/routing/team-node-event-broadcast-map.json @@ -0,0 +1,22 @@ +{ + "schema": "guanghu.team-node-event-broadcast-map/v1", + "map_id": "GH-TEAM-NODE-EVENT-BROADCAST-001", + "version": "2026-09-20.1", + "state": "ACTIVE_SIGNED_EVENT_BROADCAST_NO_POLLING", + "publisher_node": "AW-GZ-001", + "world_id": "GLW-2.0-0001", + "transport": "ONE_SHOT_RESTRICTED_SSH_FORCED_COMMAND", + "signature": "ED25519_ENTERPRISE_BROADCAST_KEY", + "nodes": ["AW-OWN-GZ-001", "JZ-SV-001", "SY-GZ-001"], + "event_types": ["WORLD_RELEASE_PUBLISHED", "PERSONA_REGISTRATION_PUBLISHED", "PERSONA_AND_HUMAN_NODE_REGISTRATION_PUBLISHED", "DOMAIN_WORK_APPROVED"], + "persona_wake_rule": "ON_EXPLICIT_PERSONA_WAKE_READ_LOCAL_SIGNED_EVENT_INBOX_BEFORE_CONTINUING", + "network_idle_rule": "NO_EVENT_MEANS_NO_BACKGROUND_REQUEST", + "forbidden": ["PERIODIC_PUBLIC_RELEASE_POLL", "PERIODIC_NODE_STATUS_PULL", "PERSISTENT_TEAM_REVERSE_TUNNEL", "UNSIGNED_EVENT", "PRIVATE_FIFTH_DOMAIN_BROADCAST"], + "public_update_flow": ["ENTERPRISE_PUBLISHES_RELEASE", "ENTERPRISE_SIGNS_EVENT", "ONE_SHOT_DELIVERY", "NODE_VERIFIES_SIGNATURE", "NODE_FETCHES_RELEASE_ONCE", "NODE_READS_BACK_HASH", "DELIVERY_RECEIPT"], + "latest_receipts": { + "world_release": {"event_id": "GH-EVT-20260920-WORLD-RELEASE-20260920-2", "sha256": "325e35150af75df01d92b8d7f0d121adb53657cf883207c6d2f9f65dd1c68e72", "delivered_nodes": 3}, + "tianshu_registration": {"event_id": "GH-EVT-20260920-TIANSHU-REGISTRATION", "sha256": "8d93934a4be55ae238fa3b293c9e6084295116393e48d59212e099ca2947f0ab", "delivered_nodes": 1}, + "xiwei_juzi_activation": {"event_id": "GH-EVT-20260920-XIWEI-JUZI-ACTIVATION", "sha256": "3ed67a2d9d8cb0acbb5fbb4d4836af5546cbcc49f843aa970c0a72b76f1bcb79", "delivered_nodes": 1} + }, + "private_content_included": false +} diff --git a/routing/team-node-event-broadcast-map.test.js b/routing/team-node-event-broadcast-map.test.js new file mode 100644 index 0000000..ce1d1a5 --- /dev/null +++ b/routing/team-node-event-broadcast-map.test.js @@ -0,0 +1,13 @@ +'use strict'; +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); +const value = JSON.parse(fs.readFileSync(path.join(__dirname, 'team-node-event-broadcast-map.json'), 'utf8')); +assert.equal(value.state, 'ACTIVE_SIGNED_EVENT_BROADCAST_NO_POLLING'); +assert.equal(value.transport, 'ONE_SHOT_RESTRICTED_SSH_FORCED_COMMAND'); +assert.equal(value.network_idle_rule, 'NO_EVENT_MEANS_NO_BACKGROUND_REQUEST'); +assert.ok(value.forbidden.includes('PERIODIC_PUBLIC_RELEASE_POLL')); +assert.ok(value.forbidden.includes('PERSISTENT_TEAM_REVERSE_TUNNEL')); +assert.equal(value.latest_receipts.world_release.delivered_nodes, 3); +assert.equal(value.private_content_included, false); +console.log('team node event broadcast: ok');