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

标题栏重启 kee0012/dsh-restart

DeepSeek Harness
kee001223 天前有提交已提供中文文档扫描:含敏感能力

点标题栏按钮一键重启整个应用并回到原工作区

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · ui
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 23 天前
档位由哪些信号合成

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

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

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 20 处,展示前 20 条)
  • 写入本地文件
    lib/index.js:100
    appendFileSync(LOG_PATH, `[${new Date().toISOString()}] ${message}\n`, "utf8");
  • 执行外部命令来自配置/变量
    lib/index.js:581
    execFile(file, args, options, (error, stdout, stderr) => {
  • 写入本地文件
    lib/index.js:614
    writeFileSync(helperPath, `\uFEFF${script}`, "utf8");
  • 读取本地文件
    lib/index.js:668
    if (statSync(helperReady).mtimeMs >= notBefore) return true;
  • 执行外部命令固定命令
    lib/index.js:711
    const child = spawn(
  • 删除本地文件
    lib/index.js:729
    rmSync(helperReady, { force: true });
  • 执行外部命令固定命令
    lib/index.js:749
    const child = spawn("/bin/sh", [helperPath], {
  • 发起网络请求
    lib/client.js:101
    fetch(PING_ROUTE, { cache: "no-store" })
  • 发起网络请求
    lib/client.js:144
    const ping = await fetch(PING_ROUTE, { cache: "no-store" });
  • 发起网络请求
    lib/client.js:154
    response = await fetch(RESTART_ROUTE, {
  • 发起网络请求
    src/client/index.ts:101
    fetch(PING_ROUTE, { cache: "no-store" })
  • 发起网络请求
    src/client/index.ts:144
    const ping = await fetch(PING_ROUTE, { cache: "no-store" });
  • 发起网络请求
    src/client/index.ts:154
    response = await fetch(RESTART_ROUTE, {
  • 写入本地文件
    src/index.ts:100
    appendFileSync(LOG_PATH, `[${new Date().toISOString()}] ${message}\n`, "utf8");
  • 执行外部命令来自配置/变量
    src/index.ts:581
    execFile(file, args, options, (error, stdout, stderr) => {
  • 写入本地文件
    src/index.ts:614
    writeFileSync(helperPath, `\uFEFF${script}`, "utf8");
  • 读取本地文件
    src/index.ts:668
    if (statSync(helperReady).mtimeMs >= notBefore) return true;
  • 执行外部命令固定命令
    src/index.ts:711
    const child = spawn(
  • 删除本地文件
    src/index.ts:729
    rmSync(helperReady, { force: true });
  • 执行外部命令固定命令
    src/index.ts:749
    const child = spawn("/bin/sh", [helperPath], {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

功能亮点

  • 一键重启整个应用
  • 回到原工作区

DSH 桌面版标题栏重启按钮:一键重启整个应用(含 shell 与宿主进程)。

README

由 DeepSeek 最新模型翻译生成
dsh-restart 给 DeepSeek Harness(DSH)加一个重启按钮:点一下就把整个应用重启,回到原来的工作区。 简介 DSH 桌面版(Electron 外壳 + 它管理的服务端进程)没有提供任何界面内的重启入口:改完插件的服务端代码后,只能退出托盘再从快捷方式重新打开。本插件补上这个入口——一个直接落在窗口标题栏的重启按钮。 插件是普通 DSH 插件包,安装在你的 DSH profile 里(desktop 或 web),不修改 DSH 自身文件。按钮只有一个,没有「关闭」。 ┌─────────────────────────────── 标题栏 ───────────────────────────────┐ │ 应用 编辑 [ ↻ ] — ❐ ✕ │ └──────────────────────────────────────────────────────────────────────┘ ↑ 本插件 ↑ 系统原生按钮 功能特性 * 标题栏重启按钮:位于标题栏最右侧、系统窗口控制按钮(— ❐ ✕)的左边,点击即重启整个应用。 * 只有重启,没有关闭:不会误触退出,也不会触发外壳的崩溃恢复对话框。 * 按钮总在:没有桌面标题栏的环境(例如浏览器里的 dsh web、macOS 桌面)自动回退到会话头部工具区,渲染同一个按钮,两种位置互斥。
展开完整文档(README 剩余 1 节)
dsh-restart

给 DeepSeek Harness(DSH)加一个重启按钮:点一下就把整个应用重启,回到原来的工作区。

简介

DSH 桌面版(Electron 外壳 + 它管理的服务端进程)没有提供任何界面内的重启入口:改完插件的服务端代码后,只能退出托盘再从快捷方式重新打开。本插件补上这个入口——一个直接落在窗口标题栏的重启按钮。

插件是普通 DSH 插件包,安装在你的 DSH profile 里(desktop 或 web),不修改 DSH 自身文件。按钮只有一个,没有「关闭」。

┌─────────────────────────────── 标题栏 ───────────────────────────────┐ │ 应用 编辑 [ ↻ ] — ❐ ✕ │ └──────────────────────────────────────────────────────────────────────┘ ↑ 本插件 ↑ 系统原生按钮

功能特性

* 标题栏重启按钮:位于标题栏最右侧、系统窗口控制按钮(— ❐ ✕)的左边,点击即重启整个应用。
* 只有重启,没有关闭:不会误触退出,也不会触发外壳的崩溃恢复对话框。
* 按钮总在:没有桌面标题栏的环境(例如浏览器里的 dsh web、macOS 桌面)自动回退到会话头部工具区,渲染同一个按钮,两种位置互斥。
* 重启期间有反馈:先出现整屏「DSH 正在重启…」提示,再整体退出并自动重新打开;失败时弹出错误气泡并给出日志位置。
* 零第三方依赖:不使用运行时依赖,不联网下载任何东西。

安装

插件托管在 GitHub(kee0012/dsh-restart,未发布到 npm),DSH 支持以 git 依赖方式直接安装:

从 GitHub 安装(推荐,日常使用;拉取默认分支最新提交)
dsh plugin --profile desktop add github:kee0012/dsh-restart

安装后需要重启 DSH,新的服务端代码与 client bundle 才会生效。

卸载:dsh plugin --profile desktop remove dsh-restart,然后重启 DSH。

使用

1. 安装并重启 DSH 后,标题栏右侧会出现一个环形箭头按钮(标题栏不可用时则在会话头部)。
2. 悬停可见提示「立即重启 DeepSeek Harness(当前运行中的任务会中断)」。
3. 点击 → 出现「DSH 正在重启…」整屏提示 → 应用整体退出并自动重新打开 → 回到原来的工作区。
4. 若应用没有自动回来,按提示手动启动 DSH 即可;具体原因记录在日志里(见下一节)。

配置

无需配置,安装后即可使用。按钮位置按系统原生窗口按钮的宽度自动计算(见「已知限制」)。

兼容性

* Profile:desktop(桌面版,按钮落在窗口标题栏)与 web(dsh web,按钮落在会话头部工具区)。
* 操作系统:Windows 桌面版为主要目标;macOS 桌面与 dsh web 走同构的 POSIX 路径。
* 运行环境:Windows 需要 PowerShell 5.1+(系统自带)。不依赖 Node 之外的任何运行时。

实现方式

插件注册一个同源 HTTP 路由,由一段临时脚本在应用外部重启整个应用;脚本经 .NET 进程接口创建并 detached 脱离 DSH 的进程树(否则它会随被关闭的进程一起消失),关闭旧实例、等端口释放后重新拉起应用,并在任务结束时删除自己。脚本内含宿主的环境变量快照,因此只写在当前用户的临时目录、任务结束即自删;同目录还有一份诊断日志,仅在排查「点了没反应」时才有用。

「应用是否已经在运行」不靠进程名或父子关系判断,而是认它的窗口:枚举顶层窗口,只有属于本应用、可见、没有 owner、且窗口类名恰为 Chrome_WidgetWin_1 的才算一个实例。原因是打包后的 CLI 会在应用退出后留下一个没有窗口的 dsh-desktop-host 孤儿进程(父进程已死,于是它看起来也像「树根」),按进程关系判断会把它当成正在运行的应用,于是旧实例被关掉后再也不会有新的被拉起来。窗口探测失败时只记日志并照常拉起,绝不把「探测不出来」当成「已经在运行」。

已知限制

* 重启是整应用级的:所有窗口与未保存的输入都会一起消失(这是桌面版外壳的设计使然——只重启服务端会被判成崩溃)。
* 服务端代码不热重载:修改插件 src/ 后需要重新构建并重启 DSH,改动才生效。
* 标题栏按钮的位置按原生窗口按钮的宽度估算;若系统使用超大字号或非默认 DPI 缩放导致原生按钮变宽,按钮可能与其重叠或留缝。
* macOS 桌面的按钮落位与 Windows 相同,但重启路径(终止进程后重新打开应用)尚未在真机验证。
* Windows 依赖 PowerShell;它不可用时插件会退回到较弱的启动方式,重启可能失败(日志里有记录)。
* 助手脚本先用进程外的 .NET 进程接口拉起,且必须回报一次「我已就位」宿主才继续:脚本第一句会写一个就绪标记,宿主等到标记才去关闭应用。若助手没能起来,宿主会直接放弃这次重启并留下日志,而不会先把应用关掉——「关了却回不来」正是这条就绪握手机制要防的事。
* 与社区插件 PangXitong/dsh-restart-button 同时安装会出现两个重启入口,建议只保留一个。

反馈与贡献

发现了 bug 或有功能建议,欢迎在 Issues 中反馈。提 PR 前请先跑通通用的构建与检查命令。

从源码构建

npm run bundle # src/ → lib/(零依赖,仅用 Node 内置模块)
npm run gates # 产物一致性门禁
npm test # 单元与集成测试
npm run test:e2e # 助手脚本自删与重拉(会真的起进程,但不动正在运行的应用)
npm run test:sim # 启动握手离线取证:只报 pid 而不真启动的 launcher 必须被判失败

src/ 是唯一的手写来源,lib/ 由构建脚本生成,请不要手改 lib/。

许可证

MIT。重启按钮的落位思路参考了社区插件 PangXitong/dsh-restart-button 的公开实现(Apache-2.0);本仓库为独立重写,只保留重启功能。
预览分享卡片长什么样 ↓kee0012/dsh-restart
分享 · DeepSeek Harness Hub
kee0012/dsh-restart

点标题栏按钮一键重启整个应用并回到原工作区

回到顶部