dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
官方桌面版已推出,本项目停止维护。
请直接下载官方版:
感谢一路使用与反馈。历史版本(v0.1.0 – v0.3.15)仍可在 Releases 页面下载,应用内自动更新不再有新版本。代码与 issue 归档保留,仅供参考。
以下为存档时的项目文档,描述的是 v0.3.15 的行为,仅供参考。
以 Tauri 2 封装 deepseek-harness 的 macOS 桌面端:托管内核源码、随时拉取上游最新代码并从源码构建,工作台在系统浏览器中运行 dsh Web 界面。
参考 hairyf/deepseek-harness-desktop(其下载预编译发行版);本项目改为直接管理上游 git 仓库,始终跟随最新源码。
deepseek-ai/deepseek-harness 到应用数据目录(可自定义目录)。pnpm install / pnpm run build,完成后恢复更新前的服务状态(在跑则自动重启)。上游 force-push 也能通过 reset --hard FETCH_HEAD 跟进;更新时自动清理上游删包遗留的孤儿目录。web profile 的 npm 插件,支持版本检查、升级、重装和卸载;服务运行中会自动停启并恢复。dsh --profile web(loopback 绑定);新版 harness 的 token 鉴权自动适配(从启动输出捕获带 token 的工作台地址,健康检查接受任意 HTTP 响应)。停止 / 重启、异常退出与健康检查连续失败都会反映到状态与日志。SameSite=Strict 会话 cookie,内嵌 iframe 无法携带;工作台以默认浏览器打开,30 天会话内书签直达。logs/app.log(256 MiB × 4 代际滚动,总量约 1 GiB),重启不丢、事后可查。^22.19 || >=24 与 pnpm(构建 harness 内核用;支持 NVM、fnm、Volta、asdf/mise 与 Homebrew 自动发现,也可在应用内手动指定路径)~/Library/Application Support/com.danbao.dsh-desktop/
├── config.json # { "port": 3080, "autostart": true }
├── harness/ # 托管的 deepseek-harness 浅克隆(路径可自定义)
├── logs/ # app.log 滚动日志(256 MiB × 4)
└── state/ # 构建标记(记录产物对应的 commit)
pnpm install
pnpm tauri dev # 开发模式(Vite + cargo)
指向本地已有的 harness 工作区调试(跳过克隆;构建标记按路径区分存放):
DSH_DESKTOP_HARNESS_PATH=/path/to/deepseek-harness pnpm tauri dev
pnpm tauri build # 产出 .app 与 .dmg(src-tauri/target/release/bundle)
推送 v* tag(如 v0.1.0)触发 GitHub Actions,在 macOS runner 上交叉编译 aarch64 与 x86_64 两个架构,自动创建 GitHub Release 并上传 .app / .dmg 安装包;也可在 Actions 页面手动指定 tag 触发。
应用内置自动更新(Tauri updater):顶栏「检查更新」从 GitHub Releases 拉取带签名的更新包校验后安装重启,产物签名密钥为 minisign 密钥对(私钥在 repo secrets TAURI_SIGNING_PRIVATE_KEY,本地备份 ~/.tauri/dsh-desktop.key,丢失则历史版本无法升级到新版本)。
前端 (vanilla TS + Vite)
控制台:环境 / 内核 / 服务 / 插件四张状态卡 + 日志窗格
插件页:独立整页管理 web profile 插件
工作台:服务就绪后由默认浏览器打开(带 token)
│ invoke 命令 / listen 事件
Rust 后端 (src-tauri/src)
commands.rs get_state / sync_harness / update_harness /
start_service / stop_service / set_config / open_workbench
gitops.rs 浅克隆、fetch、behind 对比、reset --hard、孤儿包目录清理
logfile.rs 滚动日志文件(256 MiB × 4 代际)
pipeline.rs needs_build 判定、pnpm install / build、构建标记
plugins.rs web profile 插件目录、registry 版本检查与官方 CLI 操作
service.rs 进程组 spawn、监督线程(健康检查/意外退出检测)、
停止与信号清理(SIGTERM/SIGINT → kill 组)、
token 化工作台地址捕获
snapshot.rs 全量状态快照,state-changed 事件广播
paths.rs 应用数据目录、config.json、日志目录、按路径哈希的构建标记
toolchain.rs Node/pnpm/git 发现与手动配置(NVM/fnm/Volta/asdf/mise…)
tray.rs macOS 菜单栏托盘(状态行、启停服务、工作台、退出)
util.rs 登录 shell PATH 解析、流式子进程日志、loopback 探针
要点:
process_group(0) 启动,停止与清理都作用于整个进程组。~/.npmrc。dsh 具备本地代码执行能力;本应用仅绑定 loopback,鉴权依赖 harness 自带的 token + SameSite=Strict 会话 cookie。请在可信环境中使用。
MIT