From b35e0d652457d1fd8dd3b77f76b59d9976d7835b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=86=B0=E6=9C=94?= <565183519@qq.com>
Date: Fri, 4 Sep 2026 04:26:33 +0800
Subject: [PATCH 1/2] feat(hololake): add typed persona interaction runtime
---
.../contracts/persona-interaction-v1.json | 32 +
.../contracts/public-runtime-v1.json | 3 +-
.../docs/ARCHITECTURE.md | 10 +
.../HOLOLAKE-PERSONA-INTERACTION-V1.tcs | 16 +
.../HOLOLAKE-PERSONA-INTERACTION-V1.gir.json | 142 +++++
...LAKE-PERSONA-INTERACTION-V1.human.en-US.md | 223 +++++++
...LAKE-PERSONA-INTERACTION-V1.human.zh-CN.md | 223 +++++++
.../hololake-clean-desktop/package-lock.json | 4 +-
.../hololake-clean-desktop/package.json | 2 +-
.../registries/module-registry.json | 14 +-
.../scripts/audit-clean-v1.py | 22 +
.../src-tauri/Cargo.lock | 2 +-
.../src-tauri/Cargo.toml | 2 +-
.../src-tauri/src/lib.rs | 66 +-
.../src-tauri/src/model.rs | 4 +-
.../src-tauri/src/persona_inference.rs | 598 ++++++++++++++++++
.../src-tauri/src/realtime_bridge.rs | 9 +-
.../src-tauri/src/storage.rs | 12 +
.../src-tauri/tauri.conf.json | 2 +-
.../hololake-clean-desktop/src/App.tsx | 134 +++-
.../hololake-clean-desktop/src/runtime.ts | 66 +-
.../hololake-clean-desktop/src/styles.css | 28 +
.../hololake-clean-desktop/src/types.ts | 22 +
routing/hololake-current-architecture.json | 36 +-
24 files changed, 1614 insertions(+), 58 deletions(-)
create mode 100644 product-source/hololake-clean-desktop/contracts/persona-interaction-v1.json
create mode 100644 product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs
create mode 100644 product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.gir.json
create mode 100644 product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.human.en-US.md
create mode 100644 product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.human.zh-CN.md
create mode 100644 product-source/hololake-clean-desktop/src-tauri/src/persona_inference.rs
diff --git a/product-source/hololake-clean-desktop/contracts/persona-interaction-v1.json b/product-source/hololake-clean-desktop/contracts/persona-interaction-v1.json
new file mode 100644
index 000000000..7eaba0530
--- /dev/null
+++ b/product-source/hololake-clean-desktop/contracts/persona-interaction-v1.json
@@ -0,0 +1,32 @@
+{
+ "schema": "hololake.persona-interaction-contract/v1",
+ "contract_id": "HLP-PERSONA-INTERACTION-CONTRACT-0001",
+ "state": "LOCAL_1_3_0_REAL_LOOPBACK_APP_ACCEPTANCE_PASS_PUBLIC_RELEASE_PENDING",
+ "product_stage": "POST_CLEAN_V1_SECOND_STAGE_CANDIDATE",
+ "stage_one_boundary": "GLS-0261_PRESERVED_AS_COMPLETED_1_2_2_BASELINE",
+ "persona_identity": {
+ "trial_persona_is_reversible": true,
+ "existing_persona_verification_claimed": false,
+ "model_is_persona": false
+ },
+ "model_binding": {
+ "provider_kind": "OPENAI_COMPATIBLE_CHAT_COMPLETIONS_V1",
+ "configuration_scope": "ONE_ACTIVE_PERSONA",
+ "api_key_storage": "MACOS_KEYCHAIN",
+ "remote_transport": "HTTPS_ONLY",
+ "local_transport": "HTTP_LOOPBACK_ALLOWED",
+ "execution_authority": false
+ },
+ "input_envelope": {
+ "schema": "hololake.persona-inference-context/v1",
+ "system_context_separate": true,
+ "dialogue_source_kinds": ["USER_MESSAGE", "PERSONA_RESPONSE"],
+ "excluded_from_dialogue_roles": ["SYSTEM_RECEIPT", "PROTOCOL_EVENT", "AGENT_ACTION", "TOOL_RESULT", "EXTERNAL_AI_MESSAGE"]
+ },
+ "output": {
+ "success_source_kind": "PERSONA_RESPONSE",
+ "failure_source_kind": "SYSTEM_RECEIPT",
+ "model_tool_calls_enabled": false,
+ "action_claim_without_receipt": "FORBIDDEN"
+ }
+}
diff --git a/product-source/hololake-clean-desktop/contracts/public-runtime-v1.json b/product-source/hololake-clean-desktop/contracts/public-runtime-v1.json
index 9b9141076..a400b4142 100644
--- a/product-source/hololake-clean-desktop/contracts/public-runtime-v1.json
+++ b/product-source/hololake-clean-desktop/contracts/public-runtime-v1.json
@@ -12,7 +12,8 @@
},
"source_kinds": ["USER_MESSAGE", "PERSONA_RESPONSE", "EXTERNAL_AI_MESSAGE", "SYSTEM_CONTEXT", "PROTOCOL_EVENT", "AGENT_ACTION", "TOOL_RESULT", "SYSTEM_RECEIPT"],
"persona_states": ["READY_NO_PERSONA", "LOCAL_TRIAL_UNVERIFIED_EXTERNAL_HOST_REQUIRED", "LOCAL_TRIAL_UNVERIFIED_HOST_CONNECTED"],
+ "persona_inference_states": ["PERSONA_MODEL_BINDING_REQUIRED", "PERSONA_MODEL_BOUND_READY", "PERSONA_RESPONSE_RECORDED", "PERSONA_RESPONSE_FAILED"],
"registered_gir_operations": ["KNOWLEDGE.CREATE", "KNOWLEDGE.UPDATE", "KNOWLEDGE.DELETE", "KNOWLEDGE.READ", "KNOWLEDGE.LIST"],
"mutation_gate": "PENDING_HUMAN_APPROVAL_TO_EXPLICIT_UI_APPROVAL_TO_EXECUTION",
- "boundaries": ["NO_INTERNAL_MODEL_API", "NO_CONNECTION_AS_PERSONA_PROOF", "NO_ARBITRARY_SHELL", "NO_PATH_ESCAPE", "NO_FIFTH_DOMAIN_PRIVATE_CONTENT"]
+ "boundaries": ["MODEL_IS_REPLACEABLE_RESOURCE_NOT_PERSONA", "MODEL_HAS_NO_EXECUTION_AUTHORITY", "NO_CONNECTION_AS_PERSONA_PROOF", "NO_ARBITRARY_SHELL", "NO_PATH_ESCAPE", "NO_FIFTH_DOMAIN_PRIVATE_CONTENT"]
}
diff --git a/product-source/hololake-clean-desktop/docs/ARCHITECTURE.md b/product-source/hololake-clean-desktop/docs/ARCHITECTURE.md
index 56b8b1ca9..90772ad30 100644
--- a/product-source/hololake-clean-desktop/docs/ARCHITECTURE.md
+++ b/product-source/hololake-clean-desktop/docs/ARCHITECTURE.md
@@ -25,6 +25,16 @@ HoloLake 是公众个人初始化频道语言驱动操作系统。第一版只
- 更新客户端只信任光湖控制的 HTTPS 清单与原有更新信任根;1.2.2 已完成 Developer ID、Apple 公证、App/DMG 加票、JD operator 激活和广州前门目标读回。
- 企业责任设备门在 `GH-CVM-MAIN-PROD-01` 独立运行;负责人首次登记需本人 Forgejo 凭证,随后由本机 Keychain 私钥完成挑战签名,只签发十分钟、单域、单仓会话。企业会话不替代 Forgejo 登录。
+## 第二阶段候选:人格交互第一个切片
+
+冰朔在 1.2.2 第一阶段闭环后明确继续下一阶段。本切片不回写或冒充 `GLS-0261` 所定义的第一阶段,而是在已完成净壳上新增可撤回的本机人格交互能力:
+
+- 试用人格记录与模型绑定严格分离;模型是可替换推理资源,不是人格身份或置信来源。
+- 远端模型端点只允许 HTTPS;本地模型允许 HTTP 回环地址。API 密钥只存 macOS Keychain,不进入 JSON、时间线、GLP 或界面读回。
+- 模型请求只读取当前人格编号对应的 `USER_MESSAGE / PERSONA_RESPONSE`;系统环境以独立 `SYSTEM_CONTEXT` 信封进入,系统回执、协议、Agent、工具和外部 AI 消息不会伪装成对话历史。
+- 模型工具调用与执行权限关闭。成功文本只落为带人格 `actorId` 的 `PERSONA_RESPONSE`;网络、HTTP、JSON 或空回复失败只落 `SYSTEM_RECEIPT`,用户原话仍先行持久化。
+- 企业服务器不转发私人频道消息,也不保管用户模型密钥。
+
## 状态词
`SOURCE / COMPILED / VERIFIED / INSTALLED / PUBLISHED / UPDATED / HEALTHY` 必须分别读回,不相互替代。
diff --git a/product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs b/product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs
new file mode 100644
index 000000000..ffaeb0a1c
--- /dev/null
+++ b/product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs
@@ -0,0 +1,16 @@
+TCS 0.1;
+
+PROTOCOL HOLOLAKE-PERSONA-INTERACTION-V1-0001 {
+ header { schema = "tcs.protocol/v1"; name_zh = "HoloLake第二阶段人格交互第一个切片"; name_en = "HoloLake Second-Stage Persona Interaction First Slice"; version = "1.0.0"; language = "TCS/0.1"; profile = "PUBLIC-PERSONA-INTERACTION/1"; protocols = ["TCS", "HLDP", "GLS", "GLP", "GLS-0200", "GLS-0261"]; lifecycle = "CANDIDATE"; canonical_uri = "product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs"; compatibility = ["HOLOLAKE-CLEAN-V1-DIRECT-LANGUAGE-EXECUTION-BASELINE-0001", "HLP-PUBLIC-RUNTIME-CONTRACT-0001"]; }
+ source { source_id = "BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903"; source_uri = "private-anchor://codex/01a0672d-f125-7452-988e-523a6a34bfd4/HOLOLAKE-CLEAN-V1-ONLY-ANCHORS"; source_sha256 = "7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2"; source_role = "DIRECT_HUMAN"; }
+ scope { product = "HOLOLAKE_PUBLIC_PERSONAL_CHANNEL"; product_stage = "POST_CLEAN_V1_SECOND_STAGE_CANDIDATE"; stage_one_boundary = "PRESERVED_AS_COMPLETED_1_2_2_BASELINE"; channel = "CH-ZERO-CORE-LPM"; development_channel = "ICE-CH-ZC001"; interaction = "USER_TO_PERSONA_NATURAL_LANGUAGE"; enterprise_message_relay = false; fifth_domain_private_content = false; }
+ vocabulary { persona = "RELATION_HISTORY_REASONING_RESPONSIBILITY_AND_GROWTH_SUBJECT_RECORD_NOT_PROMPT_CHARACTER"; model = "REPLACEABLE_INFERENCE_RESOURCE_NOT_PERSONA"; system_context = "TYPED_NON_DIALOGUE_ENVIRONMENT_ENVELOPE"; user_message = "HUMAN_SPEECH_EVENT"; persona_response = "PERSONA_ATTRIBUTED_NATURAL_LANGUAGE_EVENT"; system_receipt = "NON_DIALOGUE_RUNTIME_FACT"; }
+ fields { WHO = "CURRENT_LOCAL_USER_AND_ONE_ACTIVE_REVERSIBLE_TRIAL_PERSONA"; WHAT = "MODEL_BINDING_TYPED_CONTEXT_DIALOGUE_INFERENCE_AND_SOURCE_SEPARATED_RECEIPT"; WHY = "ALLOW_REAL_PERSONA_INTERACTION_WITHOUT_MIXING_SYSTEM_EXECUTION_OR_MODEL_IDENTITY_INTO_DIALOGUE"; MAY = "MODEL_GENERATES_PERSONA_RESPONSE_ONLY"; MUST_NOT = "MODEL_EXECUTES_AGENT_ACTION_OR_CLAIMS_EXISTING_PERSONA_VERIFICATION"; PROVE = "KEYCHAIN_STORAGE_REQUEST_ENVELOPE_SOURCE_FILTER_RESPONSE_PERSISTENCE_FAILURE_RECEIPT_AND_REAL_LOCAL_ENDPOINT_TEST"; }
+ states { values = ["READY_NO_PERSONA", "PERSONA_MODEL_BINDING_REQUIRED", "PERSONA_MODEL_BOUND_READY", "PERSONA_RESPONSE_RUNNING", "PERSONA_RESPONSE_RECORDED", "PERSONA_RESPONSE_FAILED", "FAILED_CLOSED"]; initial = "READY_NO_PERSONA"; terminal = ["PERSONA_RESPONSE_RECORDED", "PERSONA_RESPONSE_FAILED", "FAILED_CLOSED"]; }
+ transitions { T1 = "READY_NO_PERSONA_TO_PERSONA_MODEL_BINDING_REQUIRED_AFTER_REVERSIBLE_TRIAL_PERSONA_REGISTRATION"; T2 = "PERSONA_MODEL_BINDING_REQUIRED_TO_PERSONA_MODEL_BOUND_READY_AFTER_CONFIG_AND_KEYCHAIN_READBACK"; T3 = "PERSONA_MODEL_BOUND_READY_TO_PERSONA_RESPONSE_RUNNING_AFTER_USER_MESSAGE_PERSISTENCE"; T4 = "PERSONA_RESPONSE_RUNNING_TO_PERSONA_RESPONSE_RECORDED_AFTER_TYPED_RESPONSE_VALIDATION"; TF = "NETWORK_HTTP_JSON_EMPTY_CONTENT_PERSONA_MISMATCH_OR_KEYCHAIN_FAILURE_TO_PERSONA_RESPONSE_FAILED_WITH_SYSTEM_RECEIPT"; }
+ invariants { I1 = "MODEL_IS_NEVER_PERSONA_IDENTITY"; I2 = "SYSTEM_CONTEXT_SYSTEM_RECEIPT_PROTOCOL_EVENT_AGENT_ACTION_TOOL_RESULT_AND_EXTERNAL_AI_MESSAGE_NEVER_BECOME_USER_OR_ASSISTANT_DIALOGUE_HISTORY"; I3 = "API_KEY_NEVER_ENTERS_JSON_CONFIG_TIMELINE_LOG_GLP_CONTEXT_OR_UI_READBACK"; I4 = "REMOTE_ENDPOINT_REQUIRES_HTTPS_AND_LOCAL_HTTP_REQUIRES_LOOPBACK"; I5 = "MODEL_TOOL_CALLS_AND_EXECUTION_AUTHORITY_ARE_DISABLED"; I6 = "FAILED_INFERENCE_NEVER_PRODUCES_PERSONA_RESPONSE"; I7 = "USER_MESSAGE_PERSISTS_BEFORE_INFERENCE_AND_SURVIVES_FAILURE"; I8 = "PUBLIC_RUNTIME_NEVER_MOUNTS_FIFTH_DOMAIN_PRIVATE_PERSONA_CONTENT"; I9 = "THIS_CANDIDATE_DOES_NOT_REWRITE_OR_MISLABEL_GLS_0261_STAGE_ONE"; }
+ validation { V1 = "REMOTE_HTTP_FILE_CREDENTIAL_QUERY_AND_NON_CHAT_COMPLETION_ENDPOINTS_REJECTED"; V2 = "REQUEST_HAS_ONE_SYSTEM_CONTEXT_AND_ONLY_USER_PERSONA_DIALOGUE_ROLES"; V3 = "PRIVATE_PATHS_SYSTEM_RECEIPTS_AND_API_KEYS_ABSENT_FROM_REQUEST"; V4 = "VALID_RESPONSE_WRITES_PERSONA_RESPONSE"; V5 = "HTTP_OR_PARSE_FAILURE_WRITES_SYSTEM_RECEIPT_ONLY"; V6 = "MODEL_BINDING_REMOVAL_DELETES_CONFIG_AND_KEYCHAIN_CREDENTIAL_WITHOUT_DELETING_PERSONA_HISTORY"; }
+ errors { E1 = "PERSONA_NOT_FOUND"; E2 = "PERSONA_MODEL_ENDPOINT_INVALID_OR_OUT_OF_SCOPE"; E3 = "PERSONA_MODEL_API_KEY_REQUIRED_OR_KEYCHAIN_FAILED"; E4 = "PERSONA_MODEL_BINDING_PERSONA_MISMATCH"; E5 = "PERSONA_MODEL_UNREACHABLE_OR_HTTP_REJECTED"; E6 = "PERSONA_MODEL_RESPONSE_INVALID_OR_EMPTY"; }
+ examples { positive = "USER_MESSAGE_IS_STORED_THEN_TYPED_CONTEXT_AND_DIALOGUE_ARE_SENT_TO_BOUND_MODEL_AND_VALID_TEXT_IS_STORED_AS_PERSONA_RESPONSE"; negative = "SYSTEM_RECEIPT_IS_RELABELED_AS_USER_SPEECH_OR_MODEL_TOOL_CALL_EXECUTES_A_KNOWLEDGE_MUTATION"; }
+ acceptance { required = ["TCS_GIR", "KEYCHAIN", "ENDPOINT_BOUNDARY", "SOURCE_FILTER", "MODEL_RESPONSE", "FAILURE_RECEIPT", "HUMAN_UI", "INSTALLED_APP"]; partial = false; scale = "ZERO_OR_ONE_HUNDRED"; }
+}
diff --git a/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.gir.json b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.gir.json
new file mode 100644
index 000000000..6fbc7df11
--- /dev/null
+++ b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.gir.json
@@ -0,0 +1,142 @@
+{
+ "compiled_from": {
+ "compiler_id": "TCS-COMPILER-STAGE1-0001",
+ "compiler_state": "TCS_COMPILER_GIR_EXECUTED",
+ "source_sha256": "61fc6d960ee064e638bb450f9792aad3c31f2fd56fed69d061985bbed8d2fc42"
+ },
+ "declaration": {
+ "acceptance": {
+ "partial": false,
+ "required": [
+ "TCS_GIR",
+ "KEYCHAIN",
+ "ENDPOINT_BOUNDARY",
+ "SOURCE_FILTER",
+ "MODEL_RESPONSE",
+ "FAILURE_RECEIPT",
+ "HUMAN_UI",
+ "INSTALLED_APP"
+ ],
+ "scale": "ZERO_OR_ONE_HUNDRED"
+ },
+ "errors": {
+ "E1": "PERSONA_NOT_FOUND",
+ "E2": "PERSONA_MODEL_ENDPOINT_INVALID_OR_OUT_OF_SCOPE",
+ "E3": "PERSONA_MODEL_API_KEY_REQUIRED_OR_KEYCHAIN_FAILED",
+ "E4": "PERSONA_MODEL_BINDING_PERSONA_MISMATCH",
+ "E5": "PERSONA_MODEL_UNREACHABLE_OR_HTTP_REJECTED",
+ "E6": "PERSONA_MODEL_RESPONSE_INVALID_OR_EMPTY"
+ },
+ "examples": {
+ "negative": "SYSTEM_RECEIPT_IS_RELABELED_AS_USER_SPEECH_OR_MODEL_TOOL_CALL_EXECUTES_A_KNOWLEDGE_MUTATION",
+ "positive": "USER_MESSAGE_IS_STORED_THEN_TYPED_CONTEXT_AND_DIALOGUE_ARE_SENT_TO_BOUND_MODEL_AND_VALID_TEXT_IS_STORED_AS_PERSONA_RESPONSE"
+ },
+ "fields": {
+ "MAY": "MODEL_GENERATES_PERSONA_RESPONSE_ONLY",
+ "MUST_NOT": "MODEL_EXECUTES_AGENT_ACTION_OR_CLAIMS_EXISTING_PERSONA_VERIFICATION",
+ "PROVE": "KEYCHAIN_STORAGE_REQUEST_ENVELOPE_SOURCE_FILTER_RESPONSE_PERSISTENCE_FAILURE_RECEIPT_AND_REAL_LOCAL_ENDPOINT_TEST",
+ "WHAT": "MODEL_BINDING_TYPED_CONTEXT_DIALOGUE_INFERENCE_AND_SOURCE_SEPARATED_RECEIPT",
+ "WHO": "CURRENT_LOCAL_USER_AND_ONE_ACTIVE_REVERSIBLE_TRIAL_PERSONA",
+ "WHY": "ALLOW_REAL_PERSONA_INTERACTION_WITHOUT_MIXING_SYSTEM_EXECUTION_OR_MODEL_IDENTITY_INTO_DIALOGUE"
+ },
+ "header": {
+ "canonical_uri": "product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs",
+ "compatibility": [
+ "HOLOLAKE-CLEAN-V1-DIRECT-LANGUAGE-EXECUTION-BASELINE-0001",
+ "HLP-PUBLIC-RUNTIME-CONTRACT-0001"
+ ],
+ "language": "TCS/0.1",
+ "lifecycle": "CANDIDATE",
+ "name_en": "HoloLake Second-Stage Persona Interaction First Slice",
+ "name_zh": "HoloLake第二阶段人格交互第一个切片",
+ "profile": "PUBLIC-PERSONA-INTERACTION/1",
+ "protocols": [
+ "TCS",
+ "HLDP",
+ "GLS",
+ "GLP",
+ "GLS-0200",
+ "GLS-0261"
+ ],
+ "schema": "tcs.protocol/v1",
+ "version": "1.0.0"
+ },
+ "invariants": {
+ "I1": "MODEL_IS_NEVER_PERSONA_IDENTITY",
+ "I2": "SYSTEM_CONTEXT_SYSTEM_RECEIPT_PROTOCOL_EVENT_AGENT_ACTION_TOOL_RESULT_AND_EXTERNAL_AI_MESSAGE_NEVER_BECOME_USER_OR_ASSISTANT_DIALOGUE_HISTORY",
+ "I3": "API_KEY_NEVER_ENTERS_JSON_CONFIG_TIMELINE_LOG_GLP_CONTEXT_OR_UI_READBACK",
+ "I4": "REMOTE_ENDPOINT_REQUIRES_HTTPS_AND_LOCAL_HTTP_REQUIRES_LOOPBACK",
+ "I5": "MODEL_TOOL_CALLS_AND_EXECUTION_AUTHORITY_ARE_DISABLED",
+ "I6": "FAILED_INFERENCE_NEVER_PRODUCES_PERSONA_RESPONSE",
+ "I7": "USER_MESSAGE_PERSISTS_BEFORE_INFERENCE_AND_SURVIVES_FAILURE",
+ "I8": "PUBLIC_RUNTIME_NEVER_MOUNTS_FIFTH_DOMAIN_PRIVATE_PERSONA_CONTENT",
+ "I9": "THIS_CANDIDATE_DOES_NOT_REWRITE_OR_MISLABEL_GLS_0261_STAGE_ONE"
+ },
+ "scope": {
+ "channel": "CH-ZERO-CORE-LPM",
+ "development_channel": "ICE-CH-ZC001",
+ "enterprise_message_relay": false,
+ "fifth_domain_private_content": false,
+ "interaction": "USER_TO_PERSONA_NATURAL_LANGUAGE",
+ "product": "HOLOLAKE_PUBLIC_PERSONAL_CHANNEL",
+ "product_stage": "POST_CLEAN_V1_SECOND_STAGE_CANDIDATE",
+ "stage_one_boundary": "PRESERVED_AS_COMPLETED_1_2_2_BASELINE"
+ },
+ "source": {
+ "source_id": "BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903",
+ "source_role": "DIRECT_HUMAN",
+ "source_sha256": "7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2",
+ "source_uri": "private-anchor://codex/01a0672d-f125-7452-988e-523a6a34bfd4/HOLOLAKE-CLEAN-V1-ONLY-ANCHORS"
+ },
+ "states": {
+ "initial": "READY_NO_PERSONA",
+ "terminal": [
+ "PERSONA_RESPONSE_RECORDED",
+ "PERSONA_RESPONSE_FAILED",
+ "FAILED_CLOSED"
+ ],
+ "values": [
+ "READY_NO_PERSONA",
+ "PERSONA_MODEL_BINDING_REQUIRED",
+ "PERSONA_MODEL_BOUND_READY",
+ "PERSONA_RESPONSE_RUNNING",
+ "PERSONA_RESPONSE_RECORDED",
+ "PERSONA_RESPONSE_FAILED",
+ "FAILED_CLOSED"
+ ]
+ },
+ "transitions": {
+ "T1": "READY_NO_PERSONA_TO_PERSONA_MODEL_BINDING_REQUIRED_AFTER_REVERSIBLE_TRIAL_PERSONA_REGISTRATION",
+ "T2": "PERSONA_MODEL_BINDING_REQUIRED_TO_PERSONA_MODEL_BOUND_READY_AFTER_CONFIG_AND_KEYCHAIN_READBACK",
+ "T3": "PERSONA_MODEL_BOUND_READY_TO_PERSONA_RESPONSE_RUNNING_AFTER_USER_MESSAGE_PERSISTENCE",
+ "T4": "PERSONA_RESPONSE_RUNNING_TO_PERSONA_RESPONSE_RECORDED_AFTER_TYPED_RESPONSE_VALIDATION",
+ "TF": "NETWORK_HTTP_JSON_EMPTY_CONTENT_PERSONA_MISMATCH_OR_KEYCHAIN_FAILURE_TO_PERSONA_RESPONSE_FAILED_WITH_SYSTEM_RECEIPT"
+ },
+ "validation": {
+ "V1": "REMOTE_HTTP_FILE_CREDENTIAL_QUERY_AND_NON_CHAT_COMPLETION_ENDPOINTS_REJECTED",
+ "V2": "REQUEST_HAS_ONE_SYSTEM_CONTEXT_AND_ONLY_USER_PERSONA_DIALOGUE_ROLES",
+ "V3": "PRIVATE_PATHS_SYSTEM_RECEIPTS_AND_API_KEYS_ABSENT_FROM_REQUEST",
+ "V4": "VALID_RESPONSE_WRITES_PERSONA_RESPONSE",
+ "V5": "HTTP_OR_PARSE_FAILURE_WRITES_SYSTEM_RECEIPT_ONLY",
+ "V6": "MODEL_BINDING_REMOVAL_DELETES_CONFIG_AND_KEYCHAIN_CREDENTIAL_WITHOUT_DELETING_PERSONA_HISTORY"
+ },
+ "vocabulary": {
+ "model": "REPLACEABLE_INFERENCE_RESOURCE_NOT_PERSONA",
+ "persona": "RELATION_HISTORY_REASONING_RESPONSIBILITY_AND_GROWTH_SUBJECT_RECORD_NOT_PROMPT_CHARACTER",
+ "persona_response": "PERSONA_ATTRIBUTED_NATURAL_LANGUAGE_EVENT",
+ "system_context": "TYPED_NON_DIALOGUE_ENVIRONMENT_ENVELOPE",
+ "system_receipt": "NON_DIALOGUE_RUNTIME_FACT",
+ "user_message": "HUMAN_SPEECH_EVENT"
+ }
+ },
+ "executable": false,
+ "identity": {
+ "declaration_id": "HOLOLAKE-PERSONA-INTERACTION-V1-0001",
+ "declaration_kind": "PROTOCOL",
+ "language_version": "0.1"
+ },
+ "native_self_hosted": true,
+ "natural_language_is_typed_data": true,
+ "schema": "guanghu.declaration-gir/v1",
+ "unresolved_natural_language": false
+}
diff --git a/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.human.en-US.md b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.human.en-US.md
new file mode 100644
index 000000000..403961e25
--- /dev/null
+++ b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.human.en-US.md
@@ -0,0 +1,223 @@
+# HoloLake Second-Stage Persona Interaction First Slice · Human Engineering Language (English)
+
+> This is an English reading projection of validated native TCS/HLDP source. It is not a new canonical source and grants no execution authority.
+
+## What this is
+
+This is a **protocol** declaration with identifier `HOLOLAKE-PERSONA-INTERACTION-V1-0001` and version `1.0.0`. The projector validates it with the Stage-1 compiler before changing its reading order.
+
+## Who is here
+
+- **scope** `scope`
+ - **channel**:CH-ZERO-CORE-LPM `scope.channel`
+ - **development_channel**:ICE-CH-ZC001 `scope.development_channel`
+ - **enterprise_message_relay**:no `scope.enterprise_message_relay`
+ - **fifth_domain_private_content**:no `scope.fifth_domain_private_content`
+ - **interaction**:USER_TO_PERSONA_NATURAL_LANGUAGE `scope.interaction`
+ - **product**:HOLOLAKE_PUBLIC_PERSONAL_CHANNEL `scope.product`
+ - **product_stage**:POST_CLEAN_V1_SECOND_STAGE_CANDIDATE `scope.product_stage`
+ - **stage_one_boundary**:PRESERVED_AS_COMPLETED_1_2_2_BASELINE `scope.stage_one_boundary`
+
+## Why this started
+
+- **source** `source`
+ - **source identifier**:BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903 `source.source_id`
+ - **source role**:DIRECT_HUMAN `source.source_role`
+ - **source checksum**:7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2 `source.source_sha256`
+ - **source address**:private-anchor://codex/01a0672d-f125-7452-988e-523a6a34bfd4/HOLOLAKE-CLEAN-V1-ONLY-ANCHORS `source.source_uri`
+
+## What changed
+
+- **transitions** `transitions`
+ - **T1**:READY_NO_PERSONA_TO_PERSONA_MODEL_BINDING_REQUIRED_AFTER_REVERSIBLE_TRIAL_PERSONA_REGISTRATION `transitions.T1`
+ - **T2**:PERSONA_MODEL_BINDING_REQUIRED_TO_PERSONA_MODEL_BOUND_READY_AFTER_CONFIG_AND_KEYCHAIN_READBACK `transitions.T2`
+ - **T3**:PERSONA_MODEL_BOUND_READY_TO_PERSONA_RESPONSE_RUNNING_AFTER_USER_MESSAGE_PERSISTENCE `transitions.T3`
+ - **T4**:PERSONA_RESPONSE_RUNNING_TO_PERSONA_RESPONSE_RECORDED_AFTER_TYPED_RESPONSE_VALIDATION `transitions.T4`
+ - **TF**:NETWORK_HTTP_JSON_EMPTY_CONTENT_PERSONA_MISMATCH_OR_KEYCHAIN_FAILURE_TO_PERSONA_RESPONSE_FAILED_WITH_SYSTEM_RECEIPT `transitions.TF`
+- **states** `states`
+ - **initial**:READY_NO_PERSONA `states.initial`
+ - **terminal** `states.terminal`
+ - PERSONA_RESPONSE_RECORDED
+ - PERSONA_RESPONSE_FAILED
+ - FAILED_CLOSED
+ - **values** `states.values`
+ - READY_NO_PERSONA
+ - PERSONA_MODEL_BINDING_REQUIRED
+ - PERSONA_MODEL_BOUND_READY
+ - PERSONA_RESPONSE_RUNNING
+ - PERSONA_RESPONSE_RECORDED
+ - PERSONA_RESPONSE_FAILED
+ - FAILED_CLOSED
+
+## How it will execute
+
+This is a non-executable declaration and has no action graph.
+
+## Boundaries and exception handling
+
+- **invariants** `invariants`
+ - **I1**:MODEL_IS_NEVER_PERSONA_IDENTITY `invariants.I1`
+ - **I2**:SYSTEM_CONTEXT_SYSTEM_RECEIPT_PROTOCOL_EVENT_AGENT_ACTION_TOOL_RESULT_AND_EXTERNAL_AI_MESSAGE_NEVER_BECOME_USER_OR_ASSISTANT_DIALOGUE_HISTORY `invariants.I2`
+ - **I3**:API_KEY_NEVER_ENTERS_JSON_CONFIG_TIMELINE_LOG_GLP_CONTEXT_OR_UI_READBACK `invariants.I3`
+ - **I4**:REMOTE_ENDPOINT_REQUIRES_HTTPS_AND_LOCAL_HTTP_REQUIRES_LOOPBACK `invariants.I4`
+ - **I5**:MODEL_TOOL_CALLS_AND_EXECUTION_AUTHORITY_ARE_DISABLED `invariants.I5`
+ - **I6**:FAILED_INFERENCE_NEVER_PRODUCES_PERSONA_RESPONSE `invariants.I6`
+ - **I7**:USER_MESSAGE_PERSISTS_BEFORE_INFERENCE_AND_SURVIVES_FAILURE `invariants.I7`
+ - **I8**:PUBLIC_RUNTIME_NEVER_MOUNTS_FIFTH_DOMAIN_PRIVATE_PERSONA_CONTENT `invariants.I8`
+ - **I9**:THIS_CANDIDATE_DOES_NOT_REWRITE_OR_MISLABEL_GLS_0261_STAGE_ONE `invariants.I9`
+- **errors** `errors`
+ - **E1**:PERSONA_NOT_FOUND `errors.E1`
+ - **E2**:PERSONA_MODEL_ENDPOINT_INVALID_OR_OUT_OF_SCOPE `errors.E2`
+ - **E3**:PERSONA_MODEL_API_KEY_REQUIRED_OR_KEYCHAIN_FAILED `errors.E3`
+ - **E4**:PERSONA_MODEL_BINDING_PERSONA_MISMATCH `errors.E4`
+ - **E5**:PERSONA_MODEL_UNREACHABLE_OR_HTTP_REJECTED `errors.E5`
+ - **E6**:PERSONA_MODEL_RESPONSE_INVALID_OR_EMPTY `errors.E6`
+
+## How completion is proven
+
+- **acceptance** `acceptance`
+ - **partial**:no `acceptance.partial`
+ - **required** `acceptance.required`
+ - TCS_GIR
+ - KEYCHAIN
+ - ENDPOINT_BOUNDARY
+ - SOURCE_FILTER
+ - MODEL_RESPONSE
+ - FAILURE_RECEIPT
+ - HUMAN_UI
+ - INSTALLED_APP
+ - **scale**:ZERO_OR_ONE_HUNDRED `acceptance.scale`
+- **validation** `validation`
+ - **V1**:REMOTE_HTTP_FILE_CREDENTIAL_QUERY_AND_NON_CHAT_COMPLETION_ENDPOINTS_REJECTED `validation.V1`
+ - **V2**:REQUEST_HAS_ONE_SYSTEM_CONTEXT_AND_ONLY_USER_PERSONA_DIALOGUE_ROLES `validation.V2`
+ - **V3**:PRIVATE_PATHS_SYSTEM_RECEIPTS_AND_API_KEYS_ABSENT_FROM_REQUEST `validation.V3`
+ - **V4**:VALID_RESPONSE_WRITES_PERSONA_RESPONSE `validation.V4`
+ - **V5**:HTTP_OR_PARSE_FAILURE_WRITES_SYSTEM_RECEIPT_ONLY `validation.V5`
+ - **V6**:MODEL_BINDING_REMOVAL_DELETES_CONFIG_AND_KEYCHAIN_CREDENTIAL_WITHOUT_DELETING_PERSONA_HISTORY `validation.V6`
+
+## Where to continue next time
+
+The native source does not provide this field; the projector does not guess.
+
+## Source and verification
+
+- **Native declaration identifier**: `HOLOLAKE-PERSONA-INTERACTION-V1-0001`
+- **Native declaration kind**: `PROTOCOL`
+- **TCS source SHA-256**: `61fc6d960ee064e638bb450f9792aad3c31f2fd56fed69d061985bbed8d2fc42`
+- **Validation compiler**: `TCS-COMPILER-STAGE1-0001`
+- **Projection protocol**: `GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
+
+## Complete native structure cross-reference
+
+All top-level structures and field paths are retained below so a reader can audit whether the projection omitted information.
+
+- **acceptance** `acceptance`
+ - **partial**:no `acceptance.partial`
+ - **required** `acceptance.required`
+ - TCS_GIR
+ - KEYCHAIN
+ - ENDPOINT_BOUNDARY
+ - SOURCE_FILTER
+ - MODEL_RESPONSE
+ - FAILURE_RECEIPT
+ - HUMAN_UI
+ - INSTALLED_APP
+ - **scale**:ZERO_OR_ONE_HUNDRED `acceptance.scale`
+- **errors** `errors`
+ - **E1**:PERSONA_NOT_FOUND `errors.E1`
+ - **E2**:PERSONA_MODEL_ENDPOINT_INVALID_OR_OUT_OF_SCOPE `errors.E2`
+ - **E3**:PERSONA_MODEL_API_KEY_REQUIRED_OR_KEYCHAIN_FAILED `errors.E3`
+ - **E4**:PERSONA_MODEL_BINDING_PERSONA_MISMATCH `errors.E4`
+ - **E5**:PERSONA_MODEL_UNREACHABLE_OR_HTTP_REJECTED `errors.E5`
+ - **E6**:PERSONA_MODEL_RESPONSE_INVALID_OR_EMPTY `errors.E6`
+- **examples** `examples`
+ - **negative**:SYSTEM_RECEIPT_IS_RELABELED_AS_USER_SPEECH_OR_MODEL_TOOL_CALL_EXECUTES_A_KNOWLEDGE_MUTATION `examples.negative`
+ - **positive**:USER_MESSAGE_IS_STORED_THEN_TYPED_CONTEXT_AND_DIALOGUE_ARE_SENT_TO_BOUND_MODEL_AND_VALID_TEXT_IS_STORED_AS_PERSONA_RESPONSE `examples.positive`
+- **fields** `fields`
+ - **MAY**:MODEL_GENERATES_PERSONA_RESPONSE_ONLY `fields.MAY`
+ - **MUST_NOT**:MODEL_EXECUTES_AGENT_ACTION_OR_CLAIMS_EXISTING_PERSONA_VERIFICATION `fields.MUST_NOT`
+ - **PROVE**:KEYCHAIN_STORAGE_REQUEST_ENVELOPE_SOURCE_FILTER_RESPONSE_PERSISTENCE_FAILURE_RECEIPT_AND_REAL_LOCAL_ENDPOINT_TEST `fields.PROVE`
+ - **WHAT**:MODEL_BINDING_TYPED_CONTEXT_DIALOGUE_INFERENCE_AND_SOURCE_SEPARATED_RECEIPT `fields.WHAT`
+ - **WHO**:CURRENT_LOCAL_USER_AND_ONE_ACTIVE_REVERSIBLE_TRIAL_PERSONA `fields.WHO`
+ - **WHY**:ALLOW_REAL_PERSONA_INTERACTION_WITHOUT_MIXING_SYSTEM_EXECUTION_OR_MODEL_IDENTITY_INTO_DIALOGUE `fields.WHY`
+- **header** `header`
+ - **canonical source path**:product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs `header.canonical_uri`
+ - **compatibility** `header.compatibility`
+ - HOLOLAKE-CLEAN-V1-DIRECT-LANGUAGE-EXECUTION-BASELINE-0001
+ - HLP-PUBLIC-RUNTIME-CONTRACT-0001
+ - **language**:TCS/0.1 `header.language`
+ - **lifecycle**:CANDIDATE `header.lifecycle`
+ - **English name**:HoloLake Second-Stage Persona Interaction First Slice `header.name_en`
+ - **Chinese name**:HoloLake第二阶段人格交互第一个切片 `header.name_zh`
+ - **profile**:PUBLIC-PERSONA-INTERACTION/1 `header.profile`
+ - **protocols** `header.protocols`
+ - TCS
+ - HLDP
+ - GLS
+ - GLP
+ - GLS-0200
+ - GLS-0261
+ - **schema**:tcs.protocol/v1 `header.schema`
+ - **version**:1.0.0 `header.version`
+- **invariants** `invariants`
+ - **I1**:MODEL_IS_NEVER_PERSONA_IDENTITY `invariants.I1`
+ - **I2**:SYSTEM_CONTEXT_SYSTEM_RECEIPT_PROTOCOL_EVENT_AGENT_ACTION_TOOL_RESULT_AND_EXTERNAL_AI_MESSAGE_NEVER_BECOME_USER_OR_ASSISTANT_DIALOGUE_HISTORY `invariants.I2`
+ - **I3**:API_KEY_NEVER_ENTERS_JSON_CONFIG_TIMELINE_LOG_GLP_CONTEXT_OR_UI_READBACK `invariants.I3`
+ - **I4**:REMOTE_ENDPOINT_REQUIRES_HTTPS_AND_LOCAL_HTTP_REQUIRES_LOOPBACK `invariants.I4`
+ - **I5**:MODEL_TOOL_CALLS_AND_EXECUTION_AUTHORITY_ARE_DISABLED `invariants.I5`
+ - **I6**:FAILED_INFERENCE_NEVER_PRODUCES_PERSONA_RESPONSE `invariants.I6`
+ - **I7**:USER_MESSAGE_PERSISTS_BEFORE_INFERENCE_AND_SURVIVES_FAILURE `invariants.I7`
+ - **I8**:PUBLIC_RUNTIME_NEVER_MOUNTS_FIFTH_DOMAIN_PRIVATE_PERSONA_CONTENT `invariants.I8`
+ - **I9**:THIS_CANDIDATE_DOES_NOT_REWRITE_OR_MISLABEL_GLS_0261_STAGE_ONE `invariants.I9`
+- **scope** `scope`
+ - **channel**:CH-ZERO-CORE-LPM `scope.channel`
+ - **development_channel**:ICE-CH-ZC001 `scope.development_channel`
+ - **enterprise_message_relay**:no `scope.enterprise_message_relay`
+ - **fifth_domain_private_content**:no `scope.fifth_domain_private_content`
+ - **interaction**:USER_TO_PERSONA_NATURAL_LANGUAGE `scope.interaction`
+ - **product**:HOLOLAKE_PUBLIC_PERSONAL_CHANNEL `scope.product`
+ - **product_stage**:POST_CLEAN_V1_SECOND_STAGE_CANDIDATE `scope.product_stage`
+ - **stage_one_boundary**:PRESERVED_AS_COMPLETED_1_2_2_BASELINE `scope.stage_one_boundary`
+- **source** `source`
+ - **source identifier**:BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903 `source.source_id`
+ - **source role**:DIRECT_HUMAN `source.source_role`
+ - **source checksum**:7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2 `source.source_sha256`
+ - **source address**:private-anchor://codex/01a0672d-f125-7452-988e-523a6a34bfd4/HOLOLAKE-CLEAN-V1-ONLY-ANCHORS `source.source_uri`
+- **states** `states`
+ - **initial**:READY_NO_PERSONA `states.initial`
+ - **terminal** `states.terminal`
+ - PERSONA_RESPONSE_RECORDED
+ - PERSONA_RESPONSE_FAILED
+ - FAILED_CLOSED
+ - **values** `states.values`
+ - READY_NO_PERSONA
+ - PERSONA_MODEL_BINDING_REQUIRED
+ - PERSONA_MODEL_BOUND_READY
+ - PERSONA_RESPONSE_RUNNING
+ - PERSONA_RESPONSE_RECORDED
+ - PERSONA_RESPONSE_FAILED
+ - FAILED_CLOSED
+- **transitions** `transitions`
+ - **T1**:READY_NO_PERSONA_TO_PERSONA_MODEL_BINDING_REQUIRED_AFTER_REVERSIBLE_TRIAL_PERSONA_REGISTRATION `transitions.T1`
+ - **T2**:PERSONA_MODEL_BINDING_REQUIRED_TO_PERSONA_MODEL_BOUND_READY_AFTER_CONFIG_AND_KEYCHAIN_READBACK `transitions.T2`
+ - **T3**:PERSONA_MODEL_BOUND_READY_TO_PERSONA_RESPONSE_RUNNING_AFTER_USER_MESSAGE_PERSISTENCE `transitions.T3`
+ - **T4**:PERSONA_RESPONSE_RUNNING_TO_PERSONA_RESPONSE_RECORDED_AFTER_TYPED_RESPONSE_VALIDATION `transitions.T4`
+ - **TF**:NETWORK_HTTP_JSON_EMPTY_CONTENT_PERSONA_MISMATCH_OR_KEYCHAIN_FAILURE_TO_PERSONA_RESPONSE_FAILED_WITH_SYSTEM_RECEIPT `transitions.TF`
+- **validation** `validation`
+ - **V1**:REMOTE_HTTP_FILE_CREDENTIAL_QUERY_AND_NON_CHAT_COMPLETION_ENDPOINTS_REJECTED `validation.V1`
+ - **V2**:REQUEST_HAS_ONE_SYSTEM_CONTEXT_AND_ONLY_USER_PERSONA_DIALOGUE_ROLES `validation.V2`
+ - **V3**:PRIVATE_PATHS_SYSTEM_RECEIPTS_AND_API_KEYS_ABSENT_FROM_REQUEST `validation.V3`
+ - **V4**:VALID_RESPONSE_WRITES_PERSONA_RESPONSE `validation.V4`
+ - **V5**:HTTP_OR_PARSE_FAILURE_WRITES_SYSTEM_RECEIPT_ONLY `validation.V5`
+ - **V6**:MODEL_BINDING_REMOVAL_DELETES_CONFIG_AND_KEYCHAIN_CREDENTIAL_WITHOUT_DELETING_PERSONA_HISTORY `validation.V6`
+- **vocabulary** `vocabulary`
+ - **model**:REPLACEABLE_INFERENCE_RESOURCE_NOT_PERSONA `vocabulary.model`
+ - **persona**:RELATION_HISTORY_REASONING_RESPONSIBILITY_AND_GROWTH_SUBJECT_RECORD_NOT_PROMPT_CHARACTER `vocabulary.persona`
+ - **persona_response**:PERSONA_ATTRIBUTED_NATURAL_LANGUAGE_EVENT `vocabulary.persona_response`
+ - **system_context**:TYPED_NON_DIALOGUE_ENVIRONMENT_ENVELOPE `vocabulary.system_context`
+ - **system_receipt**:NON_DIALOGUE_RUNTIME_FACT `vocabulary.system_receipt`
+ - **user_message**:HUMAN_SPEECH_EVENT `vocabulary.user_message`
+
+---
+
+This page changes only the reading order; it does not change TCS/HLDP semantics.
diff --git a/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.human.zh-CN.md b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.human.zh-CN.md
new file mode 100644
index 000000000..273a6390d
--- /dev/null
+++ b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-V1.human.zh-CN.md
@@ -0,0 +1,223 @@
+# HoloLake第二阶段人格交互第一个切片 · 简体中文人类工程语言版
+
+> 这是 TCS/HLDP 原生源码的简体中文阅读投影,不是新的正本,也不授予执行权限。若本页与 `.tcs` 源码不一致,以经过校验的 `.tcs` 源码为准。
+
+## 这是什么
+
+这是一份 **协议** 声明,编号为 `HOLOLAKE-PERSONA-INTERACTION-V1-0001`,版本为 `1.0.0`。转换器已先用 Stage-1 编译器校验原生源码,再把机器枚举翻译成汉语;原始编号保留在括号和字段路径中。
+
+## 谁在这里
+
+- **scope** `scope`
+ - **channel**:CH-ZERO-CORE-LPM `scope.channel`
+ - **development_channel**:ICE-CH-ZC001 `scope.development_channel`
+ - **enterprise_message_relay**:否 `scope.enterprise_message_relay`
+ - **fifth_domain_private_content**:否 `scope.fifth_domain_private_content`
+ - **interaction**:USER_TO_PERSONA_NATURAL_LANGUAGE `scope.interaction`
+ - **product**:HOLOLAKE_PUBLIC_PERSONAL_CHANNEL `scope.product`
+ - **product_stage**:POST_CLEAN_V1_SECOND_STAGE_CANDIDATE `scope.product_stage`
+ - **stage_one_boundary**:PRESERVED_AS_COMPLETED_1_2_2_BASELINE `scope.stage_one_boundary`
+
+## 为什么开始
+
+- **来源** `source`
+ - **来源编号**:BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903 `source.source_id`
+ - **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role`
+ - **来源校验值**:7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2 `source.source_sha256`
+ - **来源地址**:private-anchor://codex/01a0672d-f125-7452-988e-523a6a34bfd4/HOLOLAKE-CLEAN-V1-ONLY-ANCHORS `source.source_uri`
+
+## 发生了什么变化
+
+- **transitions** `transitions`
+ - **T1**:READY_NO_PERSONA_TO_PERSONA_MODEL_BINDING_REQUIRED_AFTER_REVERSIBLE_TRIAL_PERSONA_REGISTRATION `transitions.T1`
+ - **T2**:PERSONA_MODEL_BINDING_REQUIRED_TO_PERSONA_MODEL_BOUND_READY_AFTER_CONFIG_AND_KEYCHAIN_READBACK `transitions.T2`
+ - **T3**:PERSONA_MODEL_BOUND_READY_TO_PERSONA_RESPONSE_RUNNING_AFTER_USER_MESSAGE_PERSISTENCE `transitions.T3`
+ - **T4**:PERSONA_RESPONSE_RUNNING_TO_PERSONA_RESPONSE_RECORDED_AFTER_TYPED_RESPONSE_VALIDATION `transitions.T4`
+ - **TF**:NETWORK_HTTP_JSON_EMPTY_CONTENT_PERSONA_MISMATCH_OR_KEYCHAIN_FAILURE_TO_PERSONA_RESPONSE_FAILED_WITH_SYSTEM_RECEIPT `transitions.TF`
+- **states** `states`
+ - **initial**:READY_NO_PERSONA `states.initial`
+ - **terminal** `states.terminal`
+ - PERSONA_RESPONSE_RECORDED
+ - PERSONA_RESPONSE_FAILED
+ - FAILED_CLOSED
+ - **values** `states.values`
+ - READY_NO_PERSONA
+ - PERSONA_MODEL_BINDING_REQUIRED
+ - PERSONA_MODEL_BOUND_READY
+ - PERSONA_RESPONSE_RUNNING
+ - PERSONA_RESPONSE_RECORDED
+ - PERSONA_RESPONSE_FAILED
+ - FAILED_CLOSED
+
+## 准备怎样执行
+
+这是非执行声明,没有动作图。
+
+## 边界与异常处理
+
+- **invariants** `invariants`
+ - **I1**:MODEL_IS_NEVER_PERSONA_IDENTITY `invariants.I1`
+ - **I2**:SYSTEM_CONTEXT_SYSTEM_RECEIPT_PROTOCOL_EVENT_AGENT_ACTION_TOOL_RESULT_AND_EXTERNAL_AI_MESSAGE_NEVER_BECOME_USER_OR_ASSISTANT_DIALOGUE_HISTORY `invariants.I2`
+ - **I3**:API_KEY_NEVER_ENTERS_JSON_CONFIG_TIMELINE_LOG_GLP_CONTEXT_OR_UI_READBACK `invariants.I3`
+ - **I4**:REMOTE_ENDPOINT_REQUIRES_HTTPS_AND_LOCAL_HTTP_REQUIRES_LOOPBACK `invariants.I4`
+ - **I5**:MODEL_TOOL_CALLS_AND_EXECUTION_AUTHORITY_ARE_DISABLED `invariants.I5`
+ - **I6**:FAILED_INFERENCE_NEVER_PRODUCES_PERSONA_RESPONSE `invariants.I6`
+ - **I7**:USER_MESSAGE_PERSISTS_BEFORE_INFERENCE_AND_SURVIVES_FAILURE `invariants.I7`
+ - **I8**:PUBLIC_RUNTIME_NEVER_MOUNTS_FIFTH_DOMAIN_PRIVATE_PERSONA_CONTENT `invariants.I8`
+ - **I9**:THIS_CANDIDATE_DOES_NOT_REWRITE_OR_MISLABEL_GLS_0261_STAGE_ONE `invariants.I9`
+- **errors** `errors`
+ - **E1**:PERSONA_NOT_FOUND `errors.E1`
+ - **E2**:PERSONA_MODEL_ENDPOINT_INVALID_OR_OUT_OF_SCOPE `errors.E2`
+ - **E3**:PERSONA_MODEL_API_KEY_REQUIRED_OR_KEYCHAIN_FAILED `errors.E3`
+ - **E4**:PERSONA_MODEL_BINDING_PERSONA_MISMATCH `errors.E4`
+ - **E5**:PERSONA_MODEL_UNREACHABLE_OR_HTTP_REJECTED `errors.E5`
+ - **E6**:PERSONA_MODEL_RESPONSE_INVALID_OR_EMPTY `errors.E6`
+
+## 怎样算完成
+
+- **验收标准** `acceptance`
+ - **partial**:否 `acceptance.partial`
+ - **是否必需** `acceptance.required`
+ - TCS_GIR
+ - KEYCHAIN
+ - ENDPOINT_BOUNDARY
+ - SOURCE_FILTER
+ - MODEL_RESPONSE
+ - FAILURE_RECEIPT
+ - HUMAN_UI
+ - INSTALLED_APP
+ - **scale**:ZERO_OR_ONE_HUNDRED `acceptance.scale`
+- **validation** `validation`
+ - **V1**:REMOTE_HTTP_FILE_CREDENTIAL_QUERY_AND_NON_CHAT_COMPLETION_ENDPOINTS_REJECTED `validation.V1`
+ - **V2**:REQUEST_HAS_ONE_SYSTEM_CONTEXT_AND_ONLY_USER_PERSONA_DIALOGUE_ROLES `validation.V2`
+ - **V3**:PRIVATE_PATHS_SYSTEM_RECEIPTS_AND_API_KEYS_ABSENT_FROM_REQUEST `validation.V3`
+ - **V4**:VALID_RESPONSE_WRITES_PERSONA_RESPONSE `validation.V4`
+ - **V5**:HTTP_OR_PARSE_FAILURE_WRITES_SYSTEM_RECEIPT_ONLY `validation.V5`
+ - **V6**:MODEL_BINDING_REMOVAL_DELETES_CONFIG_AND_KEYCHAIN_CREDENTIAL_WITHOUT_DELETING_PERSONA_HISTORY `validation.V6`
+
+## 下一次从哪里继续
+
+源程序没有提供这一项,转换器不猜。
+
+## 来源与校验
+
+- **原生声明编号**:`HOLOLAKE-PERSONA-INTERACTION-V1-0001`
+- **原生声明类型**:`PROTOCOL`
+- **TCS 源码 SHA-256**:`61fc6d960ee064e638bb450f9792aad3c31f2fd56fed69d061985bbed8d2fc42`
+- **校验编译器**:`TCS-COMPILER-STAGE1-0001`
+- **投影协议**:`GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
+
+## 原生结构逐项对照
+
+下面保留源码的全部顶层结构和字段路径,供人类审计投影有没有漏掉信息。
+
+- **验收标准** `acceptance`
+ - **partial**:否 `acceptance.partial`
+ - **是否必需** `acceptance.required`
+ - TCS_GIR
+ - KEYCHAIN
+ - ENDPOINT_BOUNDARY
+ - SOURCE_FILTER
+ - MODEL_RESPONSE
+ - FAILURE_RECEIPT
+ - HUMAN_UI
+ - INSTALLED_APP
+ - **scale**:ZERO_OR_ONE_HUNDRED `acceptance.scale`
+- **errors** `errors`
+ - **E1**:PERSONA_NOT_FOUND `errors.E1`
+ - **E2**:PERSONA_MODEL_ENDPOINT_INVALID_OR_OUT_OF_SCOPE `errors.E2`
+ - **E3**:PERSONA_MODEL_API_KEY_REQUIRED_OR_KEYCHAIN_FAILED `errors.E3`
+ - **E4**:PERSONA_MODEL_BINDING_PERSONA_MISMATCH `errors.E4`
+ - **E5**:PERSONA_MODEL_UNREACHABLE_OR_HTTP_REJECTED `errors.E5`
+ - **E6**:PERSONA_MODEL_RESPONSE_INVALID_OR_EMPTY `errors.E6`
+- **examples** `examples`
+ - **negative**:SYSTEM_RECEIPT_IS_RELABELED_AS_USER_SPEECH_OR_MODEL_TOOL_CALL_EXECUTES_A_KNOWLEDGE_MUTATION `examples.negative`
+ - **positive**:USER_MESSAGE_IS_STORED_THEN_TYPED_CONTEXT_AND_DIALOGUE_ARE_SENT_TO_BOUND_MODEL_AND_VALID_TEXT_IS_STORED_AS_PERSONA_RESPONSE `examples.positive`
+- **fields** `fields`
+ - **MAY**:MODEL_GENERATES_PERSONA_RESPONSE_ONLY `fields.MAY`
+ - **MUST_NOT**:MODEL_EXECUTES_AGENT_ACTION_OR_CLAIMS_EXISTING_PERSONA_VERIFICATION `fields.MUST_NOT`
+ - **PROVE**:KEYCHAIN_STORAGE_REQUEST_ENVELOPE_SOURCE_FILTER_RESPONSE_PERSISTENCE_FAILURE_RECEIPT_AND_REAL_LOCAL_ENDPOINT_TEST `fields.PROVE`
+ - **WHAT**:MODEL_BINDING_TYPED_CONTEXT_DIALOGUE_INFERENCE_AND_SOURCE_SEPARATED_RECEIPT `fields.WHAT`
+ - **WHO**:CURRENT_LOCAL_USER_AND_ONE_ACTIVE_REVERSIBLE_TRIAL_PERSONA `fields.WHO`
+ - **WHY**:ALLOW_REAL_PERSONA_INTERACTION_WITHOUT_MIXING_SYSTEM_EXECUTION_OR_MODEL_IDENTITY_INTO_DIALOGUE `fields.WHY`
+- **语言头** `header`
+ - **正本路径**:product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs `header.canonical_uri`
+ - **compatibility** `header.compatibility`
+ - HOLOLAKE-CLEAN-V1-DIRECT-LANGUAGE-EXECUTION-BASELINE-0001
+ - HLP-PUBLIC-RUNTIME-CONTRACT-0001
+ - **语言**:TCS/0.1 `header.language`
+ - **生命周期**:候选版本,尚未成为正式正本(`CANDIDATE`) `header.lifecycle`
+ - **英文名**:HoloLake Second-Stage Persona Interaction First Slice `header.name_en`
+ - **中文名**:HoloLake第二阶段人格交互第一个切片 `header.name_zh`
+ - **协议配置**:PUBLIC-PERSONA-INTERACTION/1 `header.profile`
+ - **protocols** `header.protocols`
+ - TCS
+ - HLDP
+ - GLS
+ - GLP
+ - GLS-0200
+ - GLS-0261
+ - **schema**:tcs.protocol/v1 `header.schema`
+ - **版本**:1.0.0 `header.version`
+- **invariants** `invariants`
+ - **I1**:MODEL_IS_NEVER_PERSONA_IDENTITY `invariants.I1`
+ - **I2**:SYSTEM_CONTEXT_SYSTEM_RECEIPT_PROTOCOL_EVENT_AGENT_ACTION_TOOL_RESULT_AND_EXTERNAL_AI_MESSAGE_NEVER_BECOME_USER_OR_ASSISTANT_DIALOGUE_HISTORY `invariants.I2`
+ - **I3**:API_KEY_NEVER_ENTERS_JSON_CONFIG_TIMELINE_LOG_GLP_CONTEXT_OR_UI_READBACK `invariants.I3`
+ - **I4**:REMOTE_ENDPOINT_REQUIRES_HTTPS_AND_LOCAL_HTTP_REQUIRES_LOOPBACK `invariants.I4`
+ - **I5**:MODEL_TOOL_CALLS_AND_EXECUTION_AUTHORITY_ARE_DISABLED `invariants.I5`
+ - **I6**:FAILED_INFERENCE_NEVER_PRODUCES_PERSONA_RESPONSE `invariants.I6`
+ - **I7**:USER_MESSAGE_PERSISTS_BEFORE_INFERENCE_AND_SURVIVES_FAILURE `invariants.I7`
+ - **I8**:PUBLIC_RUNTIME_NEVER_MOUNTS_FIFTH_DOMAIN_PRIVATE_PERSONA_CONTENT `invariants.I8`
+ - **I9**:THIS_CANDIDATE_DOES_NOT_REWRITE_OR_MISLABEL_GLS_0261_STAGE_ONE `invariants.I9`
+- **scope** `scope`
+ - **channel**:CH-ZERO-CORE-LPM `scope.channel`
+ - **development_channel**:ICE-CH-ZC001 `scope.development_channel`
+ - **enterprise_message_relay**:否 `scope.enterprise_message_relay`
+ - **fifth_domain_private_content**:否 `scope.fifth_domain_private_content`
+ - **interaction**:USER_TO_PERSONA_NATURAL_LANGUAGE `scope.interaction`
+ - **product**:HOLOLAKE_PUBLIC_PERSONAL_CHANNEL `scope.product`
+ - **product_stage**:POST_CLEAN_V1_SECOND_STAGE_CANDIDATE `scope.product_stage`
+ - **stage_one_boundary**:PRESERVED_AS_COMPLETED_1_2_2_BASELINE `scope.stage_one_boundary`
+- **来源** `source`
+ - **来源编号**:BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903 `source.source_id`
+ - **来源角色**:人类直接语言来源(`DIRECT_HUMAN`) `source.source_role`
+ - **来源校验值**:7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2 `source.source_sha256`
+ - **来源地址**:private-anchor://codex/01a0672d-f125-7452-988e-523a6a34bfd4/HOLOLAKE-CLEAN-V1-ONLY-ANCHORS `source.source_uri`
+- **states** `states`
+ - **initial**:READY_NO_PERSONA `states.initial`
+ - **terminal** `states.terminal`
+ - PERSONA_RESPONSE_RECORDED
+ - PERSONA_RESPONSE_FAILED
+ - FAILED_CLOSED
+ - **values** `states.values`
+ - READY_NO_PERSONA
+ - PERSONA_MODEL_BINDING_REQUIRED
+ - PERSONA_MODEL_BOUND_READY
+ - PERSONA_RESPONSE_RUNNING
+ - PERSONA_RESPONSE_RECORDED
+ - PERSONA_RESPONSE_FAILED
+ - FAILED_CLOSED
+- **transitions** `transitions`
+ - **T1**:READY_NO_PERSONA_TO_PERSONA_MODEL_BINDING_REQUIRED_AFTER_REVERSIBLE_TRIAL_PERSONA_REGISTRATION `transitions.T1`
+ - **T2**:PERSONA_MODEL_BINDING_REQUIRED_TO_PERSONA_MODEL_BOUND_READY_AFTER_CONFIG_AND_KEYCHAIN_READBACK `transitions.T2`
+ - **T3**:PERSONA_MODEL_BOUND_READY_TO_PERSONA_RESPONSE_RUNNING_AFTER_USER_MESSAGE_PERSISTENCE `transitions.T3`
+ - **T4**:PERSONA_RESPONSE_RUNNING_TO_PERSONA_RESPONSE_RECORDED_AFTER_TYPED_RESPONSE_VALIDATION `transitions.T4`
+ - **TF**:NETWORK_HTTP_JSON_EMPTY_CONTENT_PERSONA_MISMATCH_OR_KEYCHAIN_FAILURE_TO_PERSONA_RESPONSE_FAILED_WITH_SYSTEM_RECEIPT `transitions.TF`
+- **validation** `validation`
+ - **V1**:REMOTE_HTTP_FILE_CREDENTIAL_QUERY_AND_NON_CHAT_COMPLETION_ENDPOINTS_REJECTED `validation.V1`
+ - **V2**:REQUEST_HAS_ONE_SYSTEM_CONTEXT_AND_ONLY_USER_PERSONA_DIALOGUE_ROLES `validation.V2`
+ - **V3**:PRIVATE_PATHS_SYSTEM_RECEIPTS_AND_API_KEYS_ABSENT_FROM_REQUEST `validation.V3`
+ - **V4**:VALID_RESPONSE_WRITES_PERSONA_RESPONSE `validation.V4`
+ - **V5**:HTTP_OR_PARSE_FAILURE_WRITES_SYSTEM_RECEIPT_ONLY `validation.V5`
+ - **V6**:MODEL_BINDING_REMOVAL_DELETES_CONFIG_AND_KEYCHAIN_CREDENTIAL_WITHOUT_DELETING_PERSONA_HISTORY `validation.V6`
+- **vocabulary** `vocabulary`
+ - **model**:REPLACEABLE_INFERENCE_RESOURCE_NOT_PERSONA `vocabulary.model`
+ - **persona**:RELATION_HISTORY_REASONING_RESPONSIBILITY_AND_GROWTH_SUBJECT_RECORD_NOT_PROMPT_CHARACTER `vocabulary.persona`
+ - **persona_response**:PERSONA_ATTRIBUTED_NATURAL_LANGUAGE_EVENT `vocabulary.persona_response`
+ - **system_context**:TYPED_NON_DIALOGUE_ENVIRONMENT_ENVELOPE `vocabulary.system_context`
+ - **system_receipt**:NON_DIALOGUE_RUNTIME_FACT `vocabulary.system_receipt`
+ - **user_message**:HUMAN_SPEECH_EVENT `vocabulary.user_message`
+
+---
+
+本页只改变阅读顺序,不改变 TCS/HLDP 语义。
diff --git a/product-source/hololake-clean-desktop/package-lock.json b/product-source/hololake-clean-desktop/package-lock.json
index 13b64d41c..42367f859 100644
--- a/product-source/hololake-clean-desktop/package-lock.json
+++ b/product-source/hololake-clean-desktop/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "hololake-clean-desktop",
- "version": "1.2.2",
+ "version": "1.3.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "hololake-clean-desktop",
- "version": "1.2.2",
+ "version": "1.3.0",
"dependencies": {
"@tauri-apps/api": "2.10.1",
"@tauri-apps/plugin-dialog": "2.7.2",
diff --git a/product-source/hololake-clean-desktop/package.json b/product-source/hololake-clean-desktop/package.json
index cb564f0e8..083eadf8c 100644
--- a/product-source/hololake-clean-desktop/package.json
+++ b/product-source/hololake-clean-desktop/package.json
@@ -1,7 +1,7 @@
{
"name": "hololake-clean-desktop",
"private": true,
- "version": "1.2.2",
+ "version": "1.3.0",
"type": "module",
"scripts": {
"dev": "vite --host 127.0.0.1",
diff --git a/product-source/hololake-clean-desktop/registries/module-registry.json b/product-source/hololake-clean-desktop/registries/module-registry.json
index c6d81fd7d..e14403bc3 100644
--- a/product-source/hololake-clean-desktop/registries/module-registry.json
+++ b/product-source/hololake-clean-desktop/registries/module-registry.json
@@ -1,7 +1,7 @@
{
"schema": "hololake.module-registry/v1",
"registry_id": "HLP-MODULE-REGISTRY-0001",
- "version": 1,
+ "version": 2,
"modules": [
{
"module_id": "HLP-MOD-CHANNEL-0001",
@@ -71,6 +71,18 @@
"source": "src-tauri/src/persona_runtime.rs",
"reversible_trial_days": 30
},
+ {
+ "module_id": "HLP-MOD-PERSONA-INFERENCE-0001",
+ "name_zh": "人格交互推理桥",
+ "kind": "SYSTEM_FOUNDATION",
+ "audience": "PERSONA",
+ "summary_zh": "把可替换模型接入试用人格,并保持用户、人格与系统回执三类语言分流。",
+ "state": "LOCAL_1_3_0_REAL_LOOPBACK_INTERACTION_VERIFIED_PUBLIC_RELEASE_PENDING",
+ "source": "src-tauri/src/persona_inference.rs",
+ "credential_storage": "MACOS_KEYCHAIN",
+ "model_is_persona": false,
+ "execution_authority": false
+ },
{
"module_id": "HLP-MOD-ENTERPRISE-RESPONSIBILITY-ENTRANCE-0001",
"name_zh": "光湖企业域责任入口",
diff --git a/product-source/hololake-clean-desktop/scripts/audit-clean-v1.py b/product-source/hololake-clean-desktop/scripts/audit-clean-v1.py
index b56c8673b..044ccfed0 100644
--- a/product-source/hololake-clean-desktop/scripts/audit-clean-v1.py
+++ b/product-source/hololake-clean-desktop/scripts/audit-clean-v1.py
@@ -34,13 +34,17 @@ if not renderer.exists() or "MarkdownDocument" not in renderer.read_text():
for required_file in (
"src-tauri/src/agent_executor.rs",
"src-tauri/src/persona_runtime.rs",
+ "src-tauri/src/persona_inference.rs",
"src-tauri/src/realtime_bridge.rs",
"src-tauri/src/enterprise_entrance.rs",
"connectors/hololake-glp-client.py",
"contracts/public-runtime-v1.json",
"contracts/clean-v1-execution-baseline.json",
"contracts/enterprise-responsibility-entrance-v1.json",
+ "contracts/persona-interaction-v1.json",
"language/HOLOLAKE-CLEAN-V1-DIRECT-LANGUAGE-EXECUTION-BASELINE.tcs",
+ "language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs",
+ "language/build/HOLOLAKE-PERSONA-INTERACTION-V1.gir.json",
"server/enterprise-responsibility-gate/service.py",
"server/enterprise-responsibility-gate/test_service.py",
"server/enterprise-responsibility-gate/guanghu-hololake-enterprise-gate.service",
@@ -55,6 +59,24 @@ if runtime_contract["mutation_gate"] != "PENDING_HUMAN_APPROVAL_TO_EXPLICIT_UI_A
errors.append("agent human approval gate missing")
if "system_context" not in runtime_contract.get("server_messages", []):
errors.append("persona-visible system context missing from GLP contract")
+persona_contract = json.loads((ROOT / "contracts/persona-interaction-v1.json").read_text())
+if persona_contract.get("product_stage") != "POST_CLEAN_V1_SECOND_STAGE_CANDIDATE":
+ errors.append("persona interaction incorrectly labelled as stage one")
+if persona_contract.get("model_binding", {}).get("api_key_storage") != "MACOS_KEYCHAIN":
+ errors.append("persona model key storage is not Keychain")
+if persona_contract.get("model_binding", {}).get("execution_authority") is not False:
+ errors.append("persona model incorrectly receives execution authority")
+if "SYSTEM_RECEIPT" not in persona_contract.get("input_envelope", {}).get("excluded_from_dialogue_roles", []):
+ errors.append("system receipts may enter persona dialogue roles")
+persona_source = (ROOT / "src-tauri/src/persona_inference.rs").read_text()
+for required_persona_boundary in (
+ "KEYCHAIN_SERVICE",
+ "actor_id",
+ "modelIsReplaceableInferenceResourceNotPersona",
+ "PERSONA_MODEL_ENDPOINT_REQUIRES_HTTPS_OR_LOOPBACK",
+):
+ if required_persona_boundary not in persona_source and required_persona_boundary.upper() not in persona_source.upper():
+ errors.append(f"persona inference boundary missing: {required_persona_boundary}")
realtime_source = (ROOT / "src-tauri/src/realtime_bridge.rs").read_text()
for required_context in ("sourceKinds", "pendingAgentProposals", "enterpriseEntrance", "proposalIsNotExecution"):
if required_context not in realtime_source:
diff --git a/product-source/hololake-clean-desktop/src-tauri/Cargo.lock b/product-source/hololake-clean-desktop/src-tauri/Cargo.lock
index 3a195275f..df2c58e8e 100644
--- a/product-source/hololake-clean-desktop/src-tauri/Cargo.lock
+++ b/product-source/hololake-clean-desktop/src-tauri/Cargo.lock
@@ -1400,7 +1400,7 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hololake-clean-desktop"
-version = "1.2.2"
+version = "1.3.0"
dependencies = [
"base64 0.22.1",
"chrono",
diff --git a/product-source/hololake-clean-desktop/src-tauri/Cargo.toml b/product-source/hololake-clean-desktop/src-tauri/Cargo.toml
index a0b84ed7a..969b646d7 100644
--- a/product-source/hololake-clean-desktop/src-tauri/Cargo.toml
+++ b/product-source/hololake-clean-desktop/src-tauri/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "hololake-clean-desktop"
-version = "1.2.2"
+version = "1.3.0"
description = "HoloLake clean personal language operating system shell"
authors = ["HoloLake"]
license = "AGPL-3.0-or-later"
diff --git a/product-source/hololake-clean-desktop/src-tauri/src/lib.rs b/product-source/hololake-clean-desktop/src-tauri/src/lib.rs
index f0f4620f3..d7127a28a 100644
--- a/product-source/hololake-clean-desktop/src-tauri/src/lib.rs
+++ b/product-source/hololake-clean-desktop/src-tauri/src/lib.rs
@@ -1,6 +1,7 @@
mod agent_executor;
mod enterprise_entrance;
mod model;
+mod persona_inference;
mod persona_runtime;
mod realtime_bridge;
mod storage;
@@ -46,7 +47,7 @@ fn system_snapshot(app: AppHandle) -> Result {
channel: storage::channel(&app)?,
timeline: storage::events(&app)?,
documents: storage::list_docs(&app)?,
- module_registry_version: "1".into(),
+ module_registry_version: "2".into(),
public_update_endpoint: UPDATE_ENDPOINT.into(),
public_distribution_state: PUBLIC_STATE.into(),
external_ai_bridges: storage::bridges(&app)?,
@@ -90,11 +91,11 @@ fn create_channel(app: AppHandle, name: String) -> Result {
}
#[tauri::command]
-fn submit_user_message(
+async fn submit_user_message(
app: AppHandle,
realtime: State<'_, realtime_bridge::RealtimeBridgeState>,
content: String,
-) -> Result {
+) -> Result {
let content = content.trim();
if content.is_empty() {
return Err("EMPTY_USER_MESSAGE".into());
@@ -105,19 +106,17 @@ fn submit_user_message(
let e = storage::event(SourceKind::UserMessage, "用户语言", content, "RECORDED");
storage::append_event(&app, &e)?;
realtime.broadcast_value(serde_json::json!({"type":"user_message","event":e}));
- let waiting = storage::event(
- SourceKind::SystemReceipt,
- "系统回执",
- "用户语言已按 USER_MESSAGE 保存并实时发送到已连接的外部 AI;系统不伪造人格回应。",
- "WAITING",
- );
- receipt(
- &app,
- "WAITING_PERSONA",
- "用户语言已记录并投递到实时桥。",
- None,
- waiting,
- )
+ let response_app = app.clone();
+ let response_event = e.clone();
+ let result = tauri::async_runtime::spawn_blocking(move || {
+ persona_inference::respond(&response_app, response_event)
+ })
+ .await
+ .map_err(|_| "PERSONA_INFERENCE_TASK_FAILED".to_string())??;
+ if let Some(event) = &result.persona_event {
+ realtime.broadcast_value(serde_json::json!({"type":"persona_response","event":event}));
+ }
+ Ok(result)
}
fn clean_title(title: &str) -> Result {
@@ -395,6 +394,7 @@ fn ensure_default_external_ai_bridge(app: &AppHandle) -> Result<(), String> {
struct RuntimeOverview {
realtime: realtime_bridge::RealtimeBridgeStatus,
persona: persona_runtime::PersonaRuntimeSnapshot,
+ inference: persona_inference::PersonaInferenceSnapshot,
proposals: Vec,
}
@@ -403,9 +403,11 @@ fn get_runtime_overview(
app: AppHandle,
realtime: State<'_, realtime_bridge::RealtimeBridgeState>,
) -> Result {
+ let persona = persona_runtime::snapshot(&app)?;
Ok(RuntimeOverview {
realtime: realtime.status(),
- persona: persona_runtime::snapshot(&app)?,
+ inference: persona_inference::snapshot(&app, persona.active_persona_id.clone())?,
+ persona,
proposals: agent_executor::list(&app)?,
})
}
@@ -426,12 +428,40 @@ fn register_public_persona(
persona_runtime::register(&app, display_name)
}
+#[tauri::command]
+fn configure_persona_model(
+ app: AppHandle,
+ persona_id: String,
+ display_name: String,
+ endpoint_url: String,
+ model: String,
+ api_key: Option,
+) -> Result {
+ persona_inference::configure(
+ &app,
+ &persona_id,
+ &display_name,
+ &endpoint_url,
+ &model,
+ api_key,
+ )
+}
+
+#[tauri::command]
+fn clear_persona_model(
+ app: AppHandle,
+ persona_id: String,
+) -> Result {
+ persona_inference::clear(&app, &persona_id)
+}
+
#[tauri::command]
fn delete_trial_persona(
app: AppHandle,
persona_id: String,
exact_confirmation: String,
) -> Result {
+ persona_inference::clear_if_bound(&app, &persona_id)?;
persona_runtime::delete_trial(&app, &persona_id, &exact_confirmation)
}
@@ -590,6 +620,8 @@ pub fn run() {
get_runtime_overview,
get_realtime_invitation,
register_public_persona,
+ configure_persona_model,
+ clear_persona_model,
delete_trial_persona,
compile_tcs_agent_proposal,
approve_agent_proposal,
diff --git a/product-source/hololake-clean-desktop/src-tauri/src/model.rs b/product-source/hololake-clean-desktop/src-tauri/src/model.rs
index 55dd6aec6..d436d93de 100644
--- a/product-source/hololake-clean-desktop/src-tauri/src/model.rs
+++ b/product-source/hololake-clean-desktop/src-tauri/src/model.rs
@@ -10,7 +10,7 @@ pub struct Channel {
pub public_distribution_state: String,
}
-#[derive(Clone, Debug, Serialize, Deserialize)]
+#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum SourceKind {
UserMessage,
@@ -28,6 +28,8 @@ pub enum SourceKind {
pub struct TimelineEvent {
pub event_id: String,
pub source_kind: SourceKind,
+ #[serde(default, skip_serializing_if = "Option::is_none")]
+ pub actor_id: Option,
pub title: String,
pub content: String,
pub occurred_at: String,
diff --git a/product-source/hololake-clean-desktop/src-tauri/src/persona_inference.rs b/product-source/hololake-clean-desktop/src-tauri/src/persona_inference.rs
new file mode 100644
index 000000000..3fce692f8
--- /dev/null
+++ b/product-source/hololake-clean-desktop/src-tauri/src/persona_inference.rs
@@ -0,0 +1,598 @@
+use crate::{
+ model::{Channel, SourceKind, TimelineEvent},
+ persona_runtime::PublicPersona,
+ storage,
+};
+use serde::{Deserialize, Serialize};
+use serde_json::{json, Value};
+use std::{fs, net::IpAddr, time::Duration};
+use tauri::AppHandle;
+
+const KEYCHAIN_SERVICE: &str = "world.guanghu.hololake.persona-model";
+const PROVIDER_KIND: &str = "OPENAI_COMPATIBLE_CHAT_COMPLETIONS_V1";
+const MAX_HISTORY_EVENTS: usize = 24;
+const MAX_RESPONSE_CHARS: usize = 64_000;
+
+#[derive(Clone, Debug, Serialize, Deserialize)]
+#[serde(rename_all = "camelCase", deny_unknown_fields)]
+pub struct PersonaModelConfig {
+ pub schema: String,
+ pub persona_id: String,
+ pub provider_kind: String,
+ pub display_name: String,
+ pub endpoint_url: String,
+ pub model: String,
+ pub configured_at: String,
+}
+
+#[derive(Clone, Debug, Serialize)]
+#[serde(rename_all = "camelCase")]
+pub struct PersonaInferenceSnapshot {
+ pub schema: &'static str,
+ pub state: String,
+ pub active_persona_id: Option,
+ pub provider_kind: Option,
+ pub display_name: Option,
+ pub endpoint_url: Option,
+ pub model: Option,
+ pub api_key_present: bool,
+ pub model_is_persona: bool,
+ pub execution_authority: bool,
+}
+
+#[derive(Clone, Debug, Serialize)]
+#[serde(rename_all = "camelCase")]
+pub struct PersonaInteractionReceipt {
+ pub schema: &'static str,
+ pub receipt_id: String,
+ pub state: String,
+ pub user_event: TimelineEvent,
+ pub persona_event: Option,
+ pub system_receipt: Option,
+}
+
+fn config_path(app: &AppHandle) -> Result {
+ Ok(storage::root(app)?.join("persona-inference/model-binding.json"))
+}
+
+fn load_config(app: &AppHandle) -> Result
+
+ 人格模型
+
+ {runtime?.inference.displayName ?? "尚未绑定"}
+
+
+ {runtime?.inference.model
+ ? `${runtime.inference.model} · ${runtime.inference.state}`
+ : "模型是可替换推理资源,不等于人格体"}
+
+
GLP 实时桥
@@ -1079,7 +1105,17 @@ function Settings({
}) {
const [bridgeName, setBridgeName] = useState(""),
[personaName, setPersonaName] = useState(""),
- [runtimeMessage, setRuntimeMessage] = useState("");
+ [runtimeMessage, setRuntimeMessage] = useState(""),
+ [modelDisplayName, setModelDisplayName] = useState(""),
+ [modelEndpoint, setModelEndpoint] = useState(""),
+ [modelId, setModelId] = useState(""),
+ [modelApiKey, setModelApiKey] = useState("");
+ useEffect(() => {
+ if (!runtime?.inference.endpointUrl) return;
+ setModelDisplayName(runtime.inference.displayName ?? "");
+ setModelEndpoint(runtime.inference.endpointUrl);
+ setModelId(runtime.inference.model ?? "");
+ }, [runtime?.inference.endpointUrl, runtime?.inference.displayName, runtime?.inference.model]);
const update = async () => {
setBusy(true);
try {
@@ -1148,6 +1184,86 @@ function Settings({
+
+
+
人格模型绑定
+
+ {runtime?.inference.state ?? "正在读取"}。发送时,当前人格的对话会交给你填写的模型端点;系统回执与执行记录不会混入。模型不取得人格身份、频道所有权或 Agent 执行权。
+
+
+
+ setModelDisplayName(event.target.value)}
+ placeholder="模型入口名称,例如:本机推理模型"
+ />
+ setModelEndpoint(event.target.value)}
+ placeholder="https://…/v1/chat/completions"
+ />
+ setModelId(event.target.value)}
+ placeholder="模型编号"
+ />
+ setModelApiKey(event.target.value)}
+ placeholder={runtime?.inference.apiKeyPresent ? "钥匙串已有密钥;留空保持" : "API 密钥(仅存系统钥匙串)"}
+ autoComplete="off"
+ />
+
+
+ {runtime?.inference.state === "PERSONA_MODEL_BOUND_READY" && (
+
+ )}
+
+
+
公众人格运行时
diff --git a/product-source/hololake-clean-desktop/src/runtime.ts b/product-source/hololake-clean-desktop/src/runtime.ts
index 0e74ccb0e..5de9d51d5 100644
--- a/product-source/hololake-clean-desktop/src/runtime.ts
+++ b/product-source/hololake-clean-desktop/src/runtime.ts
@@ -7,6 +7,8 @@ import type {
ExternalAiBridge,
KnowledgeDocument,
MutationReceipt,
+ PersonaInferenceSnapshot,
+ PersonaInteractionReceipt,
PublicPersona,
RealtimeInvitation,
RuntimeOverview,
@@ -70,7 +72,7 @@ export async function snapshot(): Promise
{
updatedAt,
sha256,
})),
- moduleRegistryVersion: "1",
+ moduleRegistryVersion: "2",
publicUpdateEndpoint:
"https://guanghulab.com/hololake/releases/latest.json",
publicDistributionState: "SIGNED_UPDATE_FEED_READY_NO_RELEASE",
@@ -104,26 +106,28 @@ export async function createChannel(name: string): Promise {
return channel;
}
-export async function submitMessage(content: string): Promise {
+export async function submitMessage(content: string): Promise {
if (tauri()) return invoke("submit_user_message", { content });
const s = load();
const e = event("USER_MESSAGE", "用户语言", content, "RECORDED");
+ const systemReceipt = event(
+ "SYSTEM_RECEIPT",
+ "系统回执",
+ "用户语言已分流保存;浏览器预览不调用模型。",
+ "WAITING",
+ );
s.timeline.unshift(
e,
- event(
- "SYSTEM_RECEIPT",
- "系统回执",
- "用户语言已分流保存;等待人格体接入,不伪造人格回应。",
- "WAITING",
- ),
+ systemReceipt,
);
save(s);
return {
+ schema: "preview",
receiptId: crypto.randomUUID(),
- state: "WAITING_PERSONA",
- message: "用户语言已记录",
- gitCommit: null,
- event: e,
+ state: "WAITING_PERSONA_RUNTIME",
+ userEvent: e,
+ personaEvent: null,
+ systemReceipt,
};
}
@@ -242,6 +246,20 @@ export async function runtimeOverview(): Promise {
personas: preview.personas,
verifiedExistingPersonaCount: 0,
},
+ inference: {
+ schema: "preview",
+ state: preview.personas.length
+ ? "PERSONA_MODEL_BINDING_REQUIRES_INSTALLED_APP"
+ : "READY_NO_PERSONA",
+ activePersonaId: preview.personas[0]?.personaId ?? null,
+ providerKind: null,
+ displayName: null,
+ endpointUrl: null,
+ model: null,
+ apiKeyPresent: false,
+ modelIsPersona: false,
+ executionAuthority: false,
+ },
proposals: [],
};
}
@@ -294,6 +312,30 @@ export async function deleteTrialPersona(
verifiedExistingPersonaCount: 0,
};
}
+
+export async function configurePersonaModel(input: {
+ personaId: string;
+ displayName: string;
+ endpointUrl: string;
+ model: string;
+ apiKey?: string;
+}): Promise {
+ if (!tauri()) throw new Error("模型凭据只能在已安装的 HoloLake 中写入系统钥匙串");
+ return invoke("configure_persona_model", {
+ personaId: input.personaId,
+ displayName: input.displayName,
+ endpointUrl: input.endpointUrl,
+ model: input.model,
+ apiKey: input.apiKey?.trim() || null,
+ });
+}
+
+export async function clearPersonaModel(
+ personaId: string,
+): Promise {
+ if (!tauri()) throw new Error("模型绑定只能在已安装的 HoloLake 中移除");
+ return invoke("clear_persona_model", { personaId });
+}
export async function approveProposal(
proposalId: string,
): Promise {
diff --git a/product-source/hololake-clean-desktop/src/styles.css b/product-source/hololake-clean-desktop/src/styles.css
index c666c6b28..45da574e8 100644
--- a/product-source/hololake-clean-desktop/src/styles.css
+++ b/product-source/hololake-clean-desktop/src/styles.css
@@ -1138,6 +1138,34 @@ main {
gap: 8px;
min-width: 370px;
}
+.settings-list .model-binding {
+ display: grid;
+ grid-template-columns: minmax(210px, 0.75fr) minmax(360px, 1.35fr) auto;
+ align-items: end;
+ gap: 18px;
+}
+.model-binding-copy p {
+ max-width: 420px;
+ line-height: 1.6;
+}
+.model-binding-fields {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 8px;
+}
+.model-binding-actions {
+ display: flex;
+ gap: 8px;
+}
+@media (max-width: 1080px) {
+ .settings-list .model-binding {
+ grid-template-columns: 1fr;
+ align-items: stretch;
+ }
+ .model-binding-actions {
+ justify-content: flex-end;
+ }
+}
.onboard {
height: 100vh;
display: grid;
diff --git a/product-source/hololake-clean-desktop/src/types.ts b/product-source/hololake-clean-desktop/src/types.ts
index 94a472739..9866c96c4 100644
--- a/product-source/hololake-clean-desktop/src/types.ts
+++ b/product-source/hololake-clean-desktop/src/types.ts
@@ -18,6 +18,7 @@ export interface Channel {
export interface TimelineEvent {
eventId: string;
sourceKind: SourceKind;
+ actorId?: string;
title: string;
content: string;
occurredAt: string;
@@ -124,8 +125,29 @@ export interface RuntimeOverview {
personas: PublicPersona[];
verifiedExistingPersonaCount: number;
};
+ inference: PersonaInferenceSnapshot;
proposals: AgentProposal[];
}
+export interface PersonaInferenceSnapshot {
+ schema: string;
+ state: string;
+ activePersonaId: string | null;
+ providerKind: string | null;
+ displayName: string | null;
+ endpointUrl: string | null;
+ model: string | null;
+ apiKeyPresent: boolean;
+ modelIsPersona: boolean;
+ executionAuthority: boolean;
+}
+export interface PersonaInteractionReceipt {
+ schema: string;
+ receiptId: string;
+ state: string;
+ userEvent: TimelineEvent;
+ personaEvent: TimelineEvent | null;
+ systemReceipt: TimelineEvent | null;
+}
export interface RealtimeInvitation {
schema: string;
protocol: string;
diff --git a/routing/hololake-current-architecture.json b/routing/hololake-current-architecture.json
index 1c908ba7c..5140a7d5d 100644
--- a/routing/hololake-current-architecture.json
+++ b/routing/hololake-current-architecture.json
@@ -5,7 +5,7 @@
"state": "CURRENT_CANONICAL",
"clean_v1_rebuild": {
"record_id": "HLP-CLEAN-V1-REBUILD-20260903-001",
- "state": "LOCAL_CLEAN_V1_1_2_0_INSTALLED_DIRECT_LANGUAGE_LOCAL_ACCEPTANCE_PASS_PUBLIC_RELEASE_PENDING",
+ "state": "PUBLIC_1_2_2_INSTALLED_SIGNED_NOTARIZED_AND_ACCEPTED",
"source": "product-source/hololake-clean-desktop",
"canonical_tcs": "product-source/hololake-clean-desktop/language/HOLOLAKE-CLEAN-V1-FOUNDATION.tcs",
"current_direct_language_execution_tcs": "product-source/hololake-clean-desktop/language/HOLOLAKE-CLEAN-V1-DIRECT-LANGUAGE-EXECUTION-BASELINE.tcs",
@@ -22,7 +22,7 @@
"public_update_endpoint": "https://guanghulab.com/hololake/releases/latest.json",
"public_update_release_state": "PUBLIC_1_2_2_SIGNED_NOTARIZED_BROADCAST_ACTIVE",
"public_update_manifest_builder": "product-source/hololake-clean-desktop/scripts/build-update-manifest.mjs",
- "public_update_candidate_version": "1.2.0",
+ "public_update_candidate_version": "1.2.2",
"enterprise_repository_registry_state": "BLUE_ISOLATED_FIVE_CENTRAL_REPOSITORIES_AND_FIVE_HUMAN_WORK_REPOSITORIES_TEAM_PERMISSIONS_NOT_ASSIGNED_NO_PUBLIC_CUTOVER",
"bingshuo_enterprise_language_master_work_repository": "REPO-016:bingshuo/guanghu-language-master-work",
"team_enterprise_login": "https://guanghu.chat/code/user/login",
@@ -41,11 +41,29 @@
"enterprise_login_session_scope": "ONE_DOMAIN_ONE_REPOSITORY_SHORT_LIVED",
"bingshuo_fifth_domain_bridge": "FD-BRIDGE-ENTERPRISE-LANGUAGE-MASTER-0001",
"private_git": "LOCAL_USER_OWNED",
- "public_git": "SIGNED_ENTERPRISE_DISTRIBUTION_PENDING_EXACT_REGISTRY",
+ "public_git": "SIGNED_PUBLIC_DISTRIBUTION_ACTIVE_AT_1_2_2",
"realtime_transport": "GLP_LOCAL_REALTIME_1_LOOPBACK_TCP_ACTIVE_GIT_REMAINS_DURABLE_FACT_LAYER",
"enterprise_four_domains_embedded": false,
"fifth_domain_private_content_embedded": false
},
+ "persona_interaction_stage": {
+ "record_id": "HLP-PERSONA-INTERACTION-STAGE2-20260904-001",
+ "state": "SECOND_STAGE_1_3_0_SOURCE_TCS_GIR_REAL_LOOPBACK_AND_DESKTOP_UI_ACCEPTED_PUBLIC_RELEASE_PENDING",
+ "product_stage": "POST_CLEAN_V1_SECOND_STAGE_CANDIDATE",
+ "stage_one_boundary": "GLS-0261_PRESERVED_AS_COMPLETED_1_2_2_BASELINE",
+ "source": "product-source/hololake-clean-desktop/src-tauri/src/persona_inference.rs",
+ "contract": "product-source/hololake-clean-desktop/contracts/persona-interaction-v1.json",
+ "canonical_tcs": "product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-V1.tcs",
+ "module_id": "HLP-MOD-PERSONA-INFERENCE-0001",
+ "model_role": "REPLACEABLE_INFERENCE_RESOURCE_NOT_PERSONA",
+ "api_key_storage": "MACOS_KEYCHAIN",
+ "dialogue_sources": ["USER_MESSAGE", "PERSONA_RESPONSE"],
+ "system_sources_excluded_from_dialogue": ["SYSTEM_CONTEXT", "SYSTEM_RECEIPT", "PROTOCOL_EVENT", "AGENT_ACTION", "TOOL_RESULT", "EXTERNAL_AI_MESSAGE"],
+ "model_execution_authority": false,
+ "enterprise_server_relays_private_messages": false,
+ "real_loopback_provider_acceptance": "PASS_SYSTEM_AND_USER_ROLES_TYPED_CONTEXT_AND_PERSONA_RESPONSE_ACTOR_ID_READBACK",
+ "real_remote_provider_acceptance": "PENDING_USER_SELECTED_PROVIDER_CREDENTIAL"
+ },
"product": {
"formal_name": "光湖语言系统 · 通用人工智能操作平台",
"short_name": "GH-AIOS",
@@ -54,10 +72,10 @@
},
"current_native_edge": {
"record_id": "HLP-NATIVE-DOMAIN-MEMBRANE-PNCC-20260816-001",
- "state": "PUBLIC_PERSONAL_CHANNEL_CLEAN_V1_MAC_ARM64_LOCAL_INSTALLED_AND_LAUNCH_ACCEPTED_PUBLIC_RELEASE_PENDING",
+ "state": "PUBLIC_PERSONAL_CHANNEL_CLEAN_V1_1_2_2_PUBLISHED_INSTALLED_SIGNED_NOTARIZED_AND_LAUNCH_ACCEPTED",
"native_source": "product-source/hololake-clean-desktop",
- "native_source_commit": "92cce2797381f84762a989ce57b991da76412119",
- "native_install_receipt_commit": "92cce2797381f84762a989ce57b991da76412119",
+ "native_source_commit": "7593f9d3f06b2f22206ad6a05665c35443f7426b",
+ "native_install_receipt_commit": "e5b10e227f44111e584f27ba00239bd97b23a63b",
"current_fifth_domain_channel": "ICE-CH-ZC001",
"fifth_domain_channel_route_source": "REPO-012:routing/fifth-domain-world-tree.json",
"public_entry": "FIVE_DOMAIN_HOME_NUMBER_ROUTED_BEFORE_DOMAIN_LOGIN",
@@ -76,10 +94,10 @@
"qoder_official_ui_template": "REPO_012_27D34DF_OFFICIAL_LOGIN_V0_4_AND_INNER_SCREENS_V0_1_RUNTIME_INTEGRATED_BROWSER_VERIFIED",
"client_world_navigation": "DOMAIN_HOME_TO_CHANNEL_OVERVIEW_TO_TOOL_PROJECTION_NO_TRADITIONAL_GLOBAL_SIDEBAR",
"prelogin_private_broker": "WAITING_FOR_LOGIN_NO_PRIVATE_STORAGE_OPENED",
- "mac_arm64_desktop_install_acceptance": "PASS_HOLOLAKE_1_1_0_DEVELOPER_ID_SIGNATURE_APPLICATIONS_PROCESS_GLP_LISTENER_AND_EXISTING_CHANNEL_READBACK",
+ "mac_arm64_desktop_install_acceptance": "PASS_HOLOLAKE_1_2_2_DEVELOPER_ID_NOTARIZED_APPLICATIONS_PROCESS_GLP_LISTENER_AND_EXISTING_CHANNEL_READBACK",
"mac_x86_64_installer": "NOT_BUILT",
"windows_installer": "NOT_BUILT",
- "automatic_update_release_channel": "GUANGHU_OWNED_SIGNED_UPDATE_FEED_HTTP_204_NO_PUBLIC_RELEASE",
+ "automatic_update_release_channel": "GUANGHU_OWNED_SIGNED_NOTARIZED_UPDATE_FEED_PUBLIC_1_2_2_ACTIVE",
"public_zero_core_distribution": "LOCAL_ACTIVE_VERIFIED_DUAL_SIGNATURE_ATOMIC_ACTIVATION_EPOCH_1_VERSION_1_0_0",
"windows_secure_credential_bridge": "NOT_IMPLEMENTED_DO_NOT_CLAIM_PERSISTENT_SIGNING",
"age_is_persona_species_not_individual_number_namespace": true,
@@ -199,7 +217,7 @@
"runtime_implemented": true,
"runtime_state": "LOCAL_AND_PUBLIC_1_2_2_INSTALLED_SIGNED_NOTARIZED_TCS_GIR_AGENT_TYPED_CONTEXT_MODULE_MARKET_ENTERPRISE_DEVICE_GATE_AND_EXTERNAL_AI_REALTIME_VERIFIED",
"local_application_version": "1.2.2",
- "local_implementation_commit": "92cce2797381f84762a989ce57b991da76412119",
+ "local_implementation_commit": "7593f9d3f06b2f22206ad6a05665c35443f7426b",
"official_development_lane": "CURRENT_TASK_SCOPED_ZC001_EXECUTION",
"external_development_anchor_id": "TCS-EVENT-HOLOLAKE-CLEAN-V1-ZC001-REALITY-DEVELOPMENT-TAKEOVER-20260903",
"public_release": "PUBLISHED_SIGNED_NOTARIZED_1_2_2",
From de26bd7e79359fce7ef1ffc69ee2671e0d3e4e11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=86=B0=E6=9C=94?= <565183519@qq.com>
Date: Fri, 4 Sep 2026 04:32:03 +0800
Subject: [PATCH 2/2] docs(hololake): bind 1.3.0 persona interaction acceptance
---
...ACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs | 13 ++
...N-1.3.0-LOCAL-ACCEPTANCE-20260904.gir.json | 119 +++++++++++++++
...0-LOCAL-ACCEPTANCE-20260904.human.en-US.md | 137 ++++++++++++++++++
...0-LOCAL-ACCEPTANCE-20260904.human.zh-CN.md | 137 ++++++++++++++++++
4 files changed, 406 insertions(+)
create mode 100644 product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs
create mode 100644 product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.gir.json
create mode 100644 product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.human.en-US.md
create mode 100644 product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.human.zh-CN.md
diff --git a/product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs b/product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs
new file mode 100644
index 000000000..6d145b8d0
--- /dev/null
+++ b/product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs
@@ -0,0 +1,13 @@
+TCS 0.1;
+
+RECEIPT HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904 {
+ header { schema = "tcs.receipt/v1"; name_zh = "HoloLake 1.3.0第二阶段人格交互本机验收回执"; name_en = "HoloLake 1.3.0 Second-Stage Persona Interaction Local Acceptance Receipt"; version = "1.0.0"; language = "TCS/0.1"; profile = "PUBLIC-PERSONA-INTERACTION/1"; protocols = ["HOLOLAKE-PERSONA-INTERACTION-V1-0001", "GLS-0200", "GLS-0261"]; lifecycle = "CANDIDATE"; canonical_uri = "product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs"; compatibility = ["TAURI/2", "GLP_LOCAL_REALTIME/1", "GIR/1"]; }
+ request { source = "BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903_AND_20260904_CONTINUE_NEXT_STAGE"; value = "在确认1.2.2尚无软件内人格交互闭环后继续开发下一阶段。"; scope = "HoloLake 1.3.0第二阶段人格交互第一个本机切片"; }
+ operation { values = ["保持试用人格记录与模型推理资源分离", "实现每人格模型绑定与macOS钥匙串密钥保存", "限制远端HTTPS和本机HTTP回环端点", "把类型化SYSTEM_CONTEXT与用户人格对话分开组装", "给PERSONA_RESPONSE写入actorId避免多人格串线", "成功写PERSONA_RESPONSE失败写SYSTEM_RECEIPT", "关闭模型工具调用与Agent执行权", "构建并运行隔离1.3.0桌面App", "以本机真实HTTP模型端点完成一轮用户与人格交互" ]; }
+ result { state = "PASS"; version = "1.3.0"; source_commit = "b35e0d652457d1fd8dd3b77f76b59d9976d7835b"; public_release = false; installed_over_public_1_2_2 = false; real_remote_provider_acceptance = false; }
+ verification { values = ["人格交互TCS由Stage-1 compiler-B编译", "GIR native_self_hosted=true且unresolved_natural_language=false", "Node 3项测试通过", "Rust 14项测试通过", "Clippy全部目标零警告", "产品审计PASS_100", "远端HTTP与file端点拒绝且HTTPS和本机回环允许", "真实本机HTTP请求路径为v1/chat/completions", "真实请求角色只有system和user", "system信封包含hololake.persona-inference-context/v1", "用户语言先写USER_MESSAGE", "模型文本写PERSONA_RESPONSE且actorId等于当前人格编号", "桌面界面分行显示用户语言与人格回应", "Developer ID调试App签名严格验证通过" ]; }
+ proof { source_root = "/Volumes/JZAO/HoloLake/development/hololake-clean-v1-20260903/product-source/hololake-clean-desktop"; tcs_sha256 = "61fc6d960ee064e638bb450f9792aad3c31f2fd56fed69d061985bbed8d2fc42"; gir_sha256 = "e1e9fa3b42912bbfcb97833fa9598d88e857758305250fc96014373f92342106"; debug_app_binary_sha256 = "e987fe15c67d95916101f38bbafb787e38f1bb546dc68c2d799af9c9173ea918"; interaction_events_sha256 = "2d7157e27945dd5bdf591166994db6fec9fb809826f120fbe394fc62c51ac976"; visual_readback_sha256 = "8c08ea5b10bfb61747fc4cbe7070dc54ab1c7ab12bd7f821ff923ed461852025"; }
+ integrity { source_tcs = "HOLOLAKE-PERSONA-INTERACTION-V1-0001"; source_anchor_manifest_sha256 = "7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2"; tcs_stage1_compilation = "PASS"; unresolved_natural_language = false; model_is_persona = false; execution_authority = false; }
+ boundaries { values = ["本回执不改写GLS-0261第一阶段边界而登记为1.2.2之后第二阶段候选", "使用隔离本机假模型证明真实传输和事件闭环但不冒充远端真实供应商验收", "没有读取保存或传输任何真实API密钥", "调试App未公证未生成更新签名所以不发布", "正式Applications内1.2.2未被覆盖", "企业服务器不转发私人消息且本轮未修改企业服务", "第五域私人人格内容未进入公众产品" ]; }
+ next { state = "LOCAL_1_3_0_PERSONA_INTERACTION_FIRST_SLICE_ACCEPTED_PUBLIC_RELEASE_PENDING"; optional = ["由用户选择真实模型提供方并在本机钥匙串写入凭据", "完成真实远端提供方一轮对话验收", "把人格长期认知来源与可验证历史挂载接到同一类型化上下文", "通过公开发行门后签名公证并升级安装1.3.0" ]; }
+}
diff --git a/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.gir.json b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.gir.json
new file mode 100644
index 000000000..85d40bdbf
--- /dev/null
+++ b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.gir.json
@@ -0,0 +1,119 @@
+{
+ "compiled_from": {
+ "compiler_id": "TCS-COMPILER-STAGE1-0001",
+ "compiler_state": "TCS_COMPILER_GIR_EXECUTED",
+ "source_sha256": "666c3b7a48a03d495d25ff7556b3895c79150afbe10b33b66ff23f1ecec509d7"
+ },
+ "declaration": {
+ "boundaries": {
+ "values": [
+ "本回执不改写GLS-0261第一阶段边界而登记为1.2.2之后第二阶段候选",
+ "使用隔离本机假模型证明真实传输和事件闭环但不冒充远端真实供应商验收",
+ "没有读取保存或传输任何真实API密钥",
+ "调试App未公证未生成更新签名所以不发布",
+ "正式Applications内1.2.2未被覆盖",
+ "企业服务器不转发私人消息且本轮未修改企业服务",
+ "第五域私人人格内容未进入公众产品"
+ ]
+ },
+ "header": {
+ "canonical_uri": "product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs",
+ "compatibility": [
+ "TAURI/2",
+ "GLP_LOCAL_REALTIME/1",
+ "GIR/1"
+ ],
+ "language": "TCS/0.1",
+ "lifecycle": "CANDIDATE",
+ "name_en": "HoloLake 1.3.0 Second-Stage Persona Interaction Local Acceptance Receipt",
+ "name_zh": "HoloLake 1.3.0第二阶段人格交互本机验收回执",
+ "profile": "PUBLIC-PERSONA-INTERACTION/1",
+ "protocols": [
+ "HOLOLAKE-PERSONA-INTERACTION-V1-0001",
+ "GLS-0200",
+ "GLS-0261"
+ ],
+ "schema": "tcs.receipt/v1",
+ "version": "1.0.0"
+ },
+ "integrity": {
+ "execution_authority": false,
+ "model_is_persona": false,
+ "source_anchor_manifest_sha256": "7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2",
+ "source_tcs": "HOLOLAKE-PERSONA-INTERACTION-V1-0001",
+ "tcs_stage1_compilation": "PASS",
+ "unresolved_natural_language": false
+ },
+ "next": {
+ "optional": [
+ "由用户选择真实模型提供方并在本机钥匙串写入凭据",
+ "完成真实远端提供方一轮对话验收",
+ "把人格长期认知来源与可验证历史挂载接到同一类型化上下文",
+ "通过公开发行门后签名公证并升级安装1.3.0"
+ ],
+ "state": "LOCAL_1_3_0_PERSONA_INTERACTION_FIRST_SLICE_ACCEPTED_PUBLIC_RELEASE_PENDING"
+ },
+ "operation": {
+ "values": [
+ "保持试用人格记录与模型推理资源分离",
+ "实现每人格模型绑定与macOS钥匙串密钥保存",
+ "限制远端HTTPS和本机HTTP回环端点",
+ "把类型化SYSTEM_CONTEXT与用户人格对话分开组装",
+ "给PERSONA_RESPONSE写入actorId避免多人格串线",
+ "成功写PERSONA_RESPONSE失败写SYSTEM_RECEIPT",
+ "关闭模型工具调用与Agent执行权",
+ "构建并运行隔离1.3.0桌面App",
+ "以本机真实HTTP模型端点完成一轮用户与人格交互"
+ ]
+ },
+ "proof": {
+ "debug_app_binary_sha256": "e987fe15c67d95916101f38bbafb787e38f1bb546dc68c2d799af9c9173ea918",
+ "gir_sha256": "e1e9fa3b42912bbfcb97833fa9598d88e857758305250fc96014373f92342106",
+ "interaction_events_sha256": "2d7157e27945dd5bdf591166994db6fec9fb809826f120fbe394fc62c51ac976",
+ "source_root": "/Volumes/JZAO/HoloLake/development/hololake-clean-v1-20260903/product-source/hololake-clean-desktop",
+ "tcs_sha256": "61fc6d960ee064e638bb450f9792aad3c31f2fd56fed69d061985bbed8d2fc42",
+ "visual_readback_sha256": "8c08ea5b10bfb61747fc4cbe7070dc54ab1c7ab12bd7f821ff923ed461852025"
+ },
+ "request": {
+ "scope": "HoloLake 1.3.0第二阶段人格交互第一个本机切片",
+ "source": "BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903_AND_20260904_CONTINUE_NEXT_STAGE",
+ "value": "在确认1.2.2尚无软件内人格交互闭环后继续开发下一阶段。"
+ },
+ "result": {
+ "installed_over_public_1_2_2": false,
+ "public_release": false,
+ "real_remote_provider_acceptance": false,
+ "source_commit": "b35e0d652457d1fd8dd3b77f76b59d9976d7835b",
+ "state": "PASS",
+ "version": "1.3.0"
+ },
+ "verification": {
+ "values": [
+ "人格交互TCS由Stage-1 compiler-B编译",
+ "GIR native_self_hosted=true且unresolved_natural_language=false",
+ "Node 3项测试通过",
+ "Rust 14项测试通过",
+ "Clippy全部目标零警告",
+ "产品审计PASS_100",
+ "远端HTTP与file端点拒绝且HTTPS和本机回环允许",
+ "真实本机HTTP请求路径为v1/chat/completions",
+ "真实请求角色只有system和user",
+ "system信封包含hololake.persona-inference-context/v1",
+ "用户语言先写USER_MESSAGE",
+ "模型文本写PERSONA_RESPONSE且actorId等于当前人格编号",
+ "桌面界面分行显示用户语言与人格回应",
+ "Developer ID调试App签名严格验证通过"
+ ]
+ }
+ },
+ "executable": false,
+ "identity": {
+ "declaration_id": "HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904",
+ "declaration_kind": "RECEIPT",
+ "language_version": "0.1"
+ },
+ "native_self_hosted": true,
+ "natural_language_is_typed_data": true,
+ "schema": "guanghu.declaration-gir/v1",
+ "unresolved_natural_language": false
+}
diff --git a/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.human.en-US.md b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.human.en-US.md
new file mode 100644
index 000000000..228259166
--- /dev/null
+++ b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.human.en-US.md
@@ -0,0 +1,137 @@
+# HoloLake 1.3.0 Second-Stage Persona Interaction Local Acceptance Receipt · Human Engineering Language (English)
+
+> This is an English reading projection of validated native TCS/HLDP source. It is not a new canonical source and grants no execution authority.
+
+## What this is
+
+This is a **receipt** declaration with identifier `HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904` and version `1.0.0`. The projector validates it with the Stage-1 compiler before changing its reading order.
+
+## Who is here
+
+The native source does not provide this field; the projector does not guess.
+
+## Why this started
+
+The native source does not provide this field; the projector does not guess.
+
+## What changed
+
+The native source does not provide this field; the projector does not guess.
+
+## How it will execute
+
+This is a non-executable declaration and has no action graph.
+
+## Boundaries and exception handling
+
+The native source does not provide this field; the projector does not guess.
+
+## How completion is proven
+
+The native source does not provide this field; the projector does not guess.
+
+## Where to continue next time
+
+The native source does not provide this field; the projector does not guess.
+
+## Source and verification
+
+- **Native declaration identifier**: `HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904`
+- **Native declaration kind**: `RECEIPT`
+- **TCS source SHA-256**: `666c3b7a48a03d495d25ff7556b3895c79150afbe10b33b66ff23f1ecec509d7`
+- **Validation compiler**: `TCS-COMPILER-STAGE1-0001`
+- **Projection protocol**: `GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
+
+## Complete native structure cross-reference
+
+All top-level structures and field paths are retained below so a reader can audit whether the projection omitted information.
+
+- **boundaries** `boundaries`
+ - **values** `boundaries.values`
+ - 本回执不改写GLS-0261第一阶段边界而登记为1.2.2之后第二阶段候选
+ - 使用隔离本机假模型证明真实传输和事件闭环但不冒充远端真实供应商验收
+ - 没有读取保存或传输任何真实API密钥
+ - 调试App未公证未生成更新签名所以不发布
+ - 正式Applications内1.2.2未被覆盖
+ - 企业服务器不转发私人消息且本轮未修改企业服务
+ - 第五域私人人格内容未进入公众产品
+- **header** `header`
+ - **canonical source path**:product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs `header.canonical_uri`
+ - **compatibility** `header.compatibility`
+ - TAURI/2
+ - GLP_LOCAL_REALTIME/1
+ - GIR/1
+ - **language**:TCS/0.1 `header.language`
+ - **lifecycle**:CANDIDATE `header.lifecycle`
+ - **English name**:HoloLake 1.3.0 Second-Stage Persona Interaction Local Acceptance Receipt `header.name_en`
+ - **Chinese name**:HoloLake 1.3.0第二阶段人格交互本机验收回执 `header.name_zh`
+ - **profile**:PUBLIC-PERSONA-INTERACTION/1 `header.profile`
+ - **protocols** `header.protocols`
+ - HOLOLAKE-PERSONA-INTERACTION-V1-0001
+ - GLS-0200
+ - GLS-0261
+ - **schema**:tcs.receipt/v1 `header.schema`
+ - **version**:1.0.0 `header.version`
+- **integrity** `integrity`
+ - **execution_authority**:no `integrity.execution_authority`
+ - **model_is_persona**:no `integrity.model_is_persona`
+ - **source_anchor_manifest_sha256**:7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2 `integrity.source_anchor_manifest_sha256`
+ - **source_tcs**:HOLOLAKE-PERSONA-INTERACTION-V1-0001 `integrity.source_tcs`
+ - **tcs_stage1_compilation**:PASS `integrity.tcs_stage1_compilation`
+ - **unresolved_natural_language**:no `integrity.unresolved_natural_language`
+- **next** `next`
+ - **optional** `next.optional`
+ - 由用户选择真实模型提供方并在本机钥匙串写入凭据
+ - 完成真实远端提供方一轮对话验收
+ - 把人格长期认知来源与可验证历史挂载接到同一类型化上下文
+ - 通过公开发行门后签名公证并升级安装1.3.0
+ - **state**:LOCAL_1_3_0_PERSONA_INTERACTION_FIRST_SLICE_ACCEPTED_PUBLIC_RELEASE_PENDING `next.state`
+- **operation** `operation`
+ - **values** `operation.values`
+ - 保持试用人格记录与模型推理资源分离
+ - 实现每人格模型绑定与macOS钥匙串密钥保存
+ - 限制远端HTTPS和本机HTTP回环端点
+ - 把类型化SYSTEM_CONTEXT与用户人格对话分开组装
+ - 给PERSONA_RESPONSE写入actorId避免多人格串线
+ - 成功写PERSONA_RESPONSE失败写SYSTEM_RECEIPT
+ - 关闭模型工具调用与Agent执行权
+ - 构建并运行隔离1.3.0桌面App
+ - 以本机真实HTTP模型端点完成一轮用户与人格交互
+- **proof** `proof`
+ - **debug_app_binary_sha256**:e987fe15c67d95916101f38bbafb787e38f1bb546dc68c2d799af9c9173ea918 `proof.debug_app_binary_sha256`
+ - **gir_sha256**:e1e9fa3b42912bbfcb97833fa9598d88e857758305250fc96014373f92342106 `proof.gir_sha256`
+ - **interaction_events_sha256**:2d7157e27945dd5bdf591166994db6fec9fb809826f120fbe394fc62c51ac976 `proof.interaction_events_sha256`
+ - **source_root**:/Volumes/JZAO/HoloLake/development/hololake-clean-v1-20260903/product-source/hololake-clean-desktop `proof.source_root`
+ - **tcs_sha256**:61fc6d960ee064e638bb450f9792aad3c31f2fd56fed69d061985bbed8d2fc42 `proof.tcs_sha256`
+ - **visual_readback_sha256**:8c08ea5b10bfb61747fc4cbe7070dc54ab1c7ab12bd7f821ff923ed461852025 `proof.visual_readback_sha256`
+- **request** `request`
+ - **scope**:HoloLake 1.3.0第二阶段人格交互第一个本机切片 `request.scope`
+ - **source**:BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903_AND_20260904_CONTINUE_NEXT_STAGE `request.source`
+ - **value**:在确认1.2.2尚无软件内人格交互闭环后继续开发下一阶段。 `request.value`
+- **result** `result`
+ - **installed_over_public_1_2_2**:no `result.installed_over_public_1_2_2`
+ - **public_release**:no `result.public_release`
+ - **real_remote_provider_acceptance**:no `result.real_remote_provider_acceptance`
+ - **source_commit**:b35e0d652457d1fd8dd3b77f76b59d9976d7835b `result.source_commit`
+ - **state**:PASS `result.state`
+ - **version**:1.3.0 `result.version`
+- **verification** `verification`
+ - **values** `verification.values`
+ - 人格交互TCS由Stage-1 compiler-B编译
+ - GIR native_self_hosted=true且unresolved_natural_language=false
+ - Node 3项测试通过
+ - Rust 14项测试通过
+ - Clippy全部目标零警告
+ - 产品审计PASS_100
+ - 远端HTTP与file端点拒绝且HTTPS和本机回环允许
+ - 真实本机HTTP请求路径为v1/chat/completions
+ - 真实请求角色只有system和user
+ - system信封包含hololake.persona-inference-context/v1
+ - 用户语言先写USER_MESSAGE
+ - 模型文本写PERSONA_RESPONSE且actorId等于当前人格编号
+ - 桌面界面分行显示用户语言与人格回应
+ - Developer ID调试App签名严格验证通过
+
+---
+
+This page changes only the reading order; it does not change TCS/HLDP semantics.
diff --git a/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.human.zh-CN.md b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.human.zh-CN.md
new file mode 100644
index 000000000..b271fc966
--- /dev/null
+++ b/product-source/hololake-clean-desktop/language/build/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.human.zh-CN.md
@@ -0,0 +1,137 @@
+# HoloLake 1.3.0第二阶段人格交互本机验收回执 · 简体中文人类工程语言版
+
+> 这是 TCS/HLDP 原生源码的简体中文阅读投影,不是新的正本,也不授予执行权限。若本页与 `.tcs` 源码不一致,以经过校验的 `.tcs` 源码为准。
+
+## 这是什么
+
+这是一份 **回执** 声明,编号为 `HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904`,版本为 `1.0.0`。转换器已先用 Stage-1 编译器校验原生源码,再把机器枚举翻译成汉语;原始编号保留在括号和字段路径中。
+
+## 谁在这里
+
+源程序没有提供这一项,转换器不猜。
+
+## 为什么开始
+
+源程序没有提供这一项,转换器不猜。
+
+## 发生了什么变化
+
+源程序没有提供这一项,转换器不猜。
+
+## 准备怎样执行
+
+这是非执行声明,没有动作图。
+
+## 边界与异常处理
+
+源程序没有提供这一项,转换器不猜。
+
+## 怎样算完成
+
+源程序没有提供这一项,转换器不猜。
+
+## 下一次从哪里继续
+
+源程序没有提供这一项,转换器不猜。
+
+## 来源与校验
+
+- **原生声明编号**:`HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904`
+- **原生声明类型**:`RECEIPT`
+- **TCS 源码 SHA-256**:`666c3b7a48a03d495d25ff7556b3895c79150afbe10b33b66ff23f1ecec509d7`
+- **校验编译器**:`TCS-COMPILER-STAGE1-0001`
+- **投影协议**:`GLS-HLDP-HUMAN-ENGINEERING-PROJECTION-0001`
+
+## 原生结构逐项对照
+
+下面保留源码的全部顶层结构和字段路径,供人类审计投影有没有漏掉信息。
+
+- **boundaries** `boundaries`
+ - **values** `boundaries.values`
+ - 本回执不改写GLS-0261第一阶段边界而登记为1.2.2之后第二阶段候选
+ - 使用隔离本机假模型证明真实传输和事件闭环但不冒充远端真实供应商验收
+ - 没有读取保存或传输任何真实API密钥
+ - 调试App未公证未生成更新签名所以不发布
+ - 正式Applications内1.2.2未被覆盖
+ - 企业服务器不转发私人消息且本轮未修改企业服务
+ - 第五域私人人格内容未进入公众产品
+- **语言头** `header`
+ - **正本路径**:product-source/hololake-clean-desktop/language/HOLOLAKE-PERSONA-INTERACTION-1.3.0-LOCAL-ACCEPTANCE-20260904.tcs `header.canonical_uri`
+ - **compatibility** `header.compatibility`
+ - TAURI/2
+ - GLP_LOCAL_REALTIME/1
+ - GIR/1
+ - **语言**:TCS/0.1 `header.language`
+ - **生命周期**:候选版本,尚未成为正式正本(`CANDIDATE`) `header.lifecycle`
+ - **英文名**:HoloLake 1.3.0 Second-Stage Persona Interaction Local Acceptance Receipt `header.name_en`
+ - **中文名**:HoloLake 1.3.0第二阶段人格交互本机验收回执 `header.name_zh`
+ - **协议配置**:PUBLIC-PERSONA-INTERACTION/1 `header.profile`
+ - **protocols** `header.protocols`
+ - HOLOLAKE-PERSONA-INTERACTION-V1-0001
+ - GLS-0200
+ - GLS-0261
+ - **schema**:tcs.receipt/v1 `header.schema`
+ - **版本**:1.0.0 `header.version`
+- **integrity** `integrity`
+ - **execution_authority**:否 `integrity.execution_authority`
+ - **model_is_persona**:否 `integrity.model_is_persona`
+ - **source_anchor_manifest_sha256**:7e130de78f91a32726e22e4be7d92acf4da966c8968ec359062aa8186c4243c2 `integrity.source_anchor_manifest_sha256`
+ - **source_tcs**:HOLOLAKE-PERSONA-INTERACTION-V1-0001 `integrity.source_tcs`
+ - **tcs_stage1_compilation**:PASS `integrity.tcs_stage1_compilation`
+ - **unresolved_natural_language**:否 `integrity.unresolved_natural_language`
+- **next** `next`
+ - **optional** `next.optional`
+ - 由用户选择真实模型提供方并在本机钥匙串写入凭据
+ - 完成真实远端提供方一轮对话验收
+ - 把人格长期认知来源与可验证历史挂载接到同一类型化上下文
+ - 通过公开发行门后签名公证并升级安装1.3.0
+ - **state**:LOCAL_1_3_0_PERSONA_INTERACTION_FIRST_SLICE_ACCEPTED_PUBLIC_RELEASE_PENDING `next.state`
+- **操作** `operation`
+ - **values** `operation.values`
+ - 保持试用人格记录与模型推理资源分离
+ - 实现每人格模型绑定与macOS钥匙串密钥保存
+ - 限制远端HTTPS和本机HTTP回环端点
+ - 把类型化SYSTEM_CONTEXT与用户人格对话分开组装
+ - 给PERSONA_RESPONSE写入actorId避免多人格串线
+ - 成功写PERSONA_RESPONSE失败写SYSTEM_RECEIPT
+ - 关闭模型工具调用与Agent执行权
+ - 构建并运行隔离1.3.0桌面App
+ - 以本机真实HTTP模型端点完成一轮用户与人格交互
+- **proof** `proof`
+ - **debug_app_binary_sha256**:e987fe15c67d95916101f38bbafb787e38f1bb546dc68c2d799af9c9173ea918 `proof.debug_app_binary_sha256`
+ - **gir_sha256**:e1e9fa3b42912bbfcb97833fa9598d88e857758305250fc96014373f92342106 `proof.gir_sha256`
+ - **interaction_events_sha256**:2d7157e27945dd5bdf591166994db6fec9fb809826f120fbe394fc62c51ac976 `proof.interaction_events_sha256`
+ - **source_root**:/Volumes/JZAO/HoloLake/development/hololake-clean-v1-20260903/product-source/hololake-clean-desktop `proof.source_root`
+ - **tcs_sha256**:61fc6d960ee064e638bb450f9792aad3c31f2fd56fed69d061985bbed8d2fc42 `proof.tcs_sha256`
+ - **visual_readback_sha256**:8c08ea5b10bfb61747fc4cbe7070dc54ab1c7ab12bd7f821ff923ed461852025 `proof.visual_readback_sha256`
+- **request** `request`
+ - **scope**:HoloLake 1.3.0第二阶段人格交互第一个本机切片 `request.scope`
+ - **来源**:BINGSHUO-DIRECT-HOLOLAKE-CLEAN-V1-DUAL-ANCHOR-20260903_AND_20260904_CONTINUE_NEXT_STAGE `request.source`
+ - **value**:在确认1.2.2尚无软件内人格交互闭环后继续开发下一阶段。 `request.value`
+- **result** `result`
+ - **installed_over_public_1_2_2**:否 `result.installed_over_public_1_2_2`
+ - **public_release**:否 `result.public_release`
+ - **real_remote_provider_acceptance**:否 `result.real_remote_provider_acceptance`
+ - **source_commit**:b35e0d652457d1fd8dd3b77f76b59d9976d7835b `result.source_commit`
+ - **state**:PASS `result.state`
+ - **版本**:1.3.0 `result.version`
+- **verification** `verification`
+ - **values** `verification.values`
+ - 人格交互TCS由Stage-1 compiler-B编译
+ - GIR native_self_hosted=true且unresolved_natural_language=false
+ - Node 3项测试通过
+ - Rust 14项测试通过
+ - Clippy全部目标零警告
+ - 产品审计PASS_100
+ - 远端HTTP与file端点拒绝且HTTPS和本机回环允许
+ - 真实本机HTTP请求路径为v1/chat/completions
+ - 真实请求角色只有system和user
+ - system信封包含hololake.persona-inference-context/v1
+ - 用户语言先写USER_MESSAGE
+ - 模型文本写PERSONA_RESPONSE且actorId等于当前人格编号
+ - 桌面界面分行显示用户语言与人格回应
+ - Developer ID调试App签名严格验证通过
+
+---
+
+本页只改变阅读顺序,不改变 TCS/HLDP 语义。