feat(v0.4.0): support Windows Desktop and isolate project widget mounts

This commit is contained in:
Aisland
2026-10-03 13:02:20 +08:00
parent e63d122142
commit 6cb86b6c73
22 changed files with 1507 additions and 452 deletions
+18 -6
View File
@@ -53,7 +53,7 @@
## 快速开始
v0.3.4 网页端兼容声明仅列 **DSH 0.1.1-rc.2 / 0.1.2-rc.1 / 0.2.0-rc.2**。本轮在 Windows + 0.2.0-rc.2 验证主要网页流程;前两个版本沿用此前页面验收并补定向代码回归,未重跑整套旧版 GUI。官方桌面端尚未验证。升级宿主前请备份重要数据,并核对其他插件的兼容情况。
**v0.4.0** 在下述已测范围内增加 Windows 官方桌面端支持。网页端兼容声明仅列 **DSH 0.1.1-rc.2 / 0.1.2-rc.1 / 0.2.0-rc.2**;桌面已测范围为 **Windows 官方桌面端 + 0.2.0-rc.2**。桌面页面点测与定向回归不等于最终包完整桌面端业务验收;旧版沿用此前页面验收并补代码回归,未重跑整套旧版 GUI。升级前备份重要数据并核对其他插件,公开发布状态以 GitHub Release 为准。
1. **安装**(二选一):
@@ -76,6 +76,18 @@ v0.3.4 网页端兼容声明仅列 **DSH 0.1.1-rc.2 / 0.1.2-rc.1 / 0.2.0-rc.2**
3. **打开控制室**:点击固定首位的 🖥️ 控制室卡片 → 绑定一条对话(加入现有或新建)→ 得到实时卡片网格
4. **创建项目**:侧边栏 + → 选布局预设、填项目文件夹
### Windows 官方桌面端
先保存任务,从应用菜单/托盘完整退出(只关窗口不够);将安装目录占位符替换为实际位置,在 PowerShell 执行,再手动重新打开:
```powershell
& "<桌面端安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "https://github.com/Aisland-SJL/dsh-worktable/releases/download/v0.4.0/dsh-worktable-0.4.0.tgz"
```
必须使用桌面端自带 CLI 与 `desktop` profile,不用不固定版本的 npx 或网页 CLI 代替。保留实际 DSH_HOME;即便共用会话数据目录,网页与桌面来源的项目/布局/媒体也不会自动同步。
自定义窗口明确选「未分组」时不再偷偷加入宿主分组。控制室新建的是**空对话**:已测 DSH 0.2 的未分组空对话不能使用原生输入框,因此插件提示并禁用这一创建,请自行选分组或加入可用的现有对话;不自动改组、不发送激活消息。现有分组未选具体项时也不退回默认分组,旧宿主未分组创建行为保持。
---
## 架构
@@ -85,7 +97,7 @@ v0.3.4 网页端兼容声明仅列 **DSH 0.1.1-rc.2 / 0.1.2-rc.1 / 0.2.0-rc.2**
- **宿主**:`/api/worktable/*` 路由——健康检查、文件系统、git、文件读写、站点托管、mkdir、工作区、原生皮肤模板;WebSocket `/api/worktable/term` 提供终端窗格(Windows 下为 PowerShell)
- **客户端**:经 slot 协议注入侧边栏与 shell overlay;分栏引擎、标签模型、拖拽与持久化均为自研
- **控制室**:读取宿主会话列表快照(运行中/待决/已完成、后台任务、子代理目录)——事件驱动镜像,模型不参与
- **窗口任务**:agent 完成后在项目文件夹写 `widget-result.json`,客户端把产物挂载进指定窗口并锁死
- **窗口任务**:「自定义」任务登记项目/窗格/绑定身份,agent 在 `.dsh-worktable/project-<项目 ID>/` 下写专属结果;新项目不因共用文件夹而继承其他项目的窗口内容
---
@@ -103,7 +115,7 @@ node --check lib/index.js
- 回归:`04_test/functional-diag.cjs`(20 步)+ 专项探测(控制室、绑定弹窗、收起态贴片、模型继承);
发布流水线内嵌:分栏锚点 DOM 回归 `04_test/anchor-dom.test.mjs`(8 场景,双宿主会话结构)与
数据目录解析回归 `04_test/server-home.test.mjs`(3 组场景,无循环/路径展开/官方分支夹具)
- 发布打包唯一入口为 `npm run pack`,另含 53 项输入/会话回归、独立安装与客户端工厂门禁;上传后用 `npm run verify:remote -- --expect-sha <最终 SHA> v0.3.4` 核对,并另查 latest。
- 发布打包唯一入口为 `npm run pack`,另含 98 项输入/会话/详情/传输/挂载回归、独立安装与客户端工厂门禁;`npm run test:widget` 单独运行 26 项归属、会话隔离、共目录、延迟结果与重试回归。上传后用 `npm run verify:remote -- --expect-sha <最终 SHA> v0.4.0` 核对,并另查 latest。
---
@@ -116,7 +128,7 @@ node --check lib/index.js
**情况 A:Harness 正常,只是工作台需要更新**
- 打开工作台「设置」→ 点「立即检查」;侧栏「工作台」旁出现琥珀色更新徽标时,点它选择「复制 AI 提示词」,把那段话发给你的 AI 助手执行即可;
- 或直接重跑安装命令(永远装最新版),装完重启 dsh web 并刷新:
- 网页端可重跑安装命令(安装最新已发布版本),装完重启 dsh web 并刷新;桌面用户须用上方桌面安装步骤:
```bash
dsh plugin --profile web add "https://github.com/Aisland-SJL/dsh-worktable/releases/latest/download/dsh-worktable.tgz"
@@ -140,10 +152,10 @@ node --check lib/index.js
## 已知限制
- **平台**:Windows 网页端已测范围见上方版本与流程说明;官方桌面端未验证,macOS 为实验性支持且尚未真机端到端验证。
- **平台**:Windows 网页端与官方桌面端的已测版本/流程见上方说明,最终包完整桌面端业务验收仍未完成;macOS 为实验性支持且尚未真机端到端验证。
- 状态在浏览器本地(localStorage 与 IndexedDB)——项目、绑定、视图与媒体不跨设备同步
- 终端窗格在 Windows 上是朴素的 PowerShell 宿主(与原生终端应用无 PTY 对等)
- 自动挂载要求 agent 确实在项目文件夹写出 `widget-result.json`
- 自动挂载要求已登记「自定义」任务且写出身份匹配的 v2 结果文件。旧已保存窗口保留,根目录旧 `widget-result.json` 不再导入;旧对话可从目标窗口「自定义 → 发送到会话」发一次任务建立新关联,随后在同一对话直接继续修改。手动关闭/替换内容会撤销关联,此前误挂的标签需关闭一次。同目录项目若主动写同一个实际文件,文件内容仍可能互相影响。
- 控制室只监控**已绑定对话**的项目;未绑定的项目显示为空闲
---