feat: add HoloLake personal channel module runtime

This commit is contained in:
冰朔 2026-08-09 14:14:07 +08:00
commit a106b23f9b
21 changed files with 786 additions and 31 deletions

View file

@ -0,0 +1,29 @@
# HoloLake Era Desktop 0.8.0
---
type: release-note
status: verified-local
development_id: DEV-20260809-002
source_baseline: bb96d5eb8913c93bd678d989492c5440c0558a8e
---
## 本版目标
把 0.7.1 中仅存在于界面内存的“已安装模块”和“收起知识库”升级为初始化频道的真实世界对象,使模块生命周期由 HoloLake 协议、Git 检查点和可撤销回执共同约束。
## 已实现
- `HL-MOD-KNOWLEDGE-001` 作为当前首个真实 HoloLake 原生模块进入官方模块注册表;
- 个人频道状态写入知识世界仓库的 `.hololake/channel-state.json`,不再写死在导航栏;
- 安装、打开、收起和移除模块入口都会形成独立 Git 检查点和频道回执;
- 上一步频道动作可以撤销;状态继续变化后拒绝静默覆盖;
- 移除知识库只卸载频道入口,不删除文档、历史、服务器绑定或人格连续性资料;
- 模块库只显示已注册且当前真实可用的模块,教育行业继续作为光湖分域行业入口;
- HoloLake 语言操作入口新增频道状态读取和模块状态动作;写动作仍必须由人类确认;
- Agent 确认执行频道动作后,界面从同一频道世界对象刷新,不维护第二份假状态。
## 现实边界
- 模块状态先在当前个人知识世界的本地 Git 中形成检查点;配置远端并显式同步后才能称为服务器已托管;
- 本版没有宣称企业四域在线、生产服务器部署或人格出生;
- 模块商城、签名发行包、跨设备自动恢复和任意自然语言频道布局仍属于后续阶段。

View file

@ -11,7 +11,7 @@ import { contextBridge, ipcRenderer } from 'electron';
contextBridge.exposeInMainWorld('hololake', {
// 应用信息
platform: process.platform,
version: '0.7.1',
version: '0.8.0',
// 数据目录
getDataPath: () => ipcRenderer.invoke('get-data-path'),

View file

@ -0,0 +1,62 @@
# HoloLake Era 0.8.0 开发因果链
---
type: engineering-causal-chain
status: implemented-and-locally-verified
development_id: DEV-20260809-002
repository: REPO-014
branch: main
baseline: bb96d5eb8913c93bd678d989492c5440c0558a8e
---
## 为什么做这一轮
0.7.1 已经具备知识库、Agent、布局、主题和本地/服务器托管入口但“已安装模块”仍是固定界面文案“收起模块”只是本次运行的临时状态。重启后状态丢失Agent 与界面也没有共同的频道事实源,因此尚未满足 HoloLake 初始化频道和模块热插拔蓝图。
## 本轮采用的系统解释
1. 模块以灯塔登记的稳定编号存在,界面名称不是身份。
2. 初始化频道是持续存在的世界对象,不等于仓库 URL 或 React 页面状态。
3. Git 是后台检查点与恢复引擎,不作为普通用户前台。
4. 模块可以卸载,用户知识、项目状态和历史不能随模块删除。
5. 语言操作与点击操作必须经过同一确定性运行时;写操作继续遵守显性确认。
## 工程映射
```text
engineering/MODULE-REGISTRY.json
→ HL-MOD-KNOWLEDGE-001 官方登记
→ HoloLake 模块库只投影 LIVE 模块
个人频道动作
→ /api/channel/patch
→ channel-runtime 确定性校验
→ .hololake/channel-state.json
→ .hololake/receipts/<receipt-id>.json
→ Git 检查点
→ 界面刷新或撤销
语言指令
→ set_channel_module_state
→ 人类确认门
→ 同一个 channel-runtime
→ 同一个频道状态与回执
```
## 取舍
- 没有把未开发模块放进模块库冒充可安装能力;当前只登记知识库这一真实模块。
- 没有把教育行业降级为个人已安装模块;它仍属于光湖分域。
- 没有在模块移除时删除知识目录或远端绑定。
- 没有在 UI 中暴露提交、分支和 Forgejo 工程操作;只显示人类可理解的模块状态和撤销结果。
- 没有记录或展示模型隐藏思维;本页只保存公开架构依据、实现选择与验收证据。
## 验收标准
- 安装、打开、收起、移除在重启后仍可从 Git 世界对象恢复;
- 每次变化产生独立回执;
- 撤销只能恢复仍然对应当前修订的上一步,避免覆盖后续变化;
- 移除再恢复的过程中知识文档内容不变;
- 未登记模块请求失败关闭;
- Agent 写操作仍需确认,确认后界面读取同一状态;
- 自动测试、生产构建、打包后服务 API 与 Git 完整性全部通过。

View file

@ -1,12 +1,12 @@
{
"name": "hololake-desktop",
"version": "0.7.1",
"version": "0.8.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "hololake-desktop",
"version": "0.7.1",
"version": "0.8.0",
"dependencies": {
"cors": "^2.8.5",
"diff": "^9.0.0",

View file

@ -1,6 +1,6 @@
{
"name": "hololake-desktop",
"version": "0.7.1",
"version": "0.8.0",
"description": "HoloLake Era — 光湖语言操作系统平台",
"main": "dist-electron/main.cjs",
"type": "module",