右上角一键检查新版本,退出时自动完成升级
29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/ADDD1118/dsh-update.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 52 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意npm 同名包「dsh-update」归属 dushaobindoudou/dsh-update,装到的可能不是本插件
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-update @ 0.0.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 00:11:53
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 31 处,展示前 28 条)
- 读取本地文件lib/index.js:45
if (existsSync(join(s, "apps", "cli", "package.json"))) return s; - 读取本地文件lib/index.js:49
if (existsSync(join(dir, "apps", "cli", "package.json"))) return dir; - 读取本地文件lib/index.js:50
if (existsSync(join(dir, "launcher", "update-dsh.ps1")) && existsSync(join(dir, "deepseek-harness", "apps", "cli", "package.json"))) return join(dir, - 写入本地文件lib/index.js:68
mkdirSync(dirname(full), { recursive: true }); - 读取本地文件lib/index.js:89
const version = JSON.parse(readFileSync(join(repoPath(), "apps", "cli", "package.json"), "utf8")).version; - 读取本地文件lib/index.js:99
const version = JSON.parse(readFileSync(pkgPath, "utf8")).version; - 发起网络请求lib/index.js:159
const res = await fetch(RELEASES_ATOM, { - 发起网络请求lib/index.js:179
const res = await fetch(url, { - 读取本地文件lib/index.js:201
return JSON.parse(readFileSync(path, "utf8")); - 写入本地文件lib/index.js:211
writeFileSync(stateFile(), JSON.stringify(value)); - 执行外部命令来自配置/变量lib/index.js:228
spawn(process.execPath, [updaterScript(), JSON.stringify(payload)], { - 写入本地文件lib/index.js:332
writeFileSync(pendingFile(), JSON.stringify({ - 删除本地文件lib/index.js:358
rmSync(pendingFile(), { force: true }); - 写入本地文件updater.mjs:45
try { mkdirSync(dirname(path), { recursive: true }) } catch { } - 写入本地文件updater.mjs:46
try { writeFileSync(path, JSON.stringify(value)) } catch { } - 读取本地文件updater.mjs:53
if (statSync(path).isDirectory()) { - 写入本地文件updater.mjs:137
mkdirSync(dir) - 写入本地文件updater.mjs:138
try { writeFileSync(join(dir, 'pid'), String(process.pid)) } catch { } - 读取本地文件updater.mjs:152
const age = Date.now() - statSync(dir).mtimeMs - 删除本地文件递归updater.mjs:155
rmSync(dir, { recursive: true, force: true }) - 执行外部命令固定命令updater.mjs:195
const child = spawn( - 执行外部命令固定命令updater.mjs:230
const child = spawn( - 写入本地文件updater.mjs:264
try { mkdirSync(dirname(logTarget), { recursive: true }) } catch { } - 写入本地文件updater.mjs:278
mkdirSync(dirname(payload.logFile), { recursive: true }) - 删除本地文件updater.mjs:280
if (statSync(payload.logFile).size > LOG_MAX_BYTES) rmSync(payload.logFile, { force: true }) - 读取本地文件updater.mjs:280
if (statSync(payload.logFile).size > LOG_MAX_BYTES) rmSync(payload.logFile, { force: true }) - 删除本地文件updater.mjs:313
try { rmSync(pendingFile, { force: true }) } catch { } - 删除本地文件递归updater.mjs:347
try { rmSync(lockDir, { recursive: true, force: true }) } catch { }
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 右上角一键检查更新
- 退出时自动升级
README
由 DeepSeek 最新模型翻译生成dsh-update
一个面向 DeepSeek Harness (dsh) 的用户级插件,在 Web UI 右上角添加一个 “检查更新” 按钮,并支持带进度条的实时更新。
- 会话标题栏中的灰色“检查更新”按钮 → “检查中”
- 检查时显示蓝色旋转指示器
- 液态玻璃提示:当已是最新版本时显示 “You are already on the latest version, X”
- 当存在更新版本时,显示蓝色“新版本”按钮 + 居中的更新对话框(发布说明 + “更新”)
- 点击“更新” → 5 秒倒计时,然后 dsh 自行关闭,更新在退出过程中执行(可随时取消,或立即关闭)
- 更新运行时,右下角会出现一个 桌面进度卡片,显示真实阶段([5/6] 安装依赖)。
展开完整文档(README 剩余 1 节)
dsh-update 一个面向 DeepSeek Harness (dsh) 的用户级插件,在 Web UI 右上角添加一个 “检查更新” 按钮,并支持带进度条的实时更新。 - 会话标题栏中的灰色“检查更新”按钮 → “检查中” - 检查时显示蓝色旋转指示器 - 液态玻璃提示:当已是最新版本时显示 “You are already on the latest version, X” - 当存在更新版本时,显示蓝色“新版本”按钮 + 居中的更新对话框(发布说明 + “更新”) - 点击“更新” → 5 秒倒计时,然后 dsh 自行关闭,更新在退出过程中执行(可随时取消,或立即关闭) - 更新运行时,右下角会出现一个 桌面进度卡片,显示真实阶段([5/6] 安装依赖)。它可以拖动,点击其 ✕ 会将其折叠为托盘图标(白色圆角方块,带蓝色 DeepSeek 鲸鱼),点击该图标会让卡片回到你离开时的确切位置 - 永远不会显示控制台窗口——卡片通过 launch-hidden.vbs 启动(见开发说明) - 完成时,右下角会弹出 Windows 通知 宣布结果 - 检查 GitHub releases feed,并驱动你自己的 launcher/update-dsh.ps1,因此它会更新启动器所运行的那个确切安装;绝不触碰启动器 exe 或 ~/.dsh 用户数据 Requirements - DeepSeek Harness (dsh) Web surface (dsh web), v0.1.0+ - Node 22+ (uses the built-in fetch) - The workspace layout the launcher expects: a deepseek-harness source checkout with a sibling launcher/update-dsh.ps1, plus git, pnpm, curl.exe and PowerShell on PATH (the update drives that script) Installation Add the plugin to your web profile, then register the row. dsh plugin --profile web add ADDD1118/dsh-update Append this to ~/.dsh/profiles/web/cordis.patch.yml: - insert: - id: dsh-update name: dsh-update Restart dsh web and hard-refresh the browser (Ctrl+F5). The button appears in the top-right of the session header (beside "Session log"). The plugin ships prebuilt (lib/index.js + lib/client.js), so no build step is required. How the update works - The check reads the GitHub releases feed for the newest tag; if it is newer than the running version, the "New version" flow lets you update. - Clicking "Update" schedules the update rather than applying it live: the source checkout is the working directory of the running server, and Windows will not let that directory be replaced while the server is alive. The schedule is recorded in ~/.dsh/.dsh-pending-update.json. - A 5-second countdown then asks dsh to close itself via the launcher's appExit — the same path as a normal shutdown, just without you clicking the X. Cancel at any point to unschedule. - 当 dsh 在已排期更新时关闭,一个分离的更新进程会等待该进程完全退出,然后运行 launcher/update-dsh.ps1 -Tag (下载 → pnpm install → 构建),并将结果写入 ~/.dsh/.dsh-update-state.json。 - 在此期间,update-progress.ps1 会轮询该状态文件并绘制右下角卡片;它和完成提示都作为独立进程运行,因此即使更新进程终止也能继续存在。 - 重新打开 dsh,结果只会显示一次。如果更新已完成,标记会自动清除——不会反复提醒。 - 后台更新的完整输出会写入 ~/.dsh/.dsh-update.log。 关闭 dsh 本身绝不会触发任何更新。 唯一会执行更新的情况是你点击了“更新”且排期仍然待执行;不存在后台自动升级。如果你是强制结束 dsh 而不是正常关闭,排期的更新不会运行——这种情况请使用 更新DeepSeekHarness.cmd。 功能 为 DeepSeek Harness (dsh) 的 Web 界面右上角新增 “检查更新” 按钮,并支持在关闭 dsh 后自动完成的后台更新。 - 会话头右上角灰色“检查更新”按钮 → 点击后变“检查中” - 检查时显示蓝色转圈 - 已是最新时弹出液态玻璃提示:“当前已是最新版本,版本号为 X” - 有新版时按钮变蓝色“新版本”,点击弹出居中更新对话框(含更新说明 + “更新”按钮) - 点“更新” → 5 秒倒计时后 dsh 自动关闭,更新在退出过程中执行(随时可「取消排期」,或直接「立即关闭」) - 更新期间桌面右下角悬浮进度小条,显示真实阶段([5/6] 安装依赖)。可拖动位置;点 ✕ 收起为托盘图标(白底圆角蓝色鲸鱼),点该图标会在你关闭时的位置把浮窗还原 - 全程不出现任何控制台窗口 —— 通过 launch-hidden.vbs 隐藏启动(见 Development notes) - 完成后右下角弹出 Windows 通知告知结果 - 通过 GitHub releases 检测最新 tag,并驱动你自己的 launcher/update-dsh.ps1,因此更新的正是启动器实际运行的那份代码;不触碰启动器 exe 和 ~/.dsh 用户数据 环境要求 - DeepSeek Harness (dsh) Web 界面(dsh web),v0.1.0+ - Node 22+(用到内置 fetch) - 启动器期望的目录结构:deepseek-harness 源码检出 + 同级 launcher/update-dsh.ps1;且 PATH 中有 git、pnpm、curl.exe 和 PowerShell(更新由该脚本执行) 安装 将插件加入 web profile,并注册插件行。 dsh plugin --profile web add ADDD1118/dsh-update 在 ~/.dsh/profiles/web/cordis.patch.yml 追加: - insert: - id: dsh-update name: dsh-update 重启 dsh web 并强刷浏览器(Ctrl+F5)。按钮出现在会话头右上角(“Session log”旁)。 插件已预构建(lib/index.js + lib/client.js),无需再执行构建。 更新原理 - 检查时会读取 GitHub releases 的最新 tag;若比当前运行版本新,则通过“新版本”流程更新。 - 点“更新”只是排期,不会立即执行:源码检出目录正是运行中服务的工作目录,而 Windows 不允许在进程存活时替换该目录。排期记录写入 ~/.dsh/.dsh-pending-update.json。 - 随后 5 秒倒计时,通过启动器提供的 appExit 让 dsh 自行退出 —— 与正常关闭走同一条路径,只是不需要你手动点关闭。倒计时期间可随时取消排期。 - 关闭 dsh 时若存在排期,一个分离的后台进程会等主进程完全退出后执行 launcher/update-dsh.ps1 -Tag (下载 → pnpm install → 构建),并把结果写入 ~/.dsh/.dsh-update-state.json。 - 更新期间由 update-progress.ps1 轮询该状态文件绘制右下角进度卡;进度卡与完成通知都是独立进程,即使 updater 意外退出也能给出结果。 - 重新打开 dsh 后结果只提示一次。若更新确实已完成,标记会自动清除,不会反复弹窗。 - 后台更新的完整输出见 ~/.dsh/.dsh-update.log。 「关闭 dsh」本身不会触发任何更新。 唯一会执行更新的是你点了「更新」且排期仍然存在 —— 没有后台自动升级。若是强制结束进程(而非正常关闭),排期的更新不会执行,这种情况下请用 更新DeepSeekHarness.cmd。 Development notes - src/** 由 tsdown 打包进 lib/index.js(宿主,ESM)和 lib/client.js(浏览器,CJS,通过 window.__ModuleLoader__.load 交给 shell)。updater.mjs 和 update-progress.ps1 不打包发布,在运行时从磁盘加载。 - update-progress.ps1 必须保存为带 BOM 的 UTF-8。 当没有 BOM 时,Windows PowerShell 5.1 会以 ANSI(中文系统上为 GBK)读取 .ps1 文件,这会严重破坏其中的中文字符串,足以导致解析失败。 - 更新程序只从 update-dsh.ps1 的输出中解析 [N/M] 数字,并提供自己的阶段标签:该脚本的 Write-Host 输出以控制台的 OEM 代码页到达,因此按 UTF-8 解码会产生乱码。 - 对于进度卡片,PowerShell 子进程通过 launch-hidden.vbs(wscript,窗口样式 0)启动。有两个不同的原因:仅靠 detached + unref 并不能让 PowerShell 子进程在其父进程退出后继续存活;而且在 Windows 11 上,控制台应用会被交给 Windows Terminal——因此 powershell -WindowStyle Hidden 仍会在桌面上留下一个终端窗口,因为该窗口属于终端宿主,而不是 PowerShell。wscript 是一个 GUI 子系统宿主,自身没有控制台。 - dsh-update-icon.ico 是一个多尺寸 ICO(16/24/32/48/64/128/256),由仓库自有的 apps/web/public/favicon.svg 鲸鱼图标合成:该 SVG 被重新着色为品牌蓝 #4d6bfe(从 packages/skill/skill-badge/assets/dsh-badge.png 采样),用无头 Edge 栅格化,然后绘制到白色圆角图块上。注意该 favicon 带有一条 prefers-color-scheme: dark 规则,会将路径重绘为白色——必须在栅格化之前将其剥离,否则鲸鱼会变成透明背景上的白色而不可见。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ADDD1118/dsh-update
右上角一键检查新版本,退出时自动完成升级
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目