DeepSeek-Chan Sleep Shutdown: Automatic Shutdown After Task Completion (Whale Girl Button)

前言

在 DeepSeek Harness(DSH)里跑批量迁移、模型生成或过夜任务时,常见做法是盯着界面等全部会话空闲,再手动关电脑。社区里也有「任务结束再关机」类插件,多半偏功能型 UI。下面介绍的 deepseek-chan-sleep-shutdown(维护者 weiplwei,GitHub 分类为工作流)在同样能力上加了可拖动、可取消倒计时和深夜月亮主题界面,并在 Windows 上通过 shutdown.exe 执行关机。插件零依赖,当前版本 0.2.0,许可证 MIT。

这是什么

一句话:DSH Web 界面右下角一枚「DeepSeek-chan」鲸鱼娘胶囊按钮;开启后,当全部 root 会话从 running 回到 idle,且满足你设定的成功条件时,进入可取消的倒计时,到点自动关机。

实现上插件向页面注入按钮与横幅,服务端挂接 DSH 事件;非 Windows 平台会保持惰性并写日志,不会真正调用关机(见下文「适用场景与注意」)。

核心功能

界面与交互

  • 鲸鱼娘按钮:空闲时显示清醒形象与「任务完成后关机」;开启后切换睡觉形象与「已开启·任务完成后关机」,并带呼吸光晕等开启动效。资源路径为 assets/mascot-awake.webp / assets/mascot-sleep.webp;图片加载失败时退化为纯文本胶囊,功能不变。
  • 可拖动:位置写入 localStorage,并钳制在视口内。
  • 自动避让:与其他插件角落弹窗重叠时让位,弹窗消失后归位。
  • 倒计时:任务满足条件后,按钮外圈 conic-gradient 进度环与按钮上剩余秒数同步更新;上方深夜配色横幅显示倒计时,并提供「取消关机」。

关机逻辑

  • 多会话判定:全部 root 会话空闲才算本批次完成;子代理计入其 root 统计。
  • 仅成功时关机(默认):本批次无 agent/error 才进入倒计时;可在按钮右键「关机条件」里改为「无论成败都关机」,选项持久化到 $DSH_HOME/deepseek-chan-sleep-shutdown.json。
  • 可取消:倒计时内点「取消关机」会 POST /cancel 并执行 shutdown /a,同时退出模式;倒计时内任一会话开始新任务则撤消本次关机,模式保持开启。
  • 系统命令:倒计时开始时执行 shutdown /s /t <countdownSec + marginSec>(秒数见配置)。

稳定性与其它

  • SPA 自愈:约每 500ms 检查按钮/横幅是否被前端重渲染移除,必要时重新挂载。
  • 状态与资源:GET http://127.0.0.1:<port>/api/deepseek-chan-sleep-shutdown/state;吉祥物图片经 /api/deepseek-chan-sleep-shutdown/img/sleep.webp 与 /img/awake.webp 提供。
  • 运行日志:$DSH_HOME/deepseek-chan-sleep-shutdown.log。

服务端逻辑致谢 dsh-shutdown-after-task(MIT);事件挂接参考 dsh-win-toast-notify(MIT)。

安装与启用

DSH 生态里插件通过 dsh plugin 安装到指定 profile;社区目录在 SkillHub 插件页,与 DeepSeek / 幻方无官方从属关系,安装前建议自行查看仓库源码与许可证。

npm 发布后可用:

dsh plugin --profile web add deepseek-chan-sleep-shutdown

或从 GitHub 安装:

dsh plugin --profile web add github:weiplwei/DeepSeek-chan-sleep-shutdown

本地路径或 tarball:

dsh plugin --profile web add ./deepseek-chan-sleep-shutdown

安装后重启 DSH;右下角应出现鲸鱼娘按钮。若未出现,刷新页面(Ctrl+R)。Node 引擎要求 >=18(见 package.json)。

在 profile 的 cordis.patch.yml(或设置 > 插件配置)中可改默认行为:

- id: deepseek-chan-sleep-shutdown
  config:
    countdownSec: 60      # 倒计时秒数(10–600,默认 60)
    marginSec: 5          # 系统 shutdown /t 额外余量(0–60,默认 5)
    onlyOnSuccess: true   # 仅成功时关机(false = 完成即关,含出错)

卸载:

dsh plugin --profile web remove deepseek-chan-sleep-shutdown

典型用法

  1. 点右下角「任务完成后关机」,鲸鱼娘入睡、按钮进入已开启状态;需要时可拖到不挡操作的位置。
  2. 照常让 DSH 跑任务。
  3. 全部会话空闲且满足成功条件时,外圈进度环与横幅倒计时出现;不操作则到点关机。
  4. 若仍要继续使用电脑,在倒计时内点「取消关机」;或直接在倒计时期间发起新任务,插件会撤消本次关机并保持模式开启。

本地无完整 DSH 时,可用仓库内 mock 服务预览 UI:

node test/harness/server.js

浏览器打开命令输出的地址即可;细节见 test/harness/README.md。

适用场景与注意

适合:Windows 上长时间 unattended 任务,希望在「整批成功结束」后自动关机,又需要 60 秒(可配置)缓冲取消的场景。

务必注意:

  • 仅 Windows 会执行 shutdown.exe;其它平台勿指望真实关机。
  • 插件以当前 DSH 进程权限 运行,关机指令影响整台机器;安装与启用前应阅读 GitHub 仓库 源码。
  • 模式状态在内存中,DSH 重启后默认关闭,需重新点按钮。
  • 本批次有会话出错且「仅成功时关机」开启时,不会关机,横幅会说明原因,模式仍保持开启。

结尾

deepseek-chan-sleep-shutdown 把「任务完成后关机」做成可拖动、可取消、可配置成功条件的工作流插件,并用深夜月亮主题与鲸鱼娘按钮降低长时间等待时的操作成本。目录与说明见 SkillHub,源码与 Issue 见 GitHub。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye