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

启停控制台 brittanistrehlowll-oss/dsh-lifecycle

DeepSeek Harness
brittanistrehlowll-oss70 天前有提交已提供中文文档扫描:含敏感能力

在网页端一键重启或关闭服务,停止后仍可重新启动

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · dev
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 70 天前
档位由哪些信号合成

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

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

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    lib/dsh-restart-button.mjs:75
    const text = await readFile(pidFile, 'utf8');
  • 写入本地文件
    lib/dsh-restart-button.mjs:637
    await writeFile(requestFile, `restartId=${restartId} requested by restart-button at ${new Date().toISOString()}\\n`, 'utf8');
  • 写入本地文件
    lib/dsh-restart-button.mjs:659
    await writeFile(stopFile, `stopId=${actionId} requested by restart-button at ${new Date().toISOString()}\\n`, 'utf8');
  • 发起网络请求
    controller/dsh-controller.mjs:70
    const req = http.get(url, { timeout: timeoutMs }, res => {
  • 写入本地文件
    controller/dsh-controller.mjs:152
    await writeFile(marker, `${action}Id=${id} requested by dsh-controller at ${new Date().toISOString()}\n`, 'utf8');
  • 读取本地文件
    controller/dsh-controller.mjs:382
    const s = await stat(file);
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

功能亮点

  • 一键重启或关闭服务
  • 停止后可重新启动
  • 独立启动页

DeepSeek Harness 网页版的生命周期控制:重启/停止按钮、接管浮层、独立启动页(中英双语)

README

由 DeepSeek 最新模型翻译生成
dsh-lifecycle dsh-lifecycle 为 DeepSeek Harness 网页端提供完整的生命周期控制:侧边栏的 重启 / 关闭 按钮、重启过程中的 macOS 风格全屏接管界面,以及 DSH 停止后仍可用的独立启动页面。 面向普通用户设计:界面不出现 PID、端口、Watchdog 等技术名词。真正的进程管理由一组标记文件 + 外部 watchdog 进程完成——插件绝不直接终止宿主进程(会话内重启是自杀式的,因为 agent 运行在宿主作业对象内)。 功能 - 重启 —— 确认卡片 → 全屏接管层(柔和模糊 + 呼吸图标)→ 新实例就绪后自动恢复,无需手动刷新。 - 关闭 —— 确认卡片 → 通过标记优雅停止 → 自动跳转独立启动页。 - 独立启动页 —— 由 dsh-controller 在 http://127.0.0.1:3081/ 提供;DSH 停止后依然可用,随时可以再次启动 DSH。 - 真正的重启判定 —— 每次启动生成 bootId,重启前后比对;旧实例残留的 HTTP 200 不会被误判为成功。 - 慢启动与失败状态 —— 45 秒显示「启动时间比平时稍长」,90 秒出现恢复卡片(可重试)。 - 界面零技术名词。
展开完整文档(README 剩余 1 节)
dsh-lifecycle

dsh-lifecycle 为 DeepSeek Harness 网页端提供完整的生命周期控制:侧边栏的 重启 / 关闭 按钮、重启过程中的 macOS 风格全屏接管界面,以及 DSH 停止后仍可用的独立启动页面。

面向普通用户设计:界面不出现 PID、端口、Watchdog 等技术名词。真正的进程管理由一组标记文件 + 外部 watchdog 进程完成——插件绝不直接终止宿主进程(会话内重启是自杀式的,因为 agent 运行在宿主作业对象内)。

功能

- 重启 —— 确认卡片 → 全屏接管层(柔和模糊 + 呼吸图标)→ 新实例就绪后自动恢复,无需手动刷新。
- 关闭 —— 确认卡片 → 通过标记优雅停止 → 自动跳转独立启动页。
- 独立启动页 —— 由 dsh-controller 在 http://127.0.0.1:3081/ 提供;DSH 停止后依然可用,随时可以再次启动 DSH。
- 真正的重启判定 —— 每次启动生成 bootId,重启前后比对;旧实例残留的 HTTP 200 不会被误判为成功。
- 慢启动与失败状态 —— 45 秒显示「启动时间比平时稍长」,90 秒出现恢复卡片(可重试)。
- 界面零技术名词。
- 左下角统一控制栏 —— 若同时安装可选的 dsh-quota-panel 插件,其额度胶囊(¥ 余额 ● 用量%)会被自动并入左下角的同一控制栏,与「重启 / 关闭」按钮用细分隔线隔开——两个角落的元素合并为一个整体控制区。

架构

浏览器(DSH 页面 / 启动页) │ ▼ ┌────────────────────────────┐ │ dsh-controller (3081) │ 独立进程,DSH 停止后仍运行 │ 启动页 + /api/status │ └──────────────┬─────────────┘ │ 只写标记文件(绝不杀进程) ▼ ┌────────────────────────────┐ │ watchdog(PowerShell) │ 轮询标记,负责真正的生命周期 │ restart / stop / start │ └──────────────┬─────────────┘ ▼ ┌────────────────────────────┐ │ DeepSeek Harness (3080) │ └────────────────────────────┘

标记协议

| 标记文件 | 写入方 | 消费方 | 效果 |
| logs/restart.requested | 插件 /api/restart | watchdog | 强制停止 + 启动新实例 |
| logs/stop.requested | 插件 /api/stop | watchdog | 停止 DSH,控制器保持运行 |
| logs/start.requested | 控制器 /api/start | watchdog | 启动 DSH |

安装

1. 将文件复制到 DSH 根目录(<dsh-root>,即包含 home/ 与 node_modules/ 的目录):

cp lib/dsh-restart-button.mjs <dsh-root>/home/profiles/web/plugins/
cp controller/dsh-controller.mjs <dsh-root>/
cp scripts/Start-DSH-Watchdog.ps1 <dsh-root>/
cp scripts/Start-DSH-Web-Detached.ps1 <dsh-root>/

2. 在 profile 补丁中注册插件(完整示例见 cordis.patch.yml):

- insert:
- id: restart-button
name: './plugins/dsh-restart-button.mjs'
inject: [webServer]

3. 启动 watchdog(它会顺带拉起 3081 控制器):

pwsh -NoProfile -File Start-DSH-Watchdog.ps1 -IntervalSeconds 30

4. 重启一次 DSH 以加载插件:写入重启标记

Set-Content logs/restart.requested -Value "requested" -Encoding utf8

watchdog 会在约 30 秒内完成实际重启。

使用

- 生命周期控制栏:左下角(设置按钮上方)一个胶囊形控制栏,从左到右依次为:额度胶囊(若安装了 dsh-quota-panel)、细分隔线、⟳ 重启 / ⏻ 关闭 按钮。点击额度胶囊会在控制栏正上方展开详情卡片。
- 重启:点击 ⟳ 重启 按钮,确认。页面进入接管层,新实例就绪后自动重新加载。
- 关闭:点击 ⏻ 关闭 按钮,确认。DSH 停止,浏览器跳转到 http://127.0.0.1:3081/。
- 启动:在启动页点击 启动 DSH。完成后自动回到关闭前的页面(记录于 localStorage.dsh_lastUrl)。
- 额度:点击胶囊(¥ 余额 ● 用量%)展开/收起控制栏上方的额度卡片;卡片会始终锚定在左下角控制栏上方。

配置

插件支持以下选项(通过 profile 补丁的 config: 块):

| 选项 | 默认值 | 说明 |
| requestFile | <dsh-root>/logs/restart.requested | 重启标记路径 |
| stopFile | <dsh-root>/logs/stop.requested | 关闭标记路径 |
| watchdogPidFile | <dsh-root>/logs/watchdog.pid | watchdog PID 文件(状态探测用) |
| controllerUrl | http://127.0.0.1:3081/ | 启动页地址 |

控制器只监听 127.0.0.1:3081,绝不监听 0.0.0.0。

文件

| 路径 | 用途 |
| lib/dsh-restart-button.mjs | 宿主插件:路由 + 注入页面脚本 |
| controller/dsh-controller.mjs | 独立控制服务 + 启动页 |
| scripts/Start-DSH-Watchdog.ps1 | 外部 watchdog,负责生命周期 |
| scripts/Start-DSH-Web-Detached.ps1 | 分离式启动器(watchdog 调用) |
| docs/design-v2.md | V2 设计基线(英文) |
| docs/design-v2.zh.md | V2 设计基线(中文) |

许可证

MIT
预览分享卡片长什么样 ↓brittanistrehlowll-oss/dsh-lifecycle
分享 · DeepSeek Harness Hub
brittanistrehlowll-oss/dsh-lifecycle

在网页端一键重启或关闭服务,停止后仍可重新启动

回到顶部