返回目录
生活娱乐 插件

dsh-task-control

ningmengxr/dsh-task-control

DeepSeek Harness 插件:pip/GitHub 下载卡死一键急停 + 下载进度检测 + 卡死识别 + 隐形追加条件。Emergency stop for stuck pip/GitHub downloads in DSH.

Stars
1
Forks
0
Issues
0
更新
今天

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:ningmengxr/dsh-task-control

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

dsh-task-control —— 下载卡死急停 + 任务健康检测

DeepSeek Harness 插件:pip / GitHub 下载卡到怀疑人生?网络超时停不下来?一键急停 + 下载进度检测 + 卡死识别 + 隐形追加条件。

在国内网络环境下,从 pip / GitHub 下载大文件(torch、ffmpeg、插件包…)卡顿、超时是家常便饭。DSH 原生的「停止」和任务暂停会被排在卡住的下载命令后面无法生效——任务既下不完、也停不掉。这个插件补上了缺口:

按钮 作用
🔴 急停 一键强制终止当前任务(杀进程 + 停止会话),下载/安装卡住时随时可停,带防误触确认(勾选"了解丢失进度"才能点确认)
拍一下deepseek(检测) 一键检查任务状态:出错 / 疑似卡死(工具调用超 10 分钟未返回)/ 运行中 / 健康
追加条件 任务运行中追加补充条件(先中止 → 弹窗输入 → 带条件隐形重跑)

✨ 核心亮点

1. 下载卡死「急停」—— 为国内网络环境而生

  • pip(pip install torch 等 2.5GB 大包)、GitHub(大文件下载)、curl 下载卡住/超时时,原生的停止按钮和暂停都被排在卡住的工具返回值后面,毫无反应
  • 点「急停」→ 宿主直接按命令特征找到并杀掉卡住的下载进程 → 任务立即停止,换源重来;
  • 防误触:先弹警告"急停会导致下载任务丢失,重新启动后需要全部重新下载",勾选后才能点确认

2. 下载中检测—— 不再"疑似卡死"误报

  • 检测到正在执行下载/安装命令时,无论是否超时都先查实际状态:
    • curl 类(有输出文件)→ 显示真实进度百分比(如 正在下载 ffmpeg-release-essentials.zip,进度 42%);
    • pip 类(无输出文件)→ 明确提示"正在下载,无法计算进度,请耐心等待",绝不显示误导性的假进度
    • 下载进程已退出 → 提示"下载出现异常中断" + 可强制终止。

3. 卡死识别 + 强制终止

  • 非下载类工具调用超过 10 分钟未返回 → 提示"疑似卡死:工具 X 已运行 N分N秒";
  • 检测弹窗内可直接强制终止(杀进程,session.cancel 对此无能为力)。

4. 隐形追加条件(无用户气泡)

  • 「追加条件」的恢复/条件消息经宿主通道以插件来源消息注入会话:模型照常执行,但聊天界面只显示一条低调的上下文提示行——没有"继续"、没有"补充条件…"气泡,体验干净利落。

安装

  1. lib/ 已包含构建产物(lib/index.js 宿主半 + lib/client.js 客户端 bundle)。将插件包放入 DSH 的 profile node_modules:

    • 直接拷贝到 ~/.dsh/profiles/node_modules/dsh-task-control/,或
    • 建立 junction 链接到本目录(本地开发常用)。
  2. ~/.dsh/profiles/web/cordis.patch.yml 中插入插件条目:

    - insert:
        - id: task-control
          name: 'dsh-task-control'
  3. 重启 DSH web,硬刷新(Ctrl+Shift+R)页面。

宿主半挂载 /dsh-task-control/resume/dsh-task-control/kill/dsh-task-control/download-status 三条路由(loopback Host 校验),浏览器端同源 fetch 调用;客户端 bundle 按 window.__ModuleLoader__ 契约加载。

自定义文案

设置 → 插件 → 任务控制 卡片(6 项):

  • 急停按钮文案(默认 急停
  • 检测按钮文案(默认 拍一下deepseek
  • 追加条件按钮文案(默认 追加条件
  • 检测·无异常输出(默认 任务正常,无异常
  • 检测·出错输出(默认 任务出错:{error}{error} 会替换为错误信息)
  • 检测·运行中输出(默认 任务正在运行中,暂未出错

构建

node build.mjs

生成 lib/index.js(宿主半,ESM、零外部依赖)与 lib/client.js(客户端 bundle,__ModuleLoader__ 契约、外部模块走 require())。

目录结构

├── src/
│   ├── index.ts              # 宿主半:resume / kill(急停杀进程)/ download-status(下载进度)路由
│   └── client/
│       ├── index.ts          # 客户端插件入口(插槽注册)
│       ├── buttons.tsx       # 急停 / 检测 / 追加条件按钮 + 弹窗(含急停防误触确认)
│       ├── SettingsCard.tsx  # 设置卡
│       └── settings.ts       # 文案设置存储(localStorage)
├── lib/                      # 构建产物(index.js / client.js)
├── build.mjs                 # esbuild 构建脚本
├── cordis.patch.yml          # 安装 patch(按包名解析)
├── cordis.dev.patch.yml      # 本地开发覆盖层(直接加载 src/index.ts)
├── DESIGN.md                 # 设计文档
└── 功能验证测试清单.txt        # 打断测试 / 功能验证清单

License

MIT

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类生活娱乐
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: productivity。