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

关机守卫 ltayshark0637/dsh-Shutdown-Guard

作者已认领DeepSeek Harness
ltayshark06370 天前有提交已提供中文文档扫描:未发现敏感能力

任务全部完成后自动关机,异常情况自动拦截

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 0 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

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

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    lib/client.js:442
    return fetch(BASE + '/state?since=' + lastEventAt, { cache: 'no-store' })
  • 发起网络请求
    lib/client.js:456
    return fetch(BASE + path, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

为Deepseek Harness中的侧边栏添加「所有任务完成后自动关机」卡片,拥有更好且多样的视觉效果、判定逻辑与个性化定制。位于「技能中心」下方、会话列表上方,随任务状态实时变化。

README

由 DeepSeek 最新模型翻译生成
Shutdown Guard · 任务完成后关机 中文 · English · Русский 给 DeepSeek Harness 的侧边栏加一张「所有任务完成后自动关机」卡片,视觉效果更好、样式更多,判定逻辑更细,还能个性化定制。卡片位于「技能中心」下方、会话列表上方,随任务状态实时变化。 ▶ 交互演示页 —— 不用装插件,先看它长什么样、怎么判断。左右两页:了解(判定、外观、状态)和 试一试(随机一个场景,亲手点武装、取消、解除,一路看到关机或阻断)。数据全部本地随机,不联网。 为什么需要它 跑长任务的人常遇到这种场景:晚上让智能体把一批活干完,想让它干完就关机,人不在跟前。 但「任务结束」不等于「可以关机」——后台任务还在跑、会话报错了、智能体在等你回答问题、你在半路手动终止了……这些情况下关机全是事故。这个插件把这些情况逐个挡下来,只有真的可以关的时候才关。
展开完整文档(README 剩余 1 节)
Shutdown Guard · 任务完成后关机

中文 · English · Русский

给 DeepSeek Harness 的侧边栏加一张「所有任务完成后自动关机」卡片,视觉效果更好、样式更多,判定逻辑更细,还能个性化定制。卡片位于「技能中心」下方、会话列表上方,随任务状态实时变化。

▶ 交互演示页 —— 不用装插件,先看它长什么样、怎么判断。左右两页:了解(判定、外观、状态)和 试一试(随机一个场景,亲手点武装、取消、解除,一路看到关机或阻断)。数据全部本地随机,不联网。

为什么需要它

跑长任务的人常遇到这种场景:晚上让智能体把一批活干完,想让它干完就关机,人不在跟前。

但「任务结束」不等于「可以关机」——后台任务还在跑、会话报错了、智能体在等你回答问题、你在半路手动终止了……这些情况下关机全是事故。这个插件把这些情况逐个挡下来,只有真的可以关的时候才关。

判定:什么时候才关

处于阻断态(见下文)时直接不下发;其余五道闸门同时满足才下发 shutdown /s:

1. 已武装 —— 你手动点的
2. 没有倒计时在跑 —— 避免重复下发
3. 所有 root 会话都空闲 —— 没有任何智能体还在干活
4. 没有运行中 / 停止中的后台任务 —— blockOnJobs,默认开
5. 本批次没有会话报错 —— onlyOnSuccess,默认开

缺任何一条都不关,并把原因写在卡片和设置页里。

三种外观

| A · 警戒带 | B · 雷达 | C · 终端 |
| 大字状态 + 底部滚动的红黄斜纹 | 同心圆 + 扫描光束,会话与后台任务以圆点呈现 | 命令行摘要 + 六段判定条件指示灯 |

雷达里的圆点按数量增删、不重排:数量变化时,你正在看的那几个点不会跳位置。

在设置里切换,立即生效,无需重启。

六种运行状态

| 未开启 | 待命 | 等待后台任务 |

| 倒计时 | 已下发 | 阻断 |

未开启 → 待命 → 等待后台任务 → 倒计时 → 已下发;任意阶段遇到阻断性错误会进入 阻断。倒计时期间随时可取消,取消后仍保持武装——下一批任务干完照样会关。

想在这六种状态之间来回看?演示页「了解」第 04 节右上角有 A B C 三枚胶囊,切换的是当前预览用哪种外观。

阻断态

| halted · 需人工处理 | waiting · 自动重试 |

遇到没法当普通失败处理的错误,插件不解除武装,卡片转色、把原因写出来:

- halted(灰蓝)—— 额度不足、凭证失效、上下文超限、能力不支持、磁盘写满。只有人能处理,点「解除并重试」。
- waiting(灰绿,圆点呼吸)—— 限流、5xx、网络中断、空响应、超时、图片卸载。按策略自动重试,到点注入「继续原计划」指令。

重试节奏按故障类型分别配置,见 重试策略。

AFK 自动接管

人不在跟前时,插件替你顶三件事:

- 自动回答提问(默认开):agent 问你问题时,回复「用户处于 AFK,先完成已交代的任务,汇总报告并落盘,不碰未交代的分支」。返回 selected: [] + 自定义文本,不会替你选中任何选项;关掉后提问照常抛给你。
- 错误恢复:会话报错时先要求 agent 排查并继续原计划;同一会话再次失败改为「停止重试、写报告收尾」。
- 中断保护:你在半路手动终止任务,不会触发关机。

装在哪里

| 武装时:技能中心下方、会话列表上方 | 倒计时:同一位置,整条转红 |

卡片目前固定在侧边栏的这个位置。后续计划把它做成可以独立出现的形态(设置里给个开关),届时这里会补充说明。

其他

- 纵向折叠:收起只留标题和状态,点标题展开。

- 主题自适应:卡片自带 --dsp-* 调色板,按宿主表面亮度自动取深浅色;也可强制锁定深色 / 浅色 / Claude Style 配色。

- 事件日志:设置页里能看最近的事件与「上次为什么没关机」,完整流水在 data/events.log。

设置页

| 深色 | 浅色 |

分三组:外观 / 何时关机 / 状态。所有开关立即生效。

- 默认配置锁定 60 秒不可改;另有 8 个自定义档位可自由调。
- 「会话都停下来」是底线条件,始终开启,不可关。
- 「后台任务跑完」挡后台任务,「有会话报错就跳过这一轮」挡出错批次。
- 「AFK 自动回答」控制武装期间是否替你回复提问;说明里写明「回复不会替你选中任何选项,关闭后提问照常弹给你」。

浅色与第三方主题

| 浅色卡片 | Claude Style |

卡片不套用宿主配色,自带调色板;设置页则跟宿主主题走。第三方的 Claude Style 也有对应配色。

安装

已发布到 npm,推荐:

dsh plugin --profile web add dsh-shutdown-guard

或者直接从 GitHub 装:

dsh plugin --profile web add github:ltayshark0637/dsh-Shutdown-Guard

装完重启 DSH。

⚠️ 客户端 bundle 只在 DSH 启动时编入模块图:改 lib/client.js 后必须重启,刷新页面无效。服务端同理。

网络受限时:GitHub 那条本质是 pnpm add github:...,需要 clone。若 clone 不通,优先用 npm 那条(走 registry);都不通再用本地路径安装——DSH 设置 → 插件 → 添加,填本目录的绝对路径 → 安装 → 重启。

手工兜底:在 profiles\web 下建 node_modules\dsh-shutdown-guard 软链指向本目录,然后:

- profiles\web\package.json 的 dependencies 与 pnpm.overrides 加 link:<本目录绝对路径>
- dsh.profile.bundles 追加 dsh-shutdown-guard

权限与影响

装上之后,这个插件会做以下几件事:

| 影响面 | 具体行为 |
| 执行命令 | 经 subprocess 调 Windows 的 shutdown.exe:/s /t <秒> 安排关机、/a 取消。只在武装且五道闸门全满足时才调 |
| 读写文件 | 只在插件目录下的 data/:config.json(配置)与 events.log(事件日志) |
| 监听事件 | agent/status、agent/error、session/event、user-questions/request |
| HTTP 路由 | 本机 DSH Web 服务下 /api/dsh-shutdown-guard/ 的 GET /state、GET /events、POST /arm、POST /disarm、POST /cancel、POST /config;POST 校验 Origin 必须为 127.0.0.1 或 localhost |
| 网络 | 不发起任何外部请求,不收集数据 |
| 平台 | 仅 Windows。非 win32 时插件静默不加载 |

AFK 自动接管开启时,插件会在武装期间替你回答智能体的提问、并向报错会话注入恢复指令;这个开关在设置里可以随时关掉。

配置

写在 cordis.patch.yml(插件包内的补丁),或经 POST /config 在运行时修改。

| 键 | 范围 | 默认 | 说明 |
| countdownSec | 10–600 | 60 | 关机前倒计时秒数(默认配置档固定 60,不可改) |
| marginSec | 0–60 | 5 | 传给 shutdown /t 的额外余量 |
| onlyOnSuccess | bool | true | 本批次有会话报错时跳过关机 |
| blockOnJobs | bool | true | 有运行中的后台任务时跳过关机 |
| afkAutoAnswer | bool | true | 武装期间替用户回答提问、做错误恢复 |
| language | 枚举 | auto | 界面语言;auto 跟随系统语言,也可固定为 zh / en / ru |

重试策略

每个错误码分配一个策略名,策略本身可配置:

| 策略 | 默认节奏 | 分配给 |
| rate-limit | backoff 30 → 60 → 120 → 240 → 300 封顶 | RATE_LIMIT |
| transient | 固定 20 秒 | SERVER / TRANSPORT / TIMEOUT |
| empty | 固定 30 秒 | EMPTY_RESPONSE |
| offload | 固定 5 秒 | IMAGE_OFFLOAD_REQUIRED |

限流用退避而不是固定间隔,是因为对限流服务高频重试会延长限流期,而不只是浪费请求。5xx 和网络故障恢复时间可预测,固定间隔反而更快。图片卸载是本地磁盘操作,几乎立刻可重试,所以给 5 秒。

覆盖单个错误码:

retryAssign:
RATE_LIMIT: slow-limit
retryPolicies:
slow-limit: { mode: backoff, base: 60, max: 900 }

未知 code 回落 transient;形状写错的策略会被丢弃并保留默认值。当前生效的分配可从 /state 的 retryAssign、retryPolicies 读到。

UI 偏好存在浏览器 localStorage:dsh-shutdown-guard.variant / .theme / .folded。

HTTP 接口

前缀 /api/dsh-shutdown-guard,供卡片自己的同源轮询使用:

| 方法 | 路径 | 说明 |
| GET | /state?since=<ms> | 完整状态 + 增量事件 |
| POST | /arm /disarm /cancel | 武装 / 解除 / 取消本次倒计时 |
| POST | /config | 改配置:customEnabled、activeProfileId、profileId+patch、afkAutoAnswer、language |
| GET | /events?since=&limit= | 事件流水 |
非本机 Origin 的 POST 返回 403;非 POST 返回 405。

日志

- <插件目录>\data\events.log —— 人类可读的事件流水(config / afk / skip 分类),设置页「事件日志」即读它
- <DSH_HOME>\dsh-shutdown-guard.log —— 进程级追加日志

开发

node test/host.test.mjs # 服务端:26 项断言,mock ctx,不真的关机
node test/client.test.cjs # 客户端 bundle smoke
node scripts/gen-gallery.cjs # 从 lib/client.js 真实 CSS 生成截图页
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/screenshot.ps1 # headless Edge 渲染 PNG(透明背景 + 自动裁边)
node scripts/gen-gif.cjs # 生成 README 里的三张动图
node scripts/gen-banner.cjs # 生成 1280x640 的社交预览图
node scripts/gen-demo.cjs # 生成 docs/demo.html(交互演示页)

截图全部由 lib/client.js 里的真实 CSS 生成,不会与产品脱节。动图同理:把 CSS 动画用 animation-delay 冻结在若干时间点逐帧截图,再用内置的 GIF89a 编码器合成——本机不需要 ffmpeg 或 ImageMagick。

演示页面的「了解」部分同样是实时渲染:六种状态用与产品同一套 card() 标记现场生成,不是截图。

常见问题

Q:为什么改了设置没反应? A:服务端和客户端都得重启 DSH 才加载新代码。本机 HMR 对本地链接插件不生效。

Q:武装后为什么不关机? A:看设置页「上次为什么没关机」,那里写着具体原因(后台任务、报错、未武装等)。

Q:倒计时期间能反悔吗? A:能。卡片上的「取消关机」或直接 shutdown /a 都行,取消后仍保持武装,下一个批次继续生效。

Q:会误关机吗? A:默认配置下,插件要看到「所有会话空闲 + 没有后台任务 + 没有报错 + 你手动武装」四条同时成立才动手,其中任何一条被打破都会取消或跳过。手动终止任务也已被识别并排除。

Q:非 Windows 能用吗? A:暂时不能,等待后续开发。

约束

- 仅 Windows:非 win32 平台早退,不挂载。
- 零运行时依赖:服务端只用 node:fs / node:path / node:crypto,浏览器只 require('react')。
- 不修改 app.asar 与 DSH 源码。

许可

MIT
预览分享卡片长什么样 ↓ltayshark0637/dsh-Shutdown-Guard
分享 · DeepSeek Harness Hub
ltayshark0637/dsh-Shutdown-Guard

任务全部完成后自动关机,异常情况自动拦截

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部