🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

hjdhnx/dsh-desktop

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
未验证

DeepSeek Harness 桌面端 -- 从 Electron 迁移到 TauriRust 壳 + Node…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/23 · 已提供中文文档

DeepSeek Harness 桌面端 -- 从 Electron 迁移到 Tauri(Rust 壳 + Node Sidecar)架构

综合分
27.6
GitHub 分
27.6
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add hjdhnx/dsh-desktop
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
dsh 原生插件 · desktop
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
更新放缓:最近一次提交在 34 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

数据截至 2026/9/23(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
DSH Desktop

DeepSeek Harness 桌面端 —— 从 Electron 43.4.0 迁移到 Tauri (Rust) + Node Sidecar 架构,已在当前仓库实现并端到端验证。官方 DeepSeek Harness 内核随仓库保持最新(当前 dsh-v0.1.1-rc.2)。

本仓库是原桌面项目(deepseek-harness-desktop)的 Tauri 迁移实现:Tauri Rust 壳负责托盘、窗口与原生能力,Node Sidecar 承载完整的 Cordis host(照搬自上游),前端零改动加载真实 DSH web 应用。

1. 架构

┌──────────────────────────────────────────────────────────────┐
│  Tauri Rust 壳  (src-tauri/)                                  │
│  ─ 应用生命周期,spawn Node sidecar (stdio 管道)              │
│  ─ sidecar.rs: JSON-RPC 消息循环 (stdout 读取 -> 分发 ->      │
│    stdin 响应) + SIDECAR_STDIN 全局发送器 (Tauri -> sidecar)  │
│  ─ tray.rs: 单托盘 (setup 预建, Mutex 菜单重建, 防竞态)      │
│  ─ native.rs: 17+ 原生能力 (dialog/shell/notification/...)   │
│  ─ recovery.rs / profile_create.rs + Tauri 命令               │
│    (recovery_restart/exit, profile_create_submit/cancel)     │
│  ─ updater.rs (ureq 真实版本检查)                            │
└───────────────▲────────────────────────────────┬────────────┘
│ JSON-RPC over stdio            │ 加载 URL
┌───────────────┴────────────────────────────────▼────────────┐
│  Node Sidecar  (sidecar/, dsh-plugin-desktop@2.0.2)           │
│  ─ lib/sidecar-main.js: 完整 Cordis host boot                │
│  ─ 照搬上游源码 (路由/业务/契约/client/native-ui)            │
│  ─ tauri-runtime-bridge.ts: DesktopRuntime 经 RPC 实现       │
│  ─ 去 Electron: pnpm/terminal/runtime-environment (Node ABI) │
└───────────────▲──────────────────────────────────────────────┘
│ HTTP (127.0.0.1:)
┌───────────────┴──────────────────────────────────────────────┐
│  前端  (真实 DSH web 应用, 零改动)                            │
│  ─ client.js 注入 (dsh.client.inject + ./client 导出)        │
│  ─ 渲染健康上报 -> health gate commit -> 启动完成             │
└──────────────────────────────────────────────────────────────┘

2. 特性

- 装完即用:安装包捆绑 Node 二进制(v22)与部署好的依赖目录,无需预装任何运行时
- 托盘单实例:防竞态多图标;中文菜单(打开 DSH 终端 / 导出诊断信息 / 配置文件 / 检查更新)
- 无黑窗口:PE Subsystem=GUI + CREATE_NO_WINDOW + stderr 转日志
- 官方图标:应用图标与托盘图标均来自上游 dsh-plugin-desktop/build/(app-icon / tray-icon-blue)
- DeepSeek Harness 内核最新:deepseek-harness submodule 锁定官方 master(b150a551 = dsh-v0.1.1-rc.2),@deepseek-ai/ 依赖从 npm 安装最新 rc 版本
- 启动恢复 / 新建配置文件 交互窗口(recovery.html / profile-create.html,经 Tauri 命令 -> JSON-RPC 通知 sidecar)

3. 验证证据(全部实测)

| 验证项 | 命令 | 结果 |
|---|---|---|
| 一键验收 | node sidecar/tests/verify.mjs | ✅ ACCEPTANCE PASSED (6 checks) |
| 完整 host boot | 隔离环境 node lib/sidecar-main.js | ✅ 托盘注册×4 + shellReady + renderer-timeout (standalone 预期) |
| 端到端 | 隔离环境运行 Tauri exe | ✅ [sidecar] host booted — 窗口加载真实 web 应用,健康上报,启动提交 |
| 生产布局 | exe 旁 sidecar/ 资源 + node_modules | ✅ host booted |
| 安装包 | cargo tauri build (NSIS) | ✅ 53.8MB(含 Node 二进制 + 部署依赖),安装后可直接运行 |
| 安装版启动 | silent install 后运行 exe | ✅ 窗口出现 + host booted + webserver 返回 DeepSeek Harness |
| 图标一致性 | 提取安装版 exe 图标逐像素对比 | ✅ 与上游 app-icon.png 一致 |
| Rust 编译 | cargo check | ✅ |
| 托盘单实例 | tray.rs (setup 预建 + Mutex 重建) | ✅ 无竞态多图标 |
| 无黑窗口 | PE Subsystem=2 (GUI) + CREATE_NO_WINDOW + stderr pipe | ✅ |
| 中文托盘 | LANG=zh_CN.UTF-8 | ✅ 打开 DSH 终端 / 导出诊断信息… / 配置文件 / 检查更新… |

4. 构建与运行

Rust 壳
cd src-tauri && cargo build

Sidecar(构建 + 一键验收)
cd sidecar
pnpm install --ignore-scripts   # 依赖从 npm (0.1.1-rc.2);配置见 pnpm-workspace.yaml
pnpm exec tsdown                # 构建 lib/ (43 文件 + client.js)
node tests/verify.mjs           # 一键验收

端到端(隔离环境,避免与已运行的旧版冲突)
cd src-tauri
APPDATA= DSH_HOME= ./target/debug/dsh-desktop.exe

出安装包(含打包 runtime:node.exe + 部署依赖)
cargo tauri build

5. 关键实现备注

- DesktopRuntime 是唯一 seam:index.ts 零改动,实现从 ElectronDesktopRuntime 换成 TauriRuntimeBridge(JSON-RPC 代理)
- JSON-RPC over stdio 双向:sidecar→Tauri 请求/通知(stdout),Tauri→sidecar 响应(stdin)+ 非请求通知(trayInvoke / recoveryChoice / profileCreateSubmit)
- pnpm v11 项目配置只认 sidecar/pnpm-workspace.yaml(.npmrc 无效):shamefullyHoist: true + minimumReleaseAgeExclude 缺一不可
- sidecar 自身即 dsh-plugin-desktop:package.json 改名 + node_modules/dsh-plugin-desktop 自链接 + dsh.client.inject + ./client 导出,profile Loader 才能把桌面插件解析到 sidecar 的 lib/
- 生产路径解析:DSH_SIDECAR_PATH > exe 旁 sidecar/ > exe 旁 resources/sidecar/ > dev 布局
- tauri resources 打包陷阱:glob 模式(/)会把目录结构平铺,node_modules 必须用目录映射逐项复制(tauri.conf.json 的 bundle.resources)
- 图标生成:cargo tauri icon 会把 .ico 32x32 帧转坏,用 scripts/make-ico.mjs(sharp 逐帧重采样 + 手工组装 BMP 帧 ICO)生成与上游逐像素一致的图标

6. 目录结构

dsh-desktop/
├── src-tauri/                      # Tauri Rust 壳
│   ├── icons/                      # 官方图标 (app-icon / tray-icon)
│   ├── src/
│   │   ├── main.rs / lib.rs        # 入口 + Builder + 插件
│   │   ├── sidecar.rs              # Node sidecar 进程管理 + RPC 循环
│   │   ├── rpc.rs                  # JSON-RPC 2.0 消息类型
│   │   ├── native.rs               # 原生能力分发器 (17+ 方法)
│   │   ├── tray.rs                 # 单托盘 (防竞态)
│   │   ├── recovery.rs             # 启动恢复窗口
│   │   ├── profile_create.rs       # 新建配置文件窗口
│   │   └── updater.rs              # 更新器
│   └── tauri.conf.json             # 窗口/打包/资源映射
├── sidecar/                        # Node sidecar
│   ├── src/                        # TS 源码 (rpc-protocol / tauri-runtime-bridge / sidecar-main ...)
│   ├── lib/                        # tsdown 构建产物 (提交)
│   ├── runtime/                    # 生产运行时 (node.exe + 部署依赖, gitignored)
│   ├── web/                        # 前端 (index.html / recovery / profile-create)
│   └── tests/smoke.mjs / verify.mjs
├── deepseek-harness/               # 官方 submodule (dsh-v0.1.1-rc.2)
└── scripts/make-ico.mjs            # ICO 生成脚本

7. 迁移阶段状态总览

| Phase | 任务 | 状态 |
|---|---|---|
| 0 | Tauri 脚手架 + 最小 sidecar + shellReady→窗口 | ✅ 验证 |
| 1 | Sidecar 移植 host boot | ✅ 实测 boot 完整 host |
| 2 | RPC 协议层(双向) | ✅ |
| 3 | 原生能力逐个接通 | ✅ 核心全实现 |
| 4 | 去 Electron 引导 | ✅ 源文件改造 |
| 5 | 启动恢复 + profile-create 窗口 | ✅ 交互闭环 |
| 6 | 更新器与打包 | ✅ NSIS + 资源打包 + 安装版装完即用 |
| 7 | 测试对齐 | ✅ verify.mjs 一键验收 |

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群