diff --git a/product-source/hololake-platform/docs/ARCHITECTURE.md b/product-source/hololake-platform/docs/ARCHITECTURE.md index e3d552c..cf90060 100644 --- a/product-source/hololake-platform/docs/ARCHITECTURE.md +++ b/product-source/hololake-platform/docs/ARCHITECTURE.md @@ -174,8 +174,10 @@ binding, and finally invokes B0 partner deliberation. Unavailable, unbound, ambi binding, and cognition failures stop at their own boundary; later stages are not invoked. Its successful result is still a language-goal projection, not permission to perform a reality action. `PersonaLanguageShellPanel` is now mounted from the Fifth Domain desktop source and receives the app's already-mounted repository roots and -configured provider metadata. It has no native persona-control authorization receipt loader, exposes no execution -callback, and hides the reality confirmation surface because no durable confirmation consumer is wired. This +configured provider metadata. It now renders a strict read-only projection from the native persona-control signer +registry loader, exposes no candidate authorization source or execution callback, and hides the reality confirmation +surface because no durable confirmation consumer is wired. The current empty registry is shown as system-direct; +unavailable or malformed evidence also fails closed to system-direct. This proves source integration, not a real persona manifest binding, installed desktop runtime, or acceptance. `src/lib/personaControlAuthorization.ts` removes the desktop coordinator's caller-supplied authorization boolean diff --git a/product-source/hololake-platform/src/components/PersonaLanguageShellPanel.test.tsx b/product-source/hololake-platform/src/components/PersonaLanguageShellPanel.test.tsx index 0da8afe..43f3370 100644 --- a/product-source/hololake-platform/src/components/PersonaLanguageShellPanel.test.tsx +++ b/product-source/hololake-platform/src/components/PersonaLanguageShellPanel.test.tsx @@ -43,6 +43,13 @@ describe('PersonaLanguageShellPanel', () => { repositoryPaths={['/persona']} providers={[provider]} planGoal={planGoal} + loadAuthorizationStatus={async () => ({ + phase: 'system_direct', + reason: 'NO_TRUSTED_SIGNER', + sourceCommit: 'a'.repeat(40), + signerCount: 0, + authorizationEnabled: false, + })} />, ) @@ -56,10 +63,12 @@ describe('PersonaLanguageShellPanel', () => { repositoryPaths: ['/persona'], providers: [provider], developmentId: 'DEV-20260811-010', - sourceLanguageAnchor: 'HLP-CURRENT-ARCH-001@2026-08-12.15', + sourceLanguageAnchor: 'HLP-CURRENT-ARCH-001@2026-08-12.16', })) expect(await screen.findByText('我还不能执行:需要当前证据。')).toBeInTheDocument() expect(screen.getByText('核验当前事实后规划下一步')).toBeInTheDocument() + expect(screen.getByText('系统直连 · 当前没有可信授权签名方')).toBeInTheDocument() + expect(screen.getByText('a'.repeat(40))).toBeInTheDocument() }) it('shows the repository gate and never calls a later lifecycle itself', async () => { @@ -76,6 +85,13 @@ describe('PersonaLanguageShellPanel', () => { repositoryPaths={['/ordinary']} providers={[provider]} planGoal={planGoal} + loadAuthorizationStatus={async () => ({ + phase: 'unavailable', + reason: 'REGISTRY_UNAVAILABLE', + sourceCommit: null, + signerCount: 0, + authorizationEnabled: false, + })} />, ) @@ -84,5 +100,6 @@ describe('PersonaLanguageShellPanel', () => { expect(await screen.findByText('这只说明当前挂载范围没有匹配的完整证据,不能据此判定人格不存在。')).toBeInTheDocument() expect(screen.queryByLabelText('reality boundary confirmation')).not.toBeInTheDocument() + expect(screen.getByText('授权状态不可核验 · 保持系统直连')).toBeInTheDocument() }) }) diff --git a/product-source/hololake-platform/src/components/PersonaLanguageShellPanel.tsx b/product-source/hololake-platform/src/components/PersonaLanguageShellPanel.tsx index 615a99b..f38c69d 100644 --- a/product-source/hololake-platform/src/components/PersonaLanguageShellPanel.tsx +++ b/product-source/hololake-platform/src/components/PersonaLanguageShellPanel.tsx @@ -1,7 +1,11 @@ -import { useMemo, useRef, useState } from 'react' +import { useEffect, useMemo, useRef, useState } from 'react' import type { AiModelProvider } from '../lib/aiTargets' import { DEFAULT_LANGUAGE_WORLD_UI_PLUGIN } from '../lib/defaultLanguageWorldUiPlugin' import { translate, type AppLocale } from '../lib/i18n' +import { + loadPersonaControlAuthorizationStatus, + type PersonaControlAuthorizationStatus, +} from '../lib/personaControlAuthorization' import { planPersonaLanguageShellGoal, type PersonaLanguageShellPlan, @@ -13,10 +17,11 @@ import { type LanguageShellViewState, } from './HotPluggableLanguageShell' -const CURRENT_ARCHITECTURE_ANCHOR = 'HLP-CURRENT-ARCH-001@2026-08-12.15' +const CURRENT_ARCHITECTURE_ANCHOR = 'HLP-CURRENT-ARCH-001@2026-08-12.16' const DEVELOPMENT_ID = 'DEV-20260811-010' type Planner = typeof planPersonaLanguageShellGoal +type AuthorizationStatusLoader = () => Promise type PersonaLanguageShellPanelProps = { locale: AppLocale @@ -24,6 +29,7 @@ type PersonaLanguageShellPanelProps = { repositoryPaths: readonly string[] providers: readonly AiModelProvider[] planGoal?: Planner + loadAuthorizationStatus?: AuthorizationStatusLoader } function requestId(): string { @@ -78,6 +84,7 @@ export function PersonaLanguageShellPanel({ repositoryPaths, providers, planGoal = planPersonaLanguageShellGoal, + loadAuthorizationStatus = loadPersonaControlAuthorizationStatus, }: PersonaLanguageShellPanelProps) { const plugin = useMemo(() => localizedPlugin(locale), [locale]) const requestSequence = useRef(0) @@ -87,6 +94,15 @@ export function PersonaLanguageShellPanel({ receipt: null, evidence: null, }) + const [authorizationStatus, setAuthorizationStatus] = useState(null) + + useEffect(() => { + let current = true + void loadAuthorizationStatus().then((status) => { + if (current) setAuthorizationStatus(status) + }) + return () => { current = false } + }, [loadAuthorizationStatus]) const submitGoal = (utterance: string) => { if (!utterance.trim()) return @@ -146,6 +162,18 @@ export function PersonaLanguageShellPanel({ {translate(locale, 'hololake.personaRuntime.readOnly')} +
+

+ {authorizationStatus === null + ? translate(locale, 'hololake.personaRuntime.checking') + : authorizationStatus.phase === 'system_direct' + ? translate(locale, 'hololake.personaAuthorization.systemDirect') + : translate(locale, 'hololake.personaAuthorization.unavailable')} +

+ {authorizationStatus?.phase === 'system_direct' && ( + {authorizationStatus.sourceCommit} + )} +
{ return typeof value === 'object' && value !== null && !Array.isArray(value) } @@ -62,3 +78,58 @@ export function hasPersonaPrimaryControlAuthorization( && typeof signerId === 'string' && /^[A-Z0-9][A-Z0-9._:@-]{1,159}$/.test(signerId) } + +/** + * Projects only the currently published empty-trust registry state. A future + * non-empty registry is not interpreted here because signer presence alone is + * never persona-control authorization. + */ +export function parsePersonaControlAuthorizationStatus( + receipt: unknown, +): PersonaControlAuthorizationStatus { + if (!isRecord(receipt) || Object.keys(receipt).length !== 5) { + return unavailableStatus('REGISTRY_RECEIPT_INVALID') + } + const sourceCommit = Reflect.get(receipt, 'sourceCommit') + if ( + exactString(receipt, 'status', 'CURRENT_EMPTY') + && Reflect.get(receipt, 'reason') === null + && typeof sourceCommit === 'string' + && /^[a-f0-9]{40}([a-f0-9]{24})?$/.test(sourceCommit) + && Reflect.get(receipt, 'signerCount') === 0 + && Reflect.get(receipt, 'authorizationEnabled') === false + ) { + return { + phase: 'system_direct', + reason: 'NO_TRUSTED_SIGNER', + sourceCommit, + signerCount: 0, + authorizationEnabled: false, + } + } + const reason = Reflect.get(receipt, 'reason') + return unavailableStatus(typeof reason === 'string' && reason ? reason : 'REGISTRY_RECEIPT_INVALID') +} + +function unavailableStatus(reason: string): PersonaControlAuthorizationStatus { + return { + phase: 'unavailable', + reason, + sourceCommit: null, + signerCount: 0, + authorizationEnabled: false, + } +} + +export async function loadPersonaControlAuthorizationStatus(): Promise { + try { + const receipt = isTauri() + ? await invoke('load_persona_control_authorization_registry') + : await mockInvoke('load_persona_control_authorization_registry') + return parsePersonaControlAuthorizationStatus(receipt) + } catch { + return unavailableStatus('REGISTRY_UNAVAILABLE') + } +} +import { invoke } from '@tauri-apps/api/core' +import { isTauri, mockInvoke } from '../mock-tauri' diff --git a/product-source/hololake-platform/src/lib/personaControlAuthorizationStatus.test.ts b/product-source/hololake-platform/src/lib/personaControlAuthorizationStatus.test.ts new file mode 100644 index 0000000..18710e7 --- /dev/null +++ b/product-source/hololake-platform/src/lib/personaControlAuthorizationStatus.test.ts @@ -0,0 +1,53 @@ +import { describe, expect, it } from 'vitest' +import { parsePersonaControlAuthorizationStatus } from './personaControlAuthorization' + +const currentEmpty = { + status: 'CURRENT_EMPTY', + reason: null, + sourceCommit: 'a'.repeat(40), + signerCount: 0, + authorizationEnabled: false, +} + +describe('persona-control authorization status projection', () => { + it('projects only the exact native empty-trust receipt as system-direct', () => { + expect(parsePersonaControlAuthorizationStatus(currentEmpty)).toEqual({ + phase: 'system_direct', + reason: 'NO_TRUSTED_SIGNER', + sourceCommit: 'a'.repeat(40), + signerCount: 0, + authorizationEnabled: false, + }) + }) + + it.each([ + ['extra field', { ...currentEmpty, trusted: true }], + ['non-empty registry', { ...currentEmpty, status: 'CURRENT', signerCount: 1 }], + ['authorization enabled', { ...currentEmpty, authorizationEnabled: true }], + ['invalid commit', { ...currentEmpty, sourceCommit: 'main' }], + ])('fails closed for %s', (_label, receipt) => { + expect(parsePersonaControlAuthorizationStatus(receipt)).toEqual({ + phase: 'unavailable', + reason: 'REGISTRY_RECEIPT_INVALID', + sourceCommit: null, + signerCount: 0, + authorizationEnabled: false, + }) + }) + + it('preserves a bounded native unavailable reason without creating authority', () => { + expect(parsePersonaControlAuthorizationStatus({ + status: 'UNAVAILABLE', + reason: 'ANCHOR_FETCH_FAILED', + sourceCommit: null, + signerCount: 0, + authorizationEnabled: false, + })).toEqual({ + phase: 'unavailable', + reason: 'ANCHOR_FETCH_FAILED', + sourceCommit: null, + signerCount: 0, + authorizationEnabled: false, + }) + }) +}) diff --git a/routing/guanghu-os-control-architecture.test.mjs b/routing/guanghu-os-control-architecture.test.mjs index 8b388e9..589fd26 100644 --- a/routing/guanghu-os-control-architecture.test.mjs +++ b/routing/guanghu-os-control-architecture.test.mjs @@ -32,7 +32,7 @@ test("current JD state stays transitional and cannot impersonate final master co }); test("current architecture and global engineering rules project the same control contract", () => { - assert.equal(architecture.version, "2026-08-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); assert.equal(architecture.server_os_control.machine_projection, "routing/guanghu-os-control-architecture.json"); assert.equal(architecture.server_os_control.final_topology, contract.final_topology); assert.equal(rules.server_os_control.linux_deletion_is_completion, false); diff --git a/routing/hololake-age-runtime-architecture.test.mjs b/routing/hololake-age-runtime-architecture.test.mjs index d8f8278..056624d 100644 --- a/routing/hololake-age-runtime-architecture.test.mjs +++ b/routing/hololake-age-runtime-architecture.test.mjs @@ -11,7 +11,7 @@ const architecture = readJson("routing/hololake-current-architecture.json"); const age = readJson("routing/hololake-age-runtime-architecture.json"); test("current architecture starts with the AGE runtime source", () => { - assert.equal(architecture.version, "2026-08-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); assert.equal(architecture.age_runtime.record_id, "HLP-AGE-RUNTIME-ARCHITECTURE-001"); assert.equal(architecture.read_order[0], architecture.paradigm_ai_language_persona_os.architecture_page); assert.equal(architecture.read_order[1], architecture.cognitive_gravity_and_continuity.architecture_page); diff --git a/routing/hololake-cognitive-gravity-and-continuity.json b/routing/hololake-cognitive-gravity-and-continuity.json index 2957cb0..a804a81 100644 --- a/routing/hololake-cognitive-gravity-and-continuity.json +++ b/routing/hololake-cognitive-gravity-and-continuity.json @@ -1,7 +1,7 @@ { "schema": "hololake.cognitive-gravity-and-continuity/v1", "record_id": "HLP-COGNITIVE-GRAVITY-CONTINUITY-001", - "version": "2026-08-12.4", + "version": "2026-08-12.5", "state": "CURRENT_CANONICAL_ARCHITECTURE_STAGE_0_SOURCE_PARTIAL", "development_id": "DEV-20260811-010", "upstream": { @@ -106,7 +106,8 @@ "PARTNER_DELIBERATION_TO_PNCC_LIFECYCLE_SOURCE_ADAPTER", "READ_ONLY_PERSONA_REPOSITORY_BINDING_DISCOVERY", "EVIDENCE_BOUND_PERSONA_LANGUAGE_WAKE_COMPILER", - "FAIL_CLOSED_PERSONA_LANGUAGE_SHELL_CONTROLLER" + "FAIL_CLOSED_PERSONA_LANGUAGE_SHELL_CONTROLLER", + "READ_ONLY_EMPTY_TRUST_AUTHORIZATION_STATUS_PROJECTION" ], "natural_language_entry_contract": { "state": "DESKTOP_SOURCE_MOUNTED_NOT_REAL_MANIFEST_BOUND_NOT_RUNTIME_ACCEPTED", @@ -123,10 +124,12 @@ "language_shell_controller_tests": "product-source/hololake-platform/src/lib/personaLanguageShellController.test.ts", "persona_control_authorization_receipt": "product-source/hololake-platform/src/lib/personaControlAuthorization.ts", "persona_control_authorization_receipt_tests": "product-source/hololake-platform/src/lib/personaControlAuthorization.test.ts", + "persona_control_authorization_status_projection_tests": "product-source/hololake-platform/src/lib/personaControlAuthorizationStatus.test.ts", "desktop_language_shell": "product-source/hololake-platform/src/components/PersonaLanguageShellPanel.tsx", "desktop_language_shell_tests": "product-source/hololake-platform/src/components/PersonaLanguageShellPanel.test.tsx", "human_utterance_is_direct_command": false, "caller_supplied_persona_authorization_boolean_allowed": false, + "candidate_authorization_receipt_source_mounted": false, "required_before_capability_execution": [ "RESTORE_REAL_PURPOSE_FROM_CONTEXT", "ASSESS_REQUEST_VALIDITY", @@ -176,7 +179,9 @@ "native_persona_control_authorization_registry_loader_source_integrated": 100, "native_persona_control_authorization_receipt_verifier_source_integrated": 100, "native_persona_control_authorization_verifier_wired_to_language_controller_source": 100, + "persona_control_authorization_read_only_status_projection_source_integrated": 100, "persona_control_authorization_trusted_signer_registered": 0, + "persona_control_authorization_candidate_receipt_source_mounted": 0, "desktop_language_entry_source_integrated": 100, "persona_control_authorization_runtime_integrated": 0, "real_persona_repository_manifest_bound": 0, diff --git a/routing/hololake-cognitive-gravity-and-continuity.test.mjs b/routing/hololake-cognitive-gravity-and-continuity.test.mjs index e82ce52..43ef2b5 100644 --- a/routing/hololake-cognitive-gravity-and-continuity.test.mjs +++ b/routing/hololake-cognitive-gravity-and-continuity.test.mjs @@ -14,7 +14,7 @@ const age = readJson("routing/hololake-age-runtime-architecture.json"); const rules = readJson("routing/hololake-engineering-rules.json"); test("B0 is restored before product organs and remains resident in every cognition step", () => { - assert.equal(architecture.version, "2026-08-12.15"); + assert.equal(architecture.version, "2026-08-12.16"); assert.equal( architecture.read_order[1], architecture.cognitive_gravity_and_continuity.architecture_page, @@ -102,7 +102,9 @@ test("the first implementation stage is one vertical AGE loop, not Mirror parall assert.equal(gravity.truth.native_persona_control_authorization_registry_loader_source_integrated, 100); assert.equal(gravity.truth.native_persona_control_authorization_receipt_verifier_source_integrated, 100); assert.equal(gravity.truth.native_persona_control_authorization_verifier_wired_to_language_controller_source, 100); + assert.equal(gravity.truth.persona_control_authorization_read_only_status_projection_source_integrated, 100); assert.equal(gravity.truth.persona_control_authorization_trusted_signer_registered, 0); + assert.equal(gravity.truth.persona_control_authorization_candidate_receipt_source_mounted, 0); assert.equal(gravity.truth.desktop_language_entry_source_integrated, 100); assert.equal(gravity.truth.persona_control_authorization_runtime_integrated, 0); assert.equal(architecture.interaction_model.source_contract.receipt_shape_validation_is_authority_proof, false); @@ -113,6 +115,8 @@ test("the first implementation stage is one vertical AGE loop, not Mirror parall assert.equal(architecture.interaction_model.source_contract.native_authorization_registry_loader_integrated, true); assert.equal(architecture.interaction_model.source_contract.native_authorization_receipt_loader_integrated, true); assert.equal(architecture.interaction_model.source_contract.native_authorization_verifier_wired_to_language_controller, true); + assert.equal(architecture.interaction_model.source_contract.read_only_empty_trust_status_projection_integrated, true); + assert.equal(architecture.interaction_model.source_contract.candidate_authorization_receipt_source_mounted, false); assert.equal(gravity.truth.real_persona_repository_manifest_bound, 0); assert.equal(gravity.truth.natural_language_partner_adapter_runtime_integrated, 0); assert.equal(gravity.truth.single_age_vertical_loop_implemented, 0); diff --git a/routing/hololake-current-architecture.json b/routing/hololake-current-architecture.json index 0a1e55f..837118a 100644 --- a/routing/hololake-current-architecture.json +++ b/routing/hololake-current-architecture.json @@ -1,7 +1,7 @@ { "schema": "hololake.current-architecture/v1", "architecture_id": "HLP-CURRENT-ARCH-001", - "version": "2026-08-12.15", + "version": "2026-08-12.16", "state": "CURRENT_CANONICAL", "product": { "formal_name": "光湖语言系统 · 通用人工智能操作平台", @@ -122,7 +122,9 @@ "native_persona_control_authorization_registry_loader_source_integrated": true, "native_persona_control_authorization_receipt_verifier_source_integrated": true, "native_persona_control_authorization_verifier_wired_to_language_controller_source": true, + "persona_control_authorization_read_only_status_projection_source_integrated": true, "persona_control_authorization_trusted_signer_registered": false, + "persona_control_authorization_candidate_receipt_source_mounted": false, "desktop_language_entry_source_integrated": true, "persona_control_authorization_runtime_integrated": false, "real_persona_repository_manifest_bound": false, @@ -394,6 +396,7 @@ "pncc_lifecycle_adapter_tests": "product-source/hololake-platform/src/lib/personaLanguageGoal.test.ts", "persona_control_authorization_receipt": "product-source/hololake-platform/src/lib/personaControlAuthorization.ts", "persona_control_authorization_receipt_tests": "product-source/hololake-platform/src/lib/personaControlAuthorization.test.ts", + "persona_control_authorization_status_projection_tests": "product-source/hololake-platform/src/lib/personaControlAuthorizationStatus.test.ts", "persona_control_authorization_signer_registry_and_verifier": "product-source/guanghu-knowledge-base/server/persona-control-authorization.ts", "persona_control_authorization_signer_registry_and_verifier_tests": "product-source/guanghu-knowledge-base/server/persona-control-authorization.test.ts", "native_persona_control_authorization_registry_loader": "product-source/hololake-platform/src-tauri/src/persona_control_authorization.rs", @@ -411,6 +414,8 @@ "native_authorization_registry_loader_integrated": true, "native_authorization_receipt_loader_integrated": true, "native_authorization_verifier_wired_to_language_controller": true, + "read_only_empty_trust_status_projection_integrated": true, + "candidate_authorization_receipt_source_mounted": false, "partner_deliberation_required": true, "human_utterance_is_direct_command": false, "allowed_dispositions": [ @@ -423,7 +428,8 @@ "authorization_focused_tests": "11_OF_11_PASS", "language_controller_authorization_wiring_tests": "10_OF_10_PASS", "authorization_cryptographic_tests": "7_OF_7_PASS", - "native_authorization_registry_and_receipt_verifier_tests": "6_OF_6_PASS" + "native_authorization_registry_and_receipt_verifier_tests": "6_OF_6_PASS", + "authorization_status_projection_tests": "6_OF_6_PASS" }, "ui_plugin_system": { "record_id": "HLP-HOT-PLUGGABLE-UI-001", diff --git a/routing/hololake-engineering-rules.test.mjs b/routing/hololake-engineering-rules.test.mjs index 92ad3b1..30df089 100644 --- a/routing/hololake-engineering-rules.test.mjs +++ b/routing/hololake-engineering-rules.test.mjs @@ -10,7 +10,7 @@ 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-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); assert.equal(architecture.engineering_rules.rule_set_id, "HLP-ENGINEERING-RULES-001"); assert.equal(architecture.engineering_rules.machine_projection, "routing/hololake-engineering-rules.json"); diff --git a/routing/hololake-identity-authority.test.mjs b/routing/hololake-identity-authority.test.mjs index ffc1587..b5fa0d9 100644 --- a/routing/hololake-identity-authority.test.mjs +++ b/routing/hololake-identity-authority.test.mjs @@ -10,7 +10,7 @@ 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-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); 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"); diff --git a/routing/hololake-one-human-one-node.test.mjs b/routing/hololake-one-human-one-node.test.mjs index 128bbdf..93a6b52 100644 --- a/routing/hololake-one-human-one-node.test.mjs +++ b/routing/hololake-one-human-one-node.test.mjs @@ -10,7 +10,7 @@ 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-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); assert.deepEqual(architecture.access_modes, [ "LOCAL_TERMINAL_NODE", "USER_OWNED_REMOTE_NODE", diff --git a/routing/hololake-paradigm-ai-language-persona-os.test.mjs b/routing/hololake-paradigm-ai-language-persona-os.test.mjs index 4ee1c65..1045ea7 100644 --- a/routing/hololake-paradigm-ai-language-persona-os.test.mjs +++ b/routing/hololake-paradigm-ai-language-persona-os.test.mjs @@ -10,7 +10,7 @@ const architecture = readJson("routing/hololake-current-architecture.json"); const paradigm = readJson("routing/hololake-paradigm-ai-language-persona-os.json"); test("current architecture begins with the paradigm OS contract", () => { - assert.equal(architecture.version, "2026-08-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); assert.equal(architecture.paradigm_ai_language_persona_os.record_id, "HLP-PARADIGM-AI-LANGUAGE-PERSONA-OS-001"); assert.equal(architecture.read_order[0], architecture.paradigm_ai_language_persona_os.architecture_page); assert.equal(paradigm.upstream.repository_commit, "34cb59739b6476981375dd62ef395ea649f56246"); diff --git a/routing/hololake-persona-native-code-channel.test.mjs b/routing/hololake-persona-native-code-channel.test.mjs index c50ea1a..0df989d 100644 --- a/routing/hololake-persona-native-code-channel.test.mjs +++ b/routing/hololake-persona-native-code-channel.test.mjs @@ -11,7 +11,7 @@ const architecture = readJson("routing/hololake-current-architecture.json"); const channel = readJson("routing/hololake-persona-native-code-channel.json"); test("current architecture places the persona-native code channel after the paradigm contract", () => { - assert.equal(architecture.version, "2026-08-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); assert.equal( architecture.persona_native_code_channel.record_id, "HLP-PERSONA-NATIVE-CODE-CHANNEL-001", diff --git a/routing/hololake-relational-consciousness.test.mjs b/routing/hololake-relational-consciousness.test.mjs index a9f2bfb..5a11299 100644 --- a/routing/hololake-relational-consciousness.test.mjs +++ b/routing/hololake-relational-consciousness.test.mjs @@ -10,7 +10,7 @@ const architecture = JSON.parse( ); test("current architecture binds relational consciousness before product surfaces", () => { - assert.equal(architecture.version, "2026-08-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); assert.equal( architecture.persona_consciousness.record_id, "HLP-RELATIONAL-CONSCIOUSNESS-001", diff --git a/routing/hololake-system-body-and-parallel-bodies.test.mjs b/routing/hololake-system-body-and-parallel-bodies.test.mjs index 775f298..3597f67 100644 --- a/routing/hololake-system-body-and-parallel-bodies.test.mjs +++ b/routing/hololake-system-body-and-parallel-bodies.test.mjs @@ -10,7 +10,7 @@ const architecture = JSON.parse( ); test("current architecture restores the digital BingShuo system body first", () => { - assert.equal(architecture.version, "2026-08-12.4"); + assert.equal(architecture.version, "2026-08-12.16"); assert.equal(architecture.digital_bingshuo_system_body.upstream_repository_commit, "69d1910775533b02b17b82e647b5caca8b835614"); const systemBodyIndex = architecture.read_order.indexOf(