Repository navigation
Releases: hongdougao111/dsh-power-switch
Release list
v0.1.5 · 跟着 DSH 搬家
⚡ dsh-power-switch 0.1.5
跟着 DSH 搬家。 升级后插件差点原地去世,这版修好了。
症状
升级完 DSH,右上角电源键没了。插件在依赖里躺着、node_modules 软链接也在,就是不见踪影。
原因是 cordis.patch.yml 的注册被升级过程清掉了,dsh.profile.bundles 里也没了它。
新版加载链路是 依赖 → bundles[] → 那个包的 patch → insert 行,不在 bundles 里,patch 根本不会被读。
这次升级还搬了家
| 项目 | 以前 | 现在 |
|---|---|---|
DSH_HOME |
C:\Users\...\.dsh |
D:\dsh-home |
| profile 目录 | ~/.dsh/profiles/desktop |
D:\dsh-home\profiles\desktop |
插件从不写死路径,全靠 process.execPath / process.ppid 现场探测,所以换盘符没影响;
DSH_HOME 是用户级环境变量,helper 全量继承 process.env,新实例照样找得到家。
新增环境体检
helper 日志首行现在会写:
[dsh-power-switch] env: DSH_HOME=D:\dsh-home profile=(unset)
GET /dsh-power-switch/api 也返回 environment 字段。下次再搬家,一眼看出是不是环境问题。
兼容性逐项核对
webServer.getOrigin() / register() / 两个 slot / process.once("disconnect") /
fail() 门控 / requestSingleInstanceLock() —— 全部未变,无需改代码。
主进程新出现的 --updated 参数也查过了:只是 raiseAfterUpdate(更新后置顶窗口),
不是启动必需项,所以重放裸 exe 是对的。
实测
env: DSH_HOME=D:\dsh-home profile=(unset)
ending electron main process 16360
taskkill /PID 16360 /F ok
port 64006 released
relaunched E:\DSH\DeepSeek Harness.exe as pid 8436
restart complete (pid 8436)
reap: no stale processes
崩溃日志 10 → 10,新版下零新增。
安装
dsh plugin add dsh-power-switch装完如果按钮没出现,检查 DSH_HOME/profiles/<profile>/package.json 的 dsh.profile.bundles 里有没有 dsh-power-switch。
v0.1.4 · 那个弹窗,终于被送走了
⚡ dsh-power-switch 0.1.4
右上角一枚电源键,两下点击真的重启 / 关闭 DSH 进程。
本版重点
1. 弹窗没了 🎉
杀的是 Electron 主进程本身(taskkill /F 不带 /T),主进程都没了自然没人弹框;
宿主在 IPC 断开后自己走一遍优雅关闭,日志正常落盘。
2. 「进程还在」不等于「起来了」 👀
改为查 MainWindowHandle,真的画出窗口才算成功。
unknown(探测不到)不再当失败,进程还活着就算起来了 —— 宁可少杀一次,也别误杀。
3. 顺带收拾残留进程 🧹
按启动时间切分,清掉上一轮剩下的渲染器 / GPU 进程,并排除 helper 自身。
4. 日志轮转 📜
单份超过 1MB 自动转 .1。
实测
ending electron main process 10036
taskkill /PID 10036 /F ok
port 58384 released
relaunched ... as pid 27824
restart complete (pid 27824)
reap: no stale processes
崩溃日志 10 → 10,连续四轮重启零新增。
安装
下载下方 dsh-power-switch-0.1.4.zip,解压后放到插件目录,或者直接:
dsh plugin add dsh-power-switch已知限制
- 仅 Windows + DSH Desktop
- 残留清理是 best effort,不保证 100%
- 强杀可能跳过
before-quit,Cookie / LocalStorage 不保证落盘(会话日志有宿主shutdown兜底)