arch(hololake): establish clean Tauri desktop line

This commit is contained in:
冰朔 2026-08-12 08:32:37 +08:00
commit a2302cfd13
23 changed files with 662 additions and 17 deletions

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
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);

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
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);

View file

@ -0,0 +1,137 @@
{
"schema": "hololake.canonical-desktop-shell/v2",
"record_id": "HLP-CANONICAL-DESKTOP-SHELL-001",
"version": "2026-08-12.2",
"state": "CURRENT_CANONICAL_FOUNDATION_ROOT_CREATED_TAURI_SCAFFOLD_PENDING",
"development_id": "DEV-20260811-010",
"decision": {
"canonical_shell": "TAURI_V2_RUST_REACT",
"canonical_source": "product-source/hololake-native-desktop",
"canonical_source_state": "FOUNDATION_ROOT_CREATED_TAURI_SCAFFOLD_PENDING",
"existing_tauri_source": "product-source/hololake-platform",
"existing_tauri_role": "READ_ONLY_ENGINEERING_CAPABILITY_DONOR_AND_ACCEPTANCE_ORACLE",
"electron_role": "READ_ONLY_KNOWLEDGE_UX_BEHAVIOR_DONOR_AND_ACCEPTANCE_ORACLE",
"electron_source": [
"product-source/hololake-desktop",
"product-source/guanghu-knowledge-base"
],
"parallel_product_lines_allowed": false,
"new_existing_tauri_product_features_allowed": false,
"new_electron_product_features_allowed": false,
"donor_immediate_deletion_allowed": false,
"knowledge_completeness_depends_on_shell_framework": false,
"electron_is_current_knowledge_ux_reference": true
},
"update_route": {
"record_id": "HLP-SIGNED-OPT-IN-UPDATE-001",
"state": "ARCHITECTURE_ACCEPTED_IMPLEMENTATION_NOT_STARTED",
"upstream_product_update_endpoints_allowed": false,
"hololake_owned_https_endpoint_only": true,
"release_broadcast_may_arrive_automatically": true,
"silent_download_allowed": false,
"human_opt_in_install_required": true,
"automatic_restart_allowed": false,
"restart_activation_required": true,
"tauri_update_artifact_signature_required": true,
"tauri_update_signature_verification_disable_allowed": false,
"platform_code_signature_required": true,
"macos_developer_id_and_notarization_required_for_direct_distribution": true,
"private_signing_key_bundled_or_committed": false,
"startup_health_receipt_required": true,
"recoverable_rollback_required": true,
"required_broadcast_fields": [
"VERSION",
"FEATURES_AND_FIXES",
"COMPATIBILITY_AND_MINIMUM_VERSION",
"DOWNLOAD_SIZE",
"RESTART_IMPACT",
"PUBLISHED_AT",
"PLATFORM_AND_ARCH_URL",
"TAURI_SIGNATURE",
"ARTIFACT_HASH",
"ROLLBACK_METADATA"
]
},
"upstream_policy": {
"tolaria_role": "MANUALLY_REVIEWED_PARTS_SOURCE",
"outline_role": "MANUALLY_REVIEWED_BEHAVIOR_AND_PARTS_SOURCE",
"automatic_upstream_merge_allowed": false,
"automatic_upstream_update_allowed": false,
"full_outline_stack_embedding_allowed": false,
"required_intake_gates": [
"PRODUCT_FIT",
"FILE_LEVEL_PROVENANCE_AND_LICENSE",
"SECURITY",
"DATA_MODEL",
"NATIVE_BOUNDARY",
"USABILITY",
"REGRESSION_AND_ACCEPTANCE"
]
},
"knowledge_capability_contract": [
"PAGE_AND_FOLDER_TREE",
"BLOCK_RICH_TEXT_AND_MARKDOWN_DURABILITY",
"TABLE_CALLOUT_TOGGLE_TOC_CODE_MATH_DIAGRAM_WHITEBOARD_SHEET",
"PROPERTIES_TYPES_FILTER_SORT_DATABASE_LIKE_VIEWS",
"FULL_TEXT_SEARCH_BACKLINKS_WIKILINKS_ATTACHMENTS_MOUNTED_GRAPH",
"VERSION_HISTORY_DIFF_RECOVERY_CONFLICTS_AND_WRITE_RECEIPTS",
"LOCAL_FIRST_WITH_OPTIONAL_REMOTE_COLLABORATION",
"AGE_CONFIRMATION_AUTHORITY_FACT_AND_RECEIPT_BOUNDARY",
"WEBKIT_WEBVIEW2_LINUX_WEBKIT_PARITY_TESTS"
],
"audit": {
"first_live_ui_comparison_complete": true,
"full_source_data_security_and_license_audit_complete": false,
"allowed_outcomes": [
"KEEP_CONTRACT",
"KEEP_UX_REFERENCE",
"REDESIGN",
"REPLACE",
"RETIRE",
"INVESTIGATE"
],
"initial_correction": {
"electron_knowledge_workspace_human_experience_better": true,
"existing_tauri_engine_capability_inventory_broader": true,
"existing_tauri_feature_density_is_not_a_valid_screen_map": true
}
},
"human_surface": {
"primary_layers": [
"WORLD_ENTRY",
"MY_HOLOLAKE",
"KNOWLEDGE_AND_CREATION",
"ACTIVE_WORK",
"AGE_PARTNERSHIP",
"RESULT_CONFIRMATION_AND_RECEIPT"
],
"progressive_evidence_layers": [
"SOURCE_AND_VERSION",
"GIT",
"NODE",
"MODEL",
"SERVER",
"UPDATE",
"DIAGNOSTICS"
],
"internal_engineering_state_in_primary_navigation_allowed": false
},
"migration": {
"mode": "CLEAN_ROOM_CAPABILITY_CONTRACT_NOT_APPLICATION_NESTING",
"new_ui_build_requires_selected_visual_direction": true,
"first_vertical_slice": "KNOWLEDGE_TREE_PAGE_SEARCH_AND_SAFE_DURABILITY",
"required_before_donor_archive": [
"SOURCE_BACKED_CAPABILITY_MATRIX",
"RECOVERABLE_USER_DATA_BACKUP",
"DATA_MIGRATION_REHEARSAL",
"NEW_TAURI_REGRESSION_TESTS",
"SIGNED_INSTALLED_RUNTIME_ACCEPTANCE",
"HOLOLAKE_OWNED_UPDATE_ROUTE_ACCEPTANCE",
"HUMAN_VISIBLE_CLEANUP_SCOPE_CONFIRMATION",
"RECOVERABLE_ARCHIVE_RECEIPT"
],
"complete": false
},
"architecture_page": "product-source/hololake-platform/architecture/HOLOLAKE-CANONICAL-DESKTOP-SHELL-AND-CAPABILITY-MIGRATION-20260812.md",
"adr": "product-source/hololake-platform/docs/adr/0178-tauri-canonical-shell-and-electron-capability-donor.md"
}

