dsh-task-progress:输入框上方的实时任务进度卡

前言

在 DeepSeek Harness(DSH)里跑 pip install、带 tqdm 的循环或模型训练时,进度往往散落在终端输出里,想估剩余时间或中止任务还要切回日志。DSH 内置 jobs 客户端服务会推送当前会话的任务状态,但默认界面未必把「进度条 + 速度 + ETA + 停止」集中放在输入区附近。

下面介绍的 dsh-task-progress(维护者 Dekurri)是一款客户端插件:在会话输入框上沿浮动显示正在运行的任务,解析常见进度格式,并支持一键停止。数据来自 DSH 推送流,纯前端、运行时零第三方依赖,不轮询、不发额外网络请求、不落盘。

这是什么

  • 定位:DSH 插件,浮动「活」进度卡片,挂在 conversation.input.overlay 层。
  • 仓库:github.com/Dekurri/dsh-task-progress(package.json 版本 0.1.2,协议 MIT © 2026 Dekurri)。
  • 解决问题:当前会话里 running / stopping 任务的进度、速度与预计剩余时间可视化;不占用输入框高度;多任务时可折叠。

社区目录页:skillhub.cn/plugins/Dekurri/dsh-task-progress(独立生态站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

出现与数据源

插件只渲染当前会话中状态为 running 或 stopping 的任务;没有运行中任务时不渲染、不占位。进度与元数据来自 DSH 内置 jobs 客户端服务的推送,而非自行轮询。

多格式进度解析

启发式解析常见输出,包括但不限于:

  • tqdm 进度条;
  • 带标签分数(如 Epoch 3/10、step 120/1000、1/132 项);
  • 裸百分比、pip install 各阶段。

同一行同时出现 epoch 与 step 时,以更细的 step 作为主进度,epoch 放在详情行。无法识别的格式仍显示阶段与最后一行输出。

速度、ETA 与已用时长

tqdm 自带 rate 时直接使用;否则由样本估算。预计剩余时间按 tqdm 的 <mm:ss> 形式或根据已用时间外推。

一键停止

「停止」需两段确认(3 秒内点第二次),经 DSH 任务 kill 通道下发;停止过程中显示「停止中…」并禁用按钮。前台命令(agent 正在等待结果)与后台任务均支持。

界面行为

  • 默认展开 2 个运行中任务,其余折叠为「还有 N 个」,整卡可收起。
  • 中英双语随 DSH 界面语言;亮/暗主题自适应;支持 prefers-reduced-motion。
  • 展开/收起不改变输入框高度。

安装与启用

需要 DSH 0.2.x(在 0.2.1-rc.5 上验证)。插件运行时无第三方依赖;package.json 声明 Node >=20(用于开发侧 check 脚本)。

安装前请自行审阅仓库源码与 MIT 许可证;插件随 DSH 客户端加载,权限边界与当前 DSH 进程一致。

方式一:Release 包

  1. 从 Releases 下载 dsh-task-progress-<版本>.tgz,解压到长期存在的目录(安装为符号链接,删除源目录会导致插件失效)。
  2. 在 DSH 插件管理器中按绝对路径安装该目录(GUI),或让 AI 助手调用:
plugin_manager install_bundle
# target 传解压目录的绝对路径

成功时返回结果里 application 为 "applied";安装后输入框上方出现卡片即表示生效。

方式二:Git 规格

由插件管理器按 git 规格安装:

plugin_manager install_bundle
# target 为 github:Dekurri/dsh-task-progress

卸载:

plugin_manager remove_bundle
# target 为 dsh-task-progress

典型用法

无需额外配置。在 DSH 中执行会输出进度的命令即可,例如:

pip install torch
python train.py          # 输出 Epoch 3/10、step 120/1000 等

卡片会自动出现;连点两次「停止」可取消任务。多个任务并行时显示前 2 个,其余折叠。

兼容性与依赖注入

  • DSH:0.2.x(0.2.1-rc.5 验证)。
  • 客户端注入(package.json → dsh.client.inject):
  • @deepseek-ai/dsh-api-job-controller
  • @deepseek-ai/dsh-client-locale
  • @deepseek-ai/dsh-client-ui-conversation

若上游修改 jobs 服务或 job.* 帧格式,可能需要同步升级插件。

限制与适用场景

适合:在本会话内频繁跑安装、训练或长循环,希望在输入区附近一眼看到进度并快速中止。

注意:

  • 进度解析为启发式,极端或非标准日志可能信息不全。
  • 仅当前会话;不展示其他会话或历史任务;任务结束后卡片消失,不保留「已完成」记录。

结尾

dsh-task-progress 把 DSH 已有的任务推送转成输入框上方的进度卡,覆盖 tqdm、pip、训练 epoch 等常见格式,并补速度与 ETA、双次确认停止。安装以 Release 目录或 plugin_manager install_bundle(绝对路径 / github:Dekurri/dsh-task-progress)为准。

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

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

小夜