dsh-power-switch:DSH 侧边栏优雅退出与 Windows 启动模式切换

前言

用 DeepSeek Harness(DSH)跑 Web UI 时,本地 dsh web 进程往往要手动在终端里结束,或在任务管理器里强杀。强杀容易丢未刷新的会话与设置。若希望下次启动时以「独立应用窗口」或「普通浏览器标签页」打开,通常还要自己改快捷方式或启动参数。下面介绍的 dsh-power-switch 由社区维护者 SanYe-SanJiu 发布,在 DSH 客户端侧提供侧边栏一键关闭进程,并在设置页的插件卡片里切换下次启动方式;仅支持 Windows。

这是什么

dsh-power-switch 是 DSH 的客户端插件(分类:Web UI / 进程相关能力)。它做两件事:通过 DSH 自带的优雅退出路径关闭本地 dsh web 进程;在 Settings → Plugins 对应卡片上选择下次启动是应用窗口还是普通标签页,保存后会更新桌面快捷方式并重启 DSH。插件以当前 DSH 进程权限运行,安装前建议在 GitHub 查看源码与 MIT 许可证。

维护者与仓库:SanYe-SanJiu/dsh-power-switch。社区目录页:SkillHub 插件条目。DSH 生态强调「一切皆插件」;SkillHub 等为独立社区站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

进程关闭(侧边栏)

在 Web UI 侧边栏底部会出现 ⏻ 按钮。点击后会确认,确认后通过 DSH 的 ctx.appExit 等官方优雅退出通道结束本地进程,而不是调用 shell 强杀,以便会话与设置先落盘。

启动模式切换(设置 → 插件)

在同名插件卡片上可在「应用窗口」与「普通标签页」之间切换。按一次即保存,插件会更新 Windows 桌面快捷方式(依赖 Windows Script Host 与 .lnk),并按宿主记录的启动方式重启 DSH。若当前环境无法安全重启,插件会明确拒绝并保持服务仍可用。

应用窗口模式依赖桌面快捷方式;在 macOS / Linux 上尚无等价实现。package.json 声明 "os": ["win32"],非 Windows 平台无法安装本包,避免主功能静默失效。

环境与版本要求

项目 要求
操作系统 Windows 10 或更高
DSH >=0.1.6-alpha.2 <0.1.7-0 \|\| >=0.1.7-0 <0.2.0-0 \|\| >=0.2.0-0 <0.3.0-0(见包内 engines.dsh)
Node.js >=20
Windows Script Host 桌面快捷方式层需要 cscript.exe / wscript.exe;若被组策略或杀软禁用,卡片会用文案说明,关闭按钮、设置区与模式开关不受影响

README 记载已在 0.1.6-alpha.2、0.1.7 线与 0.2.0-rc.2 等版本上验证。

安装与启用

安装前请先 cd 到 DeepSeek Harness 所在目录。下列三条命令等价,仅 DSH 调用方式不同(全局 dsh、源码构建后的 node apps\cli\lib\bin.js、或未构建时用 pnpm dsh):

dsh plugin --profile web add github:SanYe-SanJiu/dsh-power-switch#v1.1.9

--profile web 必填(与 dsh web / dsh --profile web 对应)。包声明 dsh.bundle.patch,安装后会自动写入 profile 的 dsh.profile.bundles,无需手改 JSON。

安装失败时的两种常见情况:

  1. 出现 ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION 时,对该次命令放宽 pnpm 发布龄策略(须用 kebab-case):
dsh plugin --profile web add github:SanYe-SanJiu/dsh-power-switch --config.minimum-release-age=0
  1. 网络较慢、github: 拉取超时,可一并加大 fetch 超时(示例与上一行组合使用):
dsh plugin --profile web add github:SanYe-SanJiu/dsh-power-switch --config.minimum-release-age=0 --config.fetchTimeout=600000

安装完成后重启 DSH 一次,打开 Settings → Plugins:列表中应出现 DSH power button 卡片,侧边栏底部出现 ⏻ 按钮。

跟踪 main 分支而不钉版本时(与钉 v1.1.9 不同):

dsh plugin --profile web add github:SanYe-SanJiu/dsh-power-switch

本地开发可用 link:<本仓库绝对路径> 形式安装,详见仓库 README。

典型用法

  1. 日常退出:在 Web UI 侧边栏底部点 ⏻,在确认对话框中确认,等待 DSH 走优雅退出并结束进程。
  2. 改启动方式:进入 Settings → Plugins,找到 DSH power button 卡片,在应用窗口 / 普通标签页之间切换;保存后快捷方式更新并自动重启。
  3. 卸载前:若当前为应用窗口模式且希望立刻恢复原来的启动方式,可在卡片上先切回普通标签页再卸载;否则下次双击快捷方式时,宿主侧逻辑也可恢复原始快捷方式。卸载命令:
dsh plugin --profile web remove dsh-power-switch

验证是否装妥:profile 的 dsh.profile.bundles 含该插件,且 node_modules\dsh-power-switch 为普通目录(link: 安装则为符号链接或 junction)。

适用场景与注意

  • 适合:主要在 Windows 上用 DSH Web UI,希望从界面内安全退出 dsh web,并偶尔在「像桌面应用一样开窗口」与「浏览器标签页」之间切换的用户。
  • 不适合:macOS / Linux 用户(包声明不支持);无法使用 Windows Script Host 的受限环境——此时模式切换与快捷方式相关能力会受限,但侧边栏关闭与插件设置区仍可用。
  • 安全习惯:插件与 DSH 同权限;只从上述 GitHub 仓库或你信任的 ref 安装,安装前阅读 cordis.patch.yml 与客户端注入逻辑。
  • 与简介的差异说明:社区简介里「应用模式关闭进程会自动关当前页面、标签页模式则不行」与 README 强调的「优雅退出整条 dsh web 进程」一致——退出的是宿主进程,不是仅关浏览器某一标签;具体 UI 行为以你使用的 DSH 版本为准。

结尾

dsh-power-switch 把「安全退出本地 DSH」和「Windows 下下次怎么启动」收进侧边栏与插件设置卡片,减少终端与快捷方式的手工操作。当前发行版本为 v1.1.9(MIT)。

  • 目录页:https://www.skillhub.cn/plugins/SanYe-SanJiu/dsh-power-switch
  • 源码与完整说明:https://github.com/SanYe-SanJiu/dsh-power-switch
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