arch(hololake): establish clean Tauri desktop line
This commit is contained in:
parent
d1c8d79899
commit
a2302cfd13
23 changed files with 662 additions and 17 deletions
36
product-source/hololake-native-desktop/README.md
Normal file
36
product-source/hololake-native-desktop/README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# HoloLake Native Desktop
|
||||
|
||||
状态:`FOUNDATION_ROOT_CREATED · TAURI_SCAFFOLD_PENDING`
|
||||
|
||||
这是 HoloLake 唯一未来桌面产品主线的干净源码根。它将采用 Tauri v2、Rust 和
|
||||
React/TypeScript,但不会从现有 Tauri 或 Electron 目录整树复制。
|
||||
|
||||
当前只登记产品边界和发布广播合同。选择并验收新的视觉/交互方向之前,不创建会意外继承
|
||||
任一旧应用布局的产品 UI。
|
||||
|
||||
## 供体边界
|
||||
|
||||
- `../hololake-platform`:只读工程能力、合同、测试和 Rust 原生边界供体;
|
||||
- `../hololake-desktop` 与 `../guanghu-knowledge-base`:只读知识 UX、行为和数据兼容供体;
|
||||
- Tolaria、Outline 及其他上游:人工审查的零件来源,不是更新源或产品主线。
|
||||
|
||||
禁止向供体继续增加新产品功能。迁入单位只能是:能力合同、来源/许可证、威胁面、实现、
|
||||
测试和人类可见验收。
|
||||
|
||||
## 更新边界
|
||||
|
||||
- 生产客户端只允许 HoloLake 所有的 HTTPS 发布端点;
|
||||
- 广播可自动出现,下载/安装/重启必须由人类明确选择;
|
||||
- Tauri 更新包签名验证不可关闭;
|
||||
- 平台代码签名与更新包签名是两条独立信任链;
|
||||
- 私钥和平台签名凭据不得进入此目录;
|
||||
- 启动健康回执与可恢复回退是发布完成条件。
|
||||
|
||||
机器可读广播合同:`contracts/release-broadcast.schema.json`。
|
||||
|
||||
## 下一门
|
||||
|
||||
1. 确认正式 bundle identifier、HoloLake 更新域名和密钥托管责任;
|
||||
2. 完成双供体功能/数据/许可证/安全审计;
|
||||
3. 选择新的人类界面视觉方向;
|
||||
4. 再生成最小 Tauri 工程和第一条知识纵向切片。
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://releases.hololake.invalid/contracts/release-broadcast.schema.json",
|
||||
"title": "HoloLake signed opt-in release broadcast",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schema",
|
||||
"releaseId",
|
||||
"version",
|
||||
"publishedAt",
|
||||
"features",
|
||||
"compatibility",
|
||||
"restart",
|
||||
"platforms",
|
||||
"rollback"
|
||||
],
|
||||
"properties": {
|
||||
"schema": { "const": "hololake.release-broadcast/v1" },
|
||||
"releaseId": { "type": "string", "minLength": 1 },
|
||||
"version": {
|
||||
"type": "string",
|
||||
"pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$"
|
||||
},
|
||||
"publishedAt": { "type": "string", "format": "date-time" },
|
||||
"features": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": { "type": "string", "minLength": 1 }
|
||||
},
|
||||
"fixes": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1 }
|
||||
},
|
||||
"compatibility": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["minimumVersion", "dataMigrationRequired"],
|
||||
"properties": {
|
||||
"minimumVersion": { "type": "string", "minLength": 1 },
|
||||
"dataMigrationRequired": { "type": "boolean" },
|
||||
"notes": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"restart": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["required", "automaticAllowed"],
|
||||
"properties": {
|
||||
"required": { "const": true },
|
||||
"automaticAllowed": { "const": false },
|
||||
"message": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"platforms": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["url", "size", "sha256", "tauriSignature"],
|
||||
"properties": {
|
||||
"url": { "type": "string", "pattern": "^https://" },
|
||||
"size": { "type": "integer", "minimum": 1 },
|
||||
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
||||
"tauriSignature": { "type": "string", "minLength": 1 },
|
||||
"platformCodeSignatureReceipt": { "type": "string", "minLength": 1 },
|
||||
"notarizationReceipt": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
}
|
||||
},
|
||||
"rollback": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["supported", "healthReceiptRequired"],
|
||||
"properties": {
|
||||
"supported": { "const": true },
|
||||
"healthReceiptRequired": { "const": true },
|
||||
"previousVersion": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
26
product-source/hololake-native-desktop/foundation.json
Normal file
26
product-source/hololake-native-desktop/foundation.json
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"schema": "hololake.native-desktop-foundation/v1",
|
||||
"record_id": "HLP-NATIVE-DESKTOP-FOUNDATION-001",
|
||||
"state": "FOUNDATION_ROOT_CREATED_TAURI_SCAFFOLD_PENDING",
|
||||
"canonical_shell": "TAURI_V2_RUST_REACT",
|
||||
"product_ui_implementation_started": false,
|
||||
"selected_visual_direction_present": false,
|
||||
"upstream_product_update_endpoints": [],
|
||||
"production_update_endpoint_owner": "HOLOLAKE_ONLY",
|
||||
"release_broadcast_contract": "contracts/release-broadcast.schema.json",
|
||||
"private_signing_material_allowed_in_source": false,
|
||||
"donors": [
|
||||
{
|
||||
"path": "../hololake-platform",
|
||||
"role": "READ_ONLY_ENGINEERING_CAPABILITY_DONOR"
|
||||
},
|
||||
{
|
||||
"path": "../hololake-desktop",
|
||||
"role": "READ_ONLY_KNOWLEDGE_UX_AND_BEHAVIOR_DONOR"
|
||||
},
|
||||
{
|
||||
"path": "../guanghu-knowledge-base",
|
||||
"role": "READ_ONLY_KNOWLEDGE_UX_BEHAVIOR_AND_DATA_DONOR"
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Reference in a new issue