README来源: main@a62d06ca
dsh-web-wrapper
Lightweight native desktop runtime for DSH Web
一个把 DeepSeek Harness 的 @deepseek-ai/dsh web 包装成原生桌面应用的 Tauri 运行时——解决 DSH 的分发与产品化层。它不是 dsh 插件,而是一个独立的桌面产品外壳。
定位
- 不是插件:不依赖 super-injector / profile bundle 机制,不注入任何 loader 行
- 是运行时:负责「启动 DSH → 等待就绪 → 原生窗口承载 Web UI → 退出时干净回收」这条完整生命周期
- 对 dsh 零侵入:壳内不携带任何 dsh 代码,通过
npx链接本机已缓存的@deepseek-ai/dsh,DSH 本身可随时独立升级
当前架构
启动流程(src-tauri/src/main.rs):
- 读取 exe 同目录
dsh-web.json的port(缺省18966),探测端口占用 - 未占用则以隐藏窗口方式执行
npx --yes @deepseek-ai/dsh web --port <port>(DSH_HOME=<exe目录>/dsh-home,工作目录<exe目录>/workspace);npx --yes优先命中本机 npm 缓存中的 dsh 包,没有才走 registry - 轮询端口就绪后,webview 跳转
http://127.0.0.1:<port>/ - 窗口退出时
taskkill /PID <pid> /T /F回收整棵进程树,不留孤儿服务
ui/index.html 为启动等待页:旋转指示 + 180 秒超时与启动失败提示。
运行时目录布局(exe 同级)
dsh-web.exe
dsh-home/ # DSH_HOME:会话、设置、凭据等
workspace/ # dsh 服务工作目录
plugins/ # 可选:dsh 插件
dsh-web.json # 可选:{"port": 18966}
构建
前置:Node.js(npx 在 PATH 中)、Rust 工具链(含 MSVC)。
pnpm install # 安装 @tauri-apps/cli
pnpm tauri build # 产出 src-tauri/target/release/dsh-web.exe
将 exe 与 dsh-home/、workspace/ 摆到同一目录即可运行。
Roadmap
- 平台生命周期抽象:把 Windows 专属的隐藏窗口(
CREATE_NO_WINDOW)与进程回收(taskkill)抽象为 Windows / macOS / Linux 三套实现,真正跨平台 - Node/DSH 自动检测:启动前检测 node、npx、dsh 可用性并给出可操作提示;检测 dsh 版本并展示
- 版本升级:检查 dsh 新版本,提供一键升级入口
- 系统托盘:托盘常驻,支持显示/隐藏主窗口、快速退出
- 单实例:通过端口探测/锁文件防止多开,二次启动聚焦已有窗口
还没有评论,来写第一条。