Releases: mrRisega/dsh-remote
Releases · mrRisega/dsh-remote
Release list
dsh-remote 0.6.5
Fixed
- 面板「一键更新」在市场装法(npm / 插件市场安装)下不再空转。此前该路径只清理由历史
include、不动插件包,命令 exit 0、界面显示"安装完成",插件却始终停在旧版本(实测:装的是
0.6.3,更新后仍是 0.6.3,日志写着"已保持市场管理的源码不变")。现在会按包管理器主动把插件包
升级到最新,并如实报告三种结果之一:已升级(x.y.z → x.y.z)/ 已是市场最新版 / 升级失败并给出
可手动执行的命令。 - 插件包升级成功后明确提示需要重启一次 dsh web —— 市场装法经
dsh.profile.bundles激活,
该文件只在启动时读取(与"首次安装可热挂载"的边界一致,见 0.6.4 说明)。
dsh-remote 0.6.4
正式版。本轮的预发版(beta.1 ~ beta.11)到此收束:安装体验、macOS 26 自启动、
插件激活方式与匿名统计都已在生产环境验证过。
Added
- 插件热加载:安装插件改为写 profile 的
cordis.patch.yml(HMR 监听该文件),
首次安装装完只需刷新页面、不必重启 dsh web。实测:进程 pid 不变、安装耗时约 1.3 秒、面板接口立刻可用。
边界(实测):HMR 只认 patch 文件的变化,而加载器按 URL 缓存模块 —— 所以
同一插件升级到新版本时 patch 行内容没变,热加载不生效,仍需重启一次 dsh web;
安装器会按版本号核对并如实提示,不会谎报成功。 - 匿名装机统计:只上报「装机/连接是否成功」这类事件(12 个白名单事件 + 11 个白名单失败码),
不含账号、手机号、会话或文件内容、主机名、路径、设备指纹与 IP;标识是本机随机 ID(重装即变)。
环境变量DSH_REMOTE_TELEMETRY=0可完全关闭。披露文档见 docs/telemetry.md。 - macOS 26 自启动修复:macOS 26 把
gui/<uid>会话域置为 on-demand-only(RunAtLoad/KeepAlive
失效、只登记不启动),现在优先用user/<uid>域(实测崩溃后 launchd 自动重建),
失败才回退gui/<uid>+kickstart(如实告知不支持自愈),再不行退化为后台进程。
Changed
- 安装输出精简:多阶段重复播报收敛成结尾一份汇总。
- 面板不再要求「重启 DeepSeek harness」:插件热加载 + bridge 是独立 launchd 进程,
装插件/在线更新都不需要重启;只有「磁盘插件版本与运行版本不同」时才提示刷新页面,
且不再自动重启(刷新零风险,重启会打断你的会话)。
Fixed
duplicate loader entry id崩溃:patch 行与插件自带 bundle patch 同时生效会让 dsh web
启动即报plugin tree failed to load。现在两条激活路径互斥:bundles 已声明就不写 patch 行;
写完 patch 行再复核 bundles 已清空,没清掉就回滚。- 「刷新后横幅还在」:提示判断从"文件时间戳"改为"版本号比较" —— 补装把同一版本重写一遍
不再误报。 - 更新提示的版本比较:改为语义化比较(预设版低于同号正式版),装预发版的人不会被误判成落后。
~/Library/LaunchAgents不存在时自动创建;服务 PATH 补/usr/sbin、/sbin(修ioreg: command not found)。- 热加载探测改为按版本判断:此前只检查面板接口是否 200(旧版本本来就有这个接口),
于是「profile 已更新到新版本、运行中仍是旧版本」会被误报成"热加载成功"。现在比对运行中版本与
本次安装版本,不一致就如实提示需要重启 dsh web。 - 安装器的配置目录统一为
~/.dsh-remote(修掉「面板读不到配置 / 运行状态文件散落进仓库」)。 - 测试污染:
harness-restart用例会覆盖开发者真实的~/Library/LaunchAgents,已加 HOME 隔离与静态护栏。
dsh-remote 0.6.3
Added
- 插件清单声明宿主要求(
engines.dsh: ">=0.1.0-rc.6 <0.2.0-0"):插件市场详情页不再提示
"未声明宿主要求",并可据此按 DSH 版本筛选适配插件。 - 发版说明自动化:每个版本的 GitHub Release 正文由 CHANGELOG 对应小节自动生成,
插件市场的「更新说明」因此显示真实条目(此前为空/通用文案)。
Changed
- 市场预构建包地址改为
releases/latest/download/(资产名不带版本号)——
一键安装始终跟随最新版本;此前钉在 v0.6.0,导致市场长期安装旧版。
dsh-remote 0.6.2 — 插件市场预构建包
[0.6.2] - 2026-09-11
稳定版(
latest)。主题:插件市场安装即可用(补齐桌面运行环境 + 修复自愈停摆 + 首次安装重启引导)。
Fixed
- 插件市场安装后 bridge 起不来、且永远不自愈(本机实测复现并修复)。只装插件半(市场/
dsh plugin add)
的用户,桌面运行环境~/.dsh-remote/dsh-setup.mjs从未被补齐,而登录/「启动 bridge」会直接写 plist 并
launchctl bootstrap→ 指向不存在的脚本 → launchd KeepAlive 无限重拉(实测runs = 23、
last exit code = 1、日志 20+ 次MODULE_NOT_FOUND)。三处根因一并修掉:startBridge()不再在运行环境缺失时 bootstrap:改为拒绝启动并转入后台补装,不再生成指向空路径的
自启动项(这类 plist 是崩溃循环的唯一来源)。launchdStatus()不再把崩溃循环谎报为「运行中」:launchctl print能打印时以它的state为准,
绝不回退launchctl list——崩溃循环里 list 的 PID 列会闪现已死的 pid(实测40213 1而
ps -p 40213为空),旧实现据此报running: true,直接导致第 3 条的自愈停摆。- 自愈顺序修正:
scheduleRuntime把「运行环境是否就绪」提到最前,先于「账号是否登录」与
「服务是否在跑」判断;并主动摘除指向不存在脚本的失效自启动(bootout+ 删 plist),止住崩溃循环。
另:插件加载(apply)即开始后台补装运行环境,不再等用户先登录;自启动 plist 增加ThrottleInterval,
崩溃时不再空转重拉。
Added
- 首次安装/更新后引导重启 DeepSeek harness:dsh web 的插件(宿主半 + 浏览器半)都在进程启动时装载,
市场安装只是把文件写进 profile,必须重启才生效。现在:- 「设置 → 远程访问」顶部醒目提示「首次安装需要重启 DeepSeek harness」+「重启」按钮;
- 面板最底部常驻「🔄 重启 DeepSeek harness」按钮(随时可达);
- 面板内一键重启:优先交回监管者(
launchctl kickstart -k精确匹配承载本插件的作业 /systemctl --user restart),无监管者时用原命令行自拉起;重启期间页面自动轮询并在服务恢复后刷新,无需手动操作; - 「待重启」状态持久化并跨进程结清:真重启后提示自动消失,同一进程内(仅刷新页面)不会误撤。
GET /dsh-remote/status新增service.runtimeReady与restart(pending/kind/reason),面板据此
区分「运行环境没装(自动补装中)」与「装了但没跑」,并把崩溃循环如实显示为「启动失败(已自动转入修复)」。
Changed
npm run test:plugin默认置位DSH_RELAY_SKIP_SERVICE=1(测试隔离):插件加载不再在用例里触发真实
npx 补装 / launchctl / 重启 harness;需要真实分支的用例显式 unset。
dsh-remote 0.6.0 — 插件市场预构建包(dsh-remote-web / dsh-remote-ui)
预构建插件包,供各 DSH 插件市场一键安装(免源码构建):
dsh-remote-web.tgz— 新名插件包(dsh-remote-web@0.6.0,含 E2EE 数据面 / 桌面授权)dsh-remote-ui.tgz— 旧名兼容别名(dsh-remote-ui@0.6.0,与上面同一份代码,供改名灰度期使用)
dsh-remote v1.0.0
🎉 首个正式发布
在手机浏览器上全功能远程控制 DeepSeek Harness(dsh web)的安全反向代理网关。
特性
- 零侵入:不改 DSH 任何代码/配置,dsh web 保持 127.0.0.1 监听
- 功能全覆盖:loopback 伪装实现特权方法(settings/credentials 等)全覆盖
- 安全默认:口令登录(scrypt 哈希)、会话 cookie、失败限流、IP 白名单、可选 TLS
- WebSocket 原生透传,手机与桌面实时同步
- 零运行时依赖(Node.js ≥ 20 原生模块)
安装
curl -fsSL https://raw.githubusercontent.com/mrgaoang/dsh-remote/main/install.sh | bash许可
双许可:个人/非商业免费(PolyForm Noncommercial 1.0.0)+ 商业授权。
详见 COMMERCIAL-LICENSE.md