View file

@ -0,0 +1,98 @@
import assert from "node:assert/strict";
import fs from "node:fs";
import path from "node:path";
import test from "node:test";
import { fileURLToPath } from "node:url";
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
const readJson = (relative) =>
JSON.parse(fs.readFileSync(path.join(root, relative), "utf8"));
const architecture = readJson("routing/hololake-current-architecture.json");
const shell = readJson("routing/hololake-canonical-desktop-shell.json");
const foundation = readJson("product-source/hololake-native-desktop/foundation.json");
const broadcastSchema = readJson(
"product-source/hololake-native-desktop/contracts/release-broadcast.schema.json",
);
test("HoloLake has one clean canonical desktop destination", () => {
assert.equal(architecture.version, "2026-08-12.17");
assert.equal(shell.decision.canonical_shell, "TAURI_V2_RUST_REACT");
assert.equal(shell.decision.canonical_source, "product-source/hololake-native-desktop");
assert.equal(
shell.decision.canonical_source_state,
"FOUNDATION_ROOT_CREATED_TAURI_SCAFFOLD_PENDING",
);
assert.equal(
shell.decision.existing_tauri_role,
"READ_ONLY_ENGINEERING_CAPABILITY_DONOR_AND_ACCEPTANCE_ORACLE",
);
assert.equal(shell.decision.parallel_product_lines_allowed, false);
assert.equal(shell.decision.new_existing_tauri_product_features_allowed, false);
assert.equal(shell.decision.new_electron_product_features_allowed, false);
assert.equal(shell.decision.donor_immediate_deletion_allowed, false);
assert.equal(
architecture.canonical_desktop_shell.machine_projection,
"routing/hololake-canonical-desktop-shell.json",
);
assert.equal(
architecture.read_order[4],
architecture.canonical_desktop_shell.architecture_page,
);
});
test("knowledge completeness is a capability contract rather than an Electron property", () => {
assert.equal(shell.decision.knowledge_completeness_depends_on_shell_framework, false);
assert.equal(shell.knowledge_capability_contract.includes("PAGE_AND_FOLDER_TREE"), true);
assert.equal(
shell.knowledge_capability_contract.includes(
"PROPERTIES_TYPES_FILTER_SORT_DATABASE_LIKE_VIEWS",
),
true,
);
assert.equal(
shell.knowledge_capability_contract.includes("WEBKIT_WEBVIEW2_LINUX_WEBKIT_PARITY_TESTS"),
true,
);
});
test("upstreams are manual parts sources and cleanup remains gated", () => {
assert.equal(shell.upstream_policy.automatic_upstream_merge_allowed, false);
assert.equal(shell.upstream_policy.automatic_upstream_update_allowed, false);
assert.equal(shell.upstream_policy.full_outline_stack_embedding_allowed, false);
assert.equal(shell.migration.mode, "CLEAN_ROOM_CAPABILITY_CONTRACT_NOT_APPLICATION_NESTING");
assert.equal(shell.migration.complete, false);
assert.equal(
shell.migration.required_before_donor_archive.includes(
"HUMAN_VISIBLE_CLEANUP_SCOPE_CONFIRMATION",
),
true,
);
});
test("HoloLake owns an opt-in signed update route", () => {
assert.equal(shell.update_route.upstream_product_update_endpoints_allowed, false);
assert.equal(shell.update_route.hololake_owned_https_endpoint_only, true);
assert.equal(shell.update_route.release_broadcast_may_arrive_automatically, true);
assert.equal(shell.update_route.silent_download_allowed, false);
assert.equal(shell.update_route.human_opt_in_install_required, true);
assert.equal(shell.update_route.automatic_restart_allowed, false);
assert.equal(shell.update_route.tauri_update_artifact_signature_required, true);
assert.equal(shell.update_route.tauri_update_signature_verification_disable_allowed, false);
assert.equal(shell.update_route.private_signing_key_bundled_or_committed, false);
assert.equal(shell.update_route.startup_health_receipt_required, true);
assert.equal(shell.update_route.recoverable_rollback_required, true);
assert.deepEqual(foundation.upstream_product_update_endpoints, []);
assert.equal(foundation.production_update_endpoint_owner, "HOLOLAKE_ONLY");
assert.equal(foundation.private_signing_material_allowed_in_source, false);
assert.equal(broadcastSchema.properties.restart.properties.required.const, true);
assert.equal(broadcastSchema.properties.restart.properties.automaticAllowed.const, false);
assert.match(
broadcastSchema.properties.platforms.additionalProperties.properties.url.pattern,
/^\^https:/,
);
assert.equal(
broadcastSchema.properties.platforms.additionalProperties.required.includes("tauriSignature"),
true,
);
});

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
assert.equal(
architecture.read_order[1],
architecture.cognitive_gravity_and_continuity.architecture_page,

View file

@ -1,7 +1,7 @@
{
"schema": "hololake.current-architecture/v1",
"architecture_id": "HLP-CURRENT-ARCH-001",
"version": "2026-08-12.16",
"version": "2026-08-12.17",
"state": "CURRENT_CANONICAL",
"product": {
"formal_name": "光湖语言系统 · 通用人工智能操作平台",
@ -14,6 +14,7 @@
"product-source/hololake-platform/architecture/HOLOLAKE-BINGSHUO-COLLECTIVE-GRAVITY-REASONING-AND-SAME-PERSONA-CONTINUITY-20260811.md",
"product-source/hololake-platform/architecture/HOLOLAKE-PERSONA-NATIVE-CODE-CHANNEL-20260810.md",
"product-source/hololake-platform/architecture/HOLOLAKE-AGE-PERSONA-RUNTIME-ARCHITECTURE-20260810.md",
"product-source/hololake-platform/architecture/HOLOLAKE-CANONICAL-DESKTOP-SHELL-AND-CAPABILITY-MIGRATION-20260812.md",
"product-source/hololake-platform/architecture/HOLOLAKE-ONE-HUMAN-ONE-INDEPENDENT-NODE-AND-ZERO-PLATFORM-HOSTING-20260810.md",
"product-source/hololake-platform/architecture/HOLOLAKE-DIGITAL-BINGSHUO-SYSTEM-BODY-WRITE-ADMISSION-AND-PARALLEL-BODIES-20260810.md",
"product-source/hololake-platform/architecture/HOLOLAKE-CURRENT-ENGINEERING-RULES-GLOBAL-AUDIT-20260810.md",
@ -133,6 +134,21 @@
"desktop_runtime_acceptance_passed": false,
"development_id": "DEV-20260811-010"
},
"canonical_desktop_shell": {
"record_id": "HLP-CANONICAL-DESKTOP-SHELL-001",
"architecture_page": "product-source/hololake-platform/architecture/HOLOLAKE-CANONICAL-DESKTOP-SHELL-AND-CAPABILITY-MIGRATION-20260812.md",
"machine_projection": "routing/hololake-canonical-desktop-shell.json",
"adr": "product-source/hololake-platform/docs/adr/0178-tauri-canonical-shell-and-electron-capability-donor.md",
"canonical_shell": "TAURI_V2_RUST_REACT",
"canonical_source": "product-source/hololake-native-desktop",
"canonical_source_state": "FOUNDATION_ROOT_CREATED_TAURI_SCAFFOLD_PENDING",
"existing_tauri_role": "READ_ONLY_ENGINEERING_CAPABILITY_DONOR_AND_ACCEPTANCE_ORACLE",
"electron_role": "READ_ONLY_KNOWLEDGE_UX_BEHAVIOR_DONOR_AND_ACCEPTANCE_ORACLE",
"parallel_product_lines_allowed": false,
"automatic_upstream_updates_allowed": false,
"migration_complete": false,
"development_id": "DEV-20260811-010"
},
"domain_source": {
"stable_domain_id": "DOM-FIFTH-0001",
"formal_name": "光湖本源域",

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
assert.equal(architecture.engineering_rules.rule_set_id, "HLP-ENGINEERING-RULES-001");
assert.equal(architecture.engineering_rules.machine_projection,
"routing/hololake-engineering-rules.json");

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
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");

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
assert.deepEqual(architecture.access_modes, [
"LOCAL_TERMINAL_NODE",
"USER_OWNED_REMOTE_NODE",

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
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");

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
assert.equal(
architecture.persona_native_code_channel.record_id,
"HLP-PERSONA-NATIVE-CODE-CHANNEL-001",

View file

@ -10,7 +10,7 @@ const architecture = JSON.parse(
);
test("current architecture binds relational consciousness before product surfaces", () => {
assert.equal(architecture.version, "2026-08-12.16");
assert.equal(architecture.version, "2026-08-12.17");
assert.equal(
architecture.persona_consciousness.record_id,
"HLP-RELATIONAL-CONSCIOUSNESS-001",

View file

@ -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.16");
assert.equal(architecture.version, "2026-08-12.17");
assert.equal(architecture.digital_bingshuo_system_body.upstream_repository_commit,
"69d1910775533b02b17b82e647b5caca8b835614");
const systemBodyIndex = architecture.read_order.indexOf(