🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

预发布更新器 kenjoe41/dsh-updater

DeepSeek Harness
kenjoe4114 天前有提交已提供中文文档扫描:无法判定

自动跟进预发布版并安全切换,失败可回滚

29.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add kenjoe41/dsh-updater
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · market
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 的预发布更新器:分阶段 npm 安装、冒烟测试、空闲时切换、systemd 定时器,以及回滚。

README

由 DeepSeek 最新模型翻译生成
dsh-update — DSH 预发布版更新器 把全局安装的 @deepseek-ai/dsh 保持在最新 npm 预发布版上,并让 Web GUI 重新加载到新版本。所有内容都放在 ~/.dsh/updater/ 下;命令通过 PATH 以 dsh-update 的形式可用(~/bin/dsh-update)。 版本 0.1.0 安装 git clone https://github.com/kenjoe41/dsh-updater ~/.dsh/updater cp ~/.dsh/updater/config.env.example ~/.dsh/updater/config.env mkdir -p ~/bin && ln -sf ~/.dsh/updater/dsh-update ~/bin/dsh-update ~/.dsh/updater/dsh-update systemd install config.env 是用户本地文件,已被 gitignore;config.env.example 记录了每一项设置。如果 dsh/npm 不在 PATH 上,把 DSH_NVM_BIN 设为存放它们的目录。systemd install 会写入更新器单元和 GUI 单元;第一次 auto(或 reload --force)会把 GUI 迁到 systemd 下。
展开完整文档(README 剩余 1 节)
dsh-update — DSH 预发布版更新器

把全局安装的 @deepseek-ai/dsh 保持在最新 npm 预发布版上,并让 Web GUI 重新加载到新版本。所有内容都放在 ~/.dsh/updater/ 下;命令通过 PATH 以 dsh-update 的形式可用(~/bin/dsh-update)。

版本 0.1.0

安装

git clone https://github.com/kenjoe41/dsh-updater ~/.dsh/updater
cp ~/.dsh/updater/config.env.example ~/.dsh/updater/config.env
mkdir -p ~/bin && ln -sf ~/.dsh/updater/dsh-update ~/bin/dsh-update
~/.dsh/updater/dsh-update systemd install

config.env 是用户本地文件,已被 gitignore;config.env.example 记录了每一项设置。如果 dsh/npm 不在 PATH 上,把 DSH_NVM_BIN 设为存放它们的目录。systemd install 会写入更新器单元和 GUI 单元;第一次 auto(或 reload --force)会把 GUI 迁到 systemd 下。

运行内容

| 单元 | 作用 |
| dsh-web.service | Web GUI 本身(dsh --profile web --port 3080 --no-open),登录时启用,失败时重启。 |
| dsh-update.timer | 每 15 分钟触发一次。 |
| dsh-update.service | Oneshot:运行 dsh-update auto —— 检查、暂存、空闲时重载。 |

日志:~/.dsh/updater/update.log(更新器)、npm.log(npm 输出)、web.log(Web 服务器,包括 dsh web: http://…?token=… 这一行)。

更新如何发生

1. 检查 —— 读取一次 npm packument,解析出通道(默认 next)。GitHub releases 页面只提供链接,从不作为必需项。
2. 暂存 —— npm install -g --prefix ~/.dsh/updater/stage/<ver> 安装到隔离的 prefix。正在使用的 npm 树不受影响,所以 registry 慢或不稳定时可以慢慢来。尝试三次,然后停止。
3. 冒烟测试 —— 暂存的副本必须能打印版本号,并能组合出完整配置档(dsh --profile web --help),这样能在替换任何东西之前发现插件/peer 不兼容。
4. 激活(空闲门控) —— 仅当五分钟内没有会话写入时:停止服务器,把当前包移到 prev/,把暂存的包移进来,启动 dsh-web.service,等待端口。如果新服务器在 90 秒内没有响应,就放回之前的包并重启服务(回滚)。浏览器 cookie 用持久化的密钥签名,所以打开的标签页会重新连接,而不是要求新的 URL。如果切换还是落在回合中间(强制重载、崩溃,或会话一直忙碌),dsh-autocontinue 的重启恢复扫描会重新打开每个持久化日志停在未完成回合里的会话,并排队一轮续接,这样其他工作区里的工作就不会被搁置。

命令

dsh-update check [--json] # installed vs newest; exit 10 = update available
dsh-update releases [N] # recent releases (GitHub, npm fallback)
dsh-update status [--json] # versions, service, timer, last outcomes
dsh-update stage [--force] # download + smoke-test only
dsh-update activate [--force] # swap the staged version in and restart
dsh-update install [--force] # 暂存 + 激活 dsh-update reload [--force] # 在已安装版本上重启 GUI dsh-update auto # 定时器执行的操作 dsh-update log [-n N] # 查看 update.log 末尾 dsh-update config # 生效中的配置 dsh-update systemd install|refresh|uninstall|status

--force 会忽略五分钟的空闲窗口。

配置

~/.dsh/updater/config.env: bash
DSH_UPDATE_CHANNEL="next" # next | alpha | latest | newest | tag:<name>
DSH_UPDATE_AUTO_INSTALL="1"
DSH_UPDATE_AUTO_RELOAD="1"
DSH_UPDATE_QUIET_SECS="300"
DSH_UPDATE_INTERVAL_MIN="15" # 改完后重新运行 dsh-update systemd refresh
DSH_UPDATE_PORT="3080"
DSH_UPDATE_PROFILE="web"
DSH_UPDATE_KEEP_PREV="1" # 保留旧安装用于回滚(每个约 0.5 GB)
DSH_UPDATE_NOTIFY="1"

故障恢复提示

- GUI 挂了:运行 systemctl --user status dsh-web,再看 tail -50 ~/.dsh/updater/web.log。
- 会话被 reload 打断,重新打开日志里打印的 URL: grep 'dsh web:' ~/.dsh/updater/web.log | tail -1。
- 服务运行期间,再手动执行 dsh --profile web 会因端口 3080 被占用而失败;改用服务(systemctl --user restart dsh-web)。
- unit 文件里硬编码了当前 nvm 的 Node 路径。nvm alias default 变更后,编辑这两个 unit 文件,或者把 DSH_NVM_BIN 指向新版本,再运行 dsh-update systemd refresh。
- prev/ 存放上一个包,用于回滚;stage/ 存放下一个包,直到它被激活。用 DSH_UPDATE_KEEP_PREV 清理(设为 0 表示不保留任何旧包)。
预览分享卡片长什么样 ↓kenjoe41/dsh-updater
分享 · DeepSeek Harness Hub
kenjoe41/dsh-updater

自动跟进预发布版并安全切换,失败可回滚

回到顶部