前言¶
DSH 的 Web UI 适合长时间连续使用,但连续编码、调试或跑会话时,很容易在深夜或连续数小时后仍在操作。dsh-prevent-scd 是一个面向 DeepSeek Harness(DSH)Web UI 的插件,用来检测深夜或连续数小时的人工操作,并在浏览器端用护士猫提醒休息。
它不改变 DSH 的主流程,而是在 DSH Web 会话旁增加一个休息提醒层:宿主侧监听真实用户消息,浏览器侧展示状态条、卖萌弹窗和全屏阻塞 overlay。
这是什么¶
Codingendless/dsh-prevent-scd 由 Codingendless 维护,许可证为 MIT,分类为趣味换装。
它的一句话定位是:检测深夜或连续数小时人工操作,用护士猫拦截 Web UI 提醒休息。
插件强调本地化运行:无外部资产、无网络调用,可离线工作。
核心功能¶
下面介绍已核实的几项能力。
- 检测深夜或连续数小时的人工操作,并提醒休息。
- 监听 DSH
session/event中的真实user/message;插件注入事件和历史回放事件不计为人工操作。 - 在浏览器端提供状态条、卖萌弹窗和全屏阻塞 overlay,使用内嵌 SVG 与 CSS 动画。
- 支持可配置阈值,包括
maxWorkMinutes、idleBreakMinutes、深夜窗口、cooldown和snooze。 - 状态持久化到
$DSH_HOME/prevent-scd/state.json,重启dsh后保留。 - 提供 HTTP 端点:
-GET /prevent-scd/state.json
-POST /prevent-scd/ack
安装与启用¶
资料给出的安装命令是本地路径安装方式:
dsh plugin --profile web add -w "path/to/dsh-prevent-scd"
安装后需要重启 dsh web 服务。profile bundle 列表变更需要重启,运行中的实例不受影响。
卸载命令:
dsh plugin --profile web remove dsh-prevent-scd
典型用法¶
覆盖配置¶
在 profile 的 cordis.patch.yml 中按 id prevent-scd 覆盖 config。例如:
- id: prevent-scd
config:
maxWorkMinutes: 120
idleBreakMinutes: 20
lateNightStart: '23:00'
lateNightEnd: '06:00'
这里的 maxWorkMinutes、idleBreakMinutes、lateNightStart 和 lateNightEnd 对应连续工作上限、无操作中断阈值、深夜窗口开始和结束时间。
浏览器轮询¶
浏览器端可通过状态快照接口轮询当前状态:
GET /prevent-scd/state.json
资料中的示例频率是每 15 秒一次。
用户回应¶
当插件触发休息提醒后,用户可通过 ack 接口回应:
POST /prevent-scd/ack
请求体示例:
{ "kind": "rest" }
或:
{ "kind": "snooze" }
依赖与部署注意¶
已核实的依赖信息如下:
dependencies:
@deepseek-ai/cordis ^4.0.1
@deepseek-ai/schemastery ^3.18.1
peerDependencies:
@deepseek-ai/dsh-client-runtime ^0.1.0-rc.6
@deepseek-ai/dsh-host-webserver ^0.1.0-rc.6
README 提示:pnpm 对 link: 依赖不安装传递依赖。换机器部署时,需要在插件目录执行:
pnpm install
或把 @deepseek-ai/cordis、@deepseek-ai/schemastery 安装到可达的 node_modules。
适用场景与注意¶
适合在 DSH Web UI 中做长时间连续操作,并希望被提醒休息的用户。尤其适合深夜使用或长时间连续编码、调试、跑会话的场景。
需要注意:插件会随 dsh web 服务加载,并以当前 dsh 进程权限运行。安装前应检查源码、依赖和许可证。本插件许可证为 MIT。
如果只想清理计时状态,可以删除:
$DSH_HOME/prevent-scd/
相关链接¶
- 插件目录页:
https://www.skillhub.cn/plugins/Codingendless/dsh-prevent-scd - GitHub:
https://github.com/Codingendless/dsh-prevent-scd