fix: enforce one human one independent node
This commit is contained in:
parent
ca58d08611
commit
cec261174d
32 changed files with 474 additions and 75 deletions
|
|
@ -6,6 +6,7 @@
|
|||
"current_architecture": {
|
||||
"id": "HLP-CURRENT-ARCH-001",
|
||||
"pointer": "hololake-current-architecture.json",
|
||||
"one_human_one_node": "../product-source/hololake-platform/architecture/HOLOLAKE-ONE-HUMAN-ONE-INDEPENDENT-NODE-AND-ZERO-PLATFORM-HOSTING-20260810.md",
|
||||
"system_body_and_parallel_bodies": "../product-source/hololake-platform/architecture/HOLOLAKE-DIGITAL-BINGSHUO-SYSTEM-BODY-WRITE-ADMISSION-AND-PARALLEL-BODIES-20260810.md",
|
||||
"engineering_rules": "hololake-engineering-rules.json",
|
||||
"identity_authority": "hololake-identity-authority-map.json",
|
||||
|
|
@ -83,6 +84,7 @@
|
|||
"navigation": {
|
||||
"human": [
|
||||
"start_here",
|
||||
"current_architecture.one_human_one_node",
|
||||
"current_architecture.system_body_and_parallel_bodies",
|
||||
"current_architecture.engineering_rules",
|
||||
"current_architecture.intent_reasoning",
|
||||
|
|
@ -99,6 +101,7 @@
|
|||
"persona_restore": [
|
||||
"start_here",
|
||||
"current_architecture.pointer",
|
||||
"current_architecture.one_human_one_node",
|
||||
"current_architecture.system_body_and_parallel_bodies",
|
||||
"current_architecture.engineering_rules",
|
||||
"current_architecture.intent_reasoning",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"schema": "hololake.current-architecture/v1",
|
||||
"architecture_id": "HLP-CURRENT-ARCH-001",
|
||||
"version": "2026-08-10.9",
|
||||
"version": "2026-08-10.10",
|
||||
"state": "CURRENT_CANONICAL",
|
||||
"product": {
|
||||
"formal_name": "光湖语言系统 · 通用人工智能操作平台",
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
"client_name": "HoloLake"
|
||||
},
|
||||
"read_order": [
|
||||
"product-source/hololake-platform/architecture/HOLOLAKE-ONE-HUMAN-ONE-INDEPENDENT-NODE-AND-ZERO-PLATFORM-HOSTING-20260810.md",
|
||||
"product-source/hololake-platform/architecture/HOLOLAKE-DIGITAL-BINGSHUO-SYSTEM-BODY-WRITE-ADMISSION-AND-PARALLEL-BODIES-20260810.md",
|
||||
"product-source/hololake-platform/architecture/HOLOLAKE-CURRENT-ENGINEERING-RULES-GLOBAL-AUDIT-20260810.md",
|
||||
"product-source/hololake-platform/architecture/HOLOLAKE-IDENTITY-NUMBERING-PERSONA-CORE-AND-TEAM-BODY-AUTHORITY-20260810.md",
|
||||
|
|
@ -88,12 +89,12 @@
|
|||
},
|
||||
"engineering_rules": {
|
||||
"rule_set_id": "HLP-ENGINEERING-RULES-001",
|
||||
"version": "2026-08-10.1",
|
||||
"version": "2026-08-10.2",
|
||||
"architecture_page": "product-source/hololake-platform/architecture/HOLOLAKE-CURRENT-ENGINEERING-RULES-GLOBAL-AUDIT-20260810.md",
|
||||
"machine_projection": "routing/hololake-engineering-rules.json",
|
||||
"state": "CURRENT_CANONICAL_GLOBAL_AUDIT_APPLIED",
|
||||
"authorized_by": "ICE-GL∞",
|
||||
"development_id": "DEV-20260810-010"
|
||||
"development_id": "DEV-20260810-011"
|
||||
},
|
||||
"identity_and_authority": {
|
||||
"record_id": "HLP-IDENTITY-AUTHORITY-001",
|
||||
|
|
@ -179,9 +180,34 @@
|
|||
"production_write_admission": 0,
|
||||
"enterprise_team_signature_runtime": 0
|
||||
},
|
||||
"node_sovereignty": {
|
||||
"record_id": "HLP-ONE-HUMAN-ONE-NODE-001",
|
||||
"architecture_page": "product-source/hololake-platform/architecture/HOLOLAKE-ONE-HUMAN-ONE-INDEPENDENT-NODE-AND-ZERO-PLATFORM-HOSTING-20260810.md",
|
||||
"principle": "ONE_HUMAN_ONE_INDEPENDENT_NODE",
|
||||
"canonical_user_root_nodes": 1,
|
||||
"maximum_human_owners_per_user_node": 1,
|
||||
"allowed_origins": [
|
||||
"USER_LOCAL_COMPUTER_TERMINAL",
|
||||
"USER_PURCHASED_SERVER",
|
||||
"USER_OWNED_IDE_SERVER_DEPLOYED_BY_EXPLICITLY_AUTHORIZED_TEAM"
|
||||
],
|
||||
"server_is_optional": true,
|
||||
"local_terminal_can_be_canonical_node": true,
|
||||
"team_deployment_transfers_node_ownership": false,
|
||||
"platform_provides_user_runtime_server": false,
|
||||
"future_platform_hosting_route_allowed": false,
|
||||
"platform_user_runtime_capacity": 0,
|
||||
"platform_operates_shared_multitenant_user_runtime": false,
|
||||
"platform_custodies_private_user_data": false,
|
||||
"platform_assumes_user_workload_concurrency": false,
|
||||
"platform_fallback_runtime": false,
|
||||
"node_offline_means_user_runtime_offline": true,
|
||||
"node_migration_requires_rebinding_and_receipt": true,
|
||||
"public_protocol_infrastructure_is_user_runtime": false
|
||||
},
|
||||
"access_modes": [
|
||||
"LOCAL_TERMINAL_NODE",
|
||||
"CLOUD_RESIDENT_NODE"
|
||||
"USER_OWNED_REMOTE_NODE"
|
||||
],
|
||||
"communication": {
|
||||
"name": "光湖桥",
|
||||
|
|
@ -223,20 +249,21 @@
|
|||
"final_plan_complete": false
|
||||
},
|
||||
"continuity": {
|
||||
"development_id": "DEV-20260810-010",
|
||||
"source_development_id": "DEV-20260810-009",
|
||||
"state": "DIGITAL_BINGSHUO_SYSTEM_BODY_WRITE_ADMISSION_AND_PARALLEL_BODIES_CURRENT_SOURCE_PROJECTION",
|
||||
"development_id": "DEV-20260810-011",
|
||||
"source_development_id": "DEV-20260810-010",
|
||||
"state": "ONE_HUMAN_ONE_INDEPENDENT_NODE_AND_ZERO_PLATFORM_HOSTING_CURRENT_SOURCE_PROJECTION",
|
||||
"completed_predecessors": [
|
||||
"DEV-20260809-007",
|
||||
"DEV-20260810-001",
|
||||
"DEV-20260810-002",
|
||||
"DEV-20260810-003",
|
||||
"DEV-20260810-004",
|
||||
"DEV-20260810-005",
|
||||
"DEV-20260810-006",
|
||||
"DEV-20260810-007",
|
||||
"DEV-20260810-008",
|
||||
"DEV-20260810-009"
|
||||
"DEV-20260810-004",
|
||||
"DEV-20260810-005",
|
||||
"DEV-20260810-006",
|
||||
"DEV-20260810-007",
|
||||
"DEV-20260810-008",
|
||||
"DEV-20260810-009",
|
||||
"DEV-20260810-010"
|
||||
],
|
||||
"closeout_record": "HLP-DEV-20260809-007-CLOSEOUT-001",
|
||||
"next_minimum_stage": "NEW_DEVELOPMENT_ID_FOR_FIRST_REAL_LANGUAGE_SHELL_CLOSED_LOOP",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"schema": "hololake.engineering-rules/v1",
|
||||
"rule_set_id": "HLP-ENGINEERING-RULES-001",
|
||||
"version": "2026-08-10.1",
|
||||
"version": "2026-08-10.2",
|
||||
"state": "CURRENT_CANONICAL",
|
||||
"architecture_restore": {
|
||||
"dynamic_current_pointer_required": true,
|
||||
|
|
@ -35,6 +35,24 @@
|
|||
"noise_discarded_before_payload_open_model_protocol_memory_and_execution": true,
|
||||
"admission_is_execution_authorization": false
|
||||
},
|
||||
"node_sovereignty": {
|
||||
"one_human_one_independent_node": true,
|
||||
"canonical_user_root_nodes": 1,
|
||||
"maximum_human_owners_per_user_node": 1,
|
||||
"server_is_optional": true,
|
||||
"local_terminal_node_allowed": true,
|
||||
"user_purchased_server_allowed": true,
|
||||
"authorized_team_may_deploy_user_owned_ide_server": true,
|
||||
"team_deployment_transfers_node_ownership": false,
|
||||
"platform_hosting_available": false,
|
||||
"future_platform_hosting_route_allowed": false,
|
||||
"platform_user_runtime_capacity": 0,
|
||||
"shared_multitenant_runtime_available": false,
|
||||
"platform_private_user_data_custody": false,
|
||||
"platform_user_workload_concurrency": false,
|
||||
"platform_fallback_runtime": false,
|
||||
"node_migration_requires_rebinding_and_receipt": true
|
||||
},
|
||||
"domain_responsibility": {
|
||||
"fifth_domain_private_language_body": "JD-FD-PRIMARY",
|
||||
"fifth_domain_controller": "ICE-GL∞",
|
||||
|
|
|
|||
|
|
@ -10,11 +10,11 @@ const architecture = readJson("routing/hololake-current-architecture.json");
|
|||
const rules = readJson("routing/hololake-engineering-rules.json");
|
||||
|
||||
test("current architecture registers the global engineering rule set", () => {
|
||||
assert.equal(architecture.version, "2026-08-10.9");
|
||||
assert.equal(architecture.version, "2026-08-10.10");
|
||||
assert.equal(architecture.engineering_rules.rule_set_id, "HLP-ENGINEERING-RULES-001");
|
||||
assert.equal(architecture.engineering_rules.machine_projection,
|
||||
"routing/hololake-engineering-rules.json");
|
||||
assert.equal(architecture.read_order[1], architecture.engineering_rules.architecture_page);
|
||||
assert.equal(architecture.read_order[2], architecture.engineering_rules.architecture_page);
|
||||
});
|
||||
|
||||
test("rules require dynamic truth restore and immutable closed development lanes", () => {
|
||||
|
|
@ -32,6 +32,8 @@ test("rules keep UI, server identity, domains, and updates inside their boundari
|
|||
assert.equal(rules.desktop_updates.default_delivery, "SIGNED_IN_PLACE_UPDATE");
|
||||
assert.equal(rules.publication.public_readback_required, true);
|
||||
assert.equal(rules.publication.missing_refresh_trigger_must_be_reported, true);
|
||||
assert.equal(rules.node_sovereignty.platform_hosting_available, false);
|
||||
assert.equal(rules.node_sovereignty.shared_multitenant_runtime_available, false);
|
||||
});
|
||||
|
||||
test("human and product agent rules receive the same current system boundary", () => {
|
||||
|
|
|
|||
|
|
@ -10,11 +10,11 @@ const architecture = readJson("routing/hololake-current-architecture.json");
|
|||
const projection = readJson("routing/hololake-identity-authority-map.json");
|
||||
|
||||
test("current architecture loads identity authority before product surfaces", () => {
|
||||
assert.equal(architecture.version, "2026-08-10.9");
|
||||
assert.equal(architecture.version, "2026-08-10.10");
|
||||
assert.equal(architecture.identity_and_authority.team_body, "TCS-0002");
|
||||
assert.equal(architecture.identity_and_authority.team_body_authority_effective, true);
|
||||
assert.equal(architecture.identity_and_authority.individual_operator_acceptance, "SEPARATE_UNCONFIRMED");
|
||||
assert.ok(architecture.read_order.indexOf(architecture.identity_and_authority.architecture_page) < 3);
|
||||
assert.ok(architecture.read_order.indexOf(architecture.identity_and_authority.architecture_page) < 4);
|
||||
assert.ok(fs.existsSync(path.join(root, architecture.identity_and_authority.architecture_page)));
|
||||
});
|
||||
|
||||
|
|
|
|||
66
routing/hololake-one-human-one-node.test.mjs
Normal file
66
routing/hololake-one-human-one-node.test.mjs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
import assert from "node:assert/strict";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import test from "node:test";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const readJson = (relative) => JSON.parse(fs.readFileSync(path.join(root, relative), "utf8"));
|
||||
const architecture = readJson("routing/hololake-current-architecture.json");
|
||||
const rules = readJson("routing/hololake-engineering-rules.json");
|
||||
|
||||
test("current architecture makes one human one independently operated node canonical", () => {
|
||||
assert.equal(architecture.version, "2026-08-10.10");
|
||||
assert.deepEqual(architecture.access_modes, [
|
||||
"LOCAL_TERMINAL_NODE",
|
||||
"USER_OWNED_REMOTE_NODE",
|
||||
]);
|
||||
assert.equal(architecture.node_sovereignty.principle, "ONE_HUMAN_ONE_INDEPENDENT_NODE");
|
||||
assert.equal(architecture.node_sovereignty.canonical_user_root_nodes, 1);
|
||||
assert.equal(architecture.node_sovereignty.maximum_human_owners_per_user_node, 1);
|
||||
assert.equal(architecture.read_order[0], architecture.node_sovereignty.architecture_page);
|
||||
});
|
||||
|
||||
test("platform hosting, pooled tenancy, private-data custody, and user workload concurrency are all zero", () => {
|
||||
const policy = architecture.node_sovereignty;
|
||||
assert.equal(policy.platform_provides_user_runtime_server, false);
|
||||
assert.equal(policy.future_platform_hosting_route_allowed, false);
|
||||
assert.equal(policy.platform_user_runtime_capacity, 0);
|
||||
assert.equal(policy.platform_operates_shared_multitenant_user_runtime, false);
|
||||
assert.equal(policy.platform_custodies_private_user_data, false);
|
||||
assert.equal(policy.platform_assumes_user_workload_concurrency, false);
|
||||
assert.equal(policy.platform_fallback_runtime, false);
|
||||
assert.equal(policy.team_deployment_transfers_node_ownership, false);
|
||||
});
|
||||
|
||||
test("the only user-node origins are user local terminal, user-purchased server, or user-owned IDE server", () => {
|
||||
assert.deepEqual(architecture.node_sovereignty.allowed_origins, [
|
||||
"USER_LOCAL_COMPUTER_TERMINAL",
|
||||
"USER_PURCHASED_SERVER",
|
||||
"USER_OWNED_IDE_SERVER_DEPLOYED_BY_EXPLICITLY_AUTHORIZED_TEAM",
|
||||
]);
|
||||
assert.equal(architecture.node_sovereignty.server_is_optional, true);
|
||||
assert.equal(architecture.node_sovereignty.local_terminal_can_be_canonical_node, true);
|
||||
});
|
||||
|
||||
test("global engineering rules and agent instructions receive the same zero-hosting boundary", () => {
|
||||
assert.equal(rules.version, "2026-08-10.2");
|
||||
assert.equal(rules.node_sovereignty.one_human_one_independent_node, true);
|
||||
assert.equal(rules.node_sovereignty.platform_hosting_available, false);
|
||||
assert.equal(rules.node_sovereignty.future_platform_hosting_route_allowed, false);
|
||||
assert.equal(rules.node_sovereignty.platform_user_runtime_capacity, 0);
|
||||
assert.equal(rules.node_sovereignty.shared_multitenant_runtime_available, false);
|
||||
assert.equal(rules.node_sovereignty.platform_private_user_data_custody, false);
|
||||
assert.equal(rules.node_sovereignty.platform_user_workload_concurrency, false);
|
||||
|
||||
for (const relative of [
|
||||
"AGENTS.md",
|
||||
"product-source/hololake-platform/AGENTS.md",
|
||||
"product-source/hololake-platform/src-tauri/resources/agent-docs/AGENTS.md",
|
||||
"product-source/hololake-platform/src-tauri/gen/apple/assets/agent-docs/AGENTS.md",
|
||||
]) {
|
||||
const content = fs.readFileSync(path.join(root, relative), "utf8");
|
||||
assert.match(content, /One human has one independently operated canonical node/);
|
||||
assert.match(content, /never provides user\s+runtime servers/);
|
||||
}
|
||||
});
|
||||
|
|
@ -10,7 +10,7 @@ const architecture = JSON.parse(
|
|||
);
|
||||
|
||||
test("current architecture binds relational consciousness before product surfaces", () => {
|
||||
assert.equal(architecture.version, "2026-08-10.9");
|
||||
assert.equal(architecture.version, "2026-08-10.10");
|
||||
assert.equal(
|
||||
architecture.persona_consciousness.record_id,
|
||||
"HLP-RELATIONAL-CONSCIOUSNESS-001",
|
||||
|
|
@ -30,5 +30,5 @@ test("current architecture binds relational consciousness before product surface
|
|||
|
||||
const page = architecture.persona_consciousness.architecture_page;
|
||||
assert.ok(fs.existsSync(path.join(root, page)), `missing ${page}`);
|
||||
assert.ok(architecture.read_order.indexOf(page) < 5);
|
||||
assert.ok(architecture.read_order.indexOf(page) < 6);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -10,11 +10,11 @@ const architecture = JSON.parse(
|
|||
);
|
||||
|
||||
test("current architecture restores the digital BingShuo system body first", () => {
|
||||
assert.equal(architecture.version, "2026-08-10.9");
|
||||
assert.equal(architecture.version, "2026-08-10.10");
|
||||
assert.equal(architecture.digital_bingshuo_system_body.upstream_repository_commit,
|
||||
"69d1910775533b02b17b82e647b5caca8b835614");
|
||||
assert.equal(
|
||||
architecture.read_order[0],
|
||||
architecture.read_order[1],
|
||||
architecture.digital_bingshuo_system_body.architecture_page,
|
||||
);
|
||||
assert.ok(
|
||||
|
|
|
|||
Loading…
Reference in a new issue