dsh-task-progress:为 DSH 会话任务加上进度条与完成提醒

前言

在 DeepSeek Harness(DSH)里,智能体常用 todo_write 维护会话任务清单,内置任务面板能列出待办,但每条任务只有状态点,很难一眼看出「做到哪一步」、整单又完成了多少。长回合、多步骤工作时,你需要的是按状态可视化的进度,以及在任务完成时的可选提醒,而不是反复扫清单。

下面介绍社区客户端插件 dsh-task-progress(维护者 4133chen):在 Web UI 输入框上方的任务区域,为每个会话任务渲染迷你进度条与百分比,标题行展示整体进度,并可打开完成提醒。插件以 MIT 许可发布,当前 GitHub 星标为 0;目录见 SkillHub 插件页,源码见 GitHub 仓库。

这是什么

dsh-task-progress 是 DeepSeek Harness 的 客户端(Web)插件,包名 @local/task-progress,版本 1.0.0。它读取会话的 todos 投影(由 @deepseek-ai/dsh-tool-todo 与 todo_write 维护),替换内置任务面板同一 dock cell,不出现两份列表;禁用插件后内置面板恢复。

一句话:给每个 session 任务一条进度条,并提供可选的任务完成提醒(应用内 toast,系统通知在可用时额外发送)。

核心功能

单任务与整体进度

任务面板中,每条任务显示:状态点、任务名、迷你进度条、百分比。

状态 进度展示
pending(待处理) 0%
in_progress(进行中) 50%,带呼吸动画
completed(已完成) 100%,成功色 + 删除线

标题行常驻整体进度条,文案形如「已完成 x/y · 百分比」。总进度按加权估算:(完成数 + 0.5 × 进行中数) / 总数,属于按状态估算的「大概进度」,不是按耗时或子任务拆分的精确百分比。

可选完成提醒

面板右上角铃铛按钮,默认关闭,点击开启;偏好保存在浏览器本地。

  • 某条任务变为已完成时,弹出应用内提醒。
  • 全部完成时提示「全部任务完成 🎉」并附会话名。
  • 切换到其他会话时,仍监控原会话任务完成(跨会话);面板侧有兜底检测,5 秒内去重,避免重复提醒。
  • 系统通知在环境支持时会额外发送;应用内提醒始终可用。Windows 上系统通知是否弹出取决于系统与应用通知设置。

交互与主题

  • 点击标题行可展开/收起任务列表;折叠状态与提醒开关会记住。
  • 样式只使用 Harness 的 --dsw-alias-* 主题 token,随明暗主题切换。
  • 界面与插件列表文案支持 8 种语言:中文、English、日本語、Español、Français、Deutsch、Русский、Português。

环境要求

安装前请确认:

  1. DeepSeek Harness(Web UI / Desktop),版本在 0.2.2-rc.1 附近。
  2. 当前 Agent 预设已挂载 @deepseek-ai/dsh-tool-todo(standand 预设默认已挂载;todos 投影即数据源)。
  3. 插件无构建步骤:client.js 为 Harness 客户端可直接加载的普通 JS 包。

安装与启用

插件在 DSH 进程与用户浏览器环境中运行,安装前建议通读仓库源码与 MIT 许可证。

方式一:在 Harness 内由智能体安装(README 推荐)

先把插件目录放到本机(README 给出的获取方式如下):

git clone https://github.com/4133chen/dsh-task-progress.git

在任一 DSH 会话中把该目录路径告诉智能体,例如:

用 plugin_manager 把 dsh-task-progress 目录安装为本地插件。

智能体会调用 plugin_manager install_bundle(绝对路径指向该目录):写入 profile 的 bundle 并热加载,通常无需重启。成功后输入框上方出现带进度的任务面板。

方式二:手动写入 profile

  1. 编辑 ~/.dsh/profiles/<你的profile>/package.json,加入依赖与 bundle:
{
  "dependencies": { "@local/task-progress": "link:/path/to/dsh-task-progress" },
  "dsh": { "profile": { "bundles": ["...", "@local/task-progress"] } }
}
  1. 在 profile 目录执行 pnpm install(或使用 Harness 插件管理界面安装本地包)。
  2. 重启 Harness 或等待 HMR 后生效。

卸载

在 设置 → 插件 中禁用或移除本插件;内置任务面板会自动恢复。

典型用法

  1. 让智能体维护任务清单(调用 todo_write),面板出现在输入框上方。
  2. 观察每条任务的进度条:in_progress 约一半,completed 满格。
  3. 需要提醒时,点右上角铃铛开启;再点一次关闭。
  4. 全部完成后标题行显示 100%;下一回合开始时,旧清单会随 todo_write 生命周期清空。

实现要点(便于排查)

文件 作用
index.js Host 侧空插件,供 dsh.client 声明进入浏览器插件表
client.js 读取 todos 投影、渲染面板、注册提醒 toast
cordis.patch.yml bundle 补丁
locale/*.json 多语言标题/描述
icon.svg 插件图标

面板占用 conversation.input.dock 中 id: "todo"、priority: -100 的 cell,与内置面板互斥。提醒注册在 shell.overlay(id: "task-progress.toasts")。

适用场景与注意

适合:依赖 todo_write 的多步骤会话,希望在 Web UI 里直观看到任务推进与整单进度,并可选在完成时收到提醒的开发者与用户。

不适用或需知晓的限制(来自 README):

  • 数据源是会话 todos 投影,不是 Agent Teams 的共享任务板。
  • 进度按状态估算,不是精确耗时百分比。
  • 若不想替换内置任务面板,可自行改 client.js 中的 cell id 并调整样式,作为附加面板使用。

DSH 生态主张「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。本文事实均出自上述仓库 README 与 package.json。

结尾

dsh-task-progress 在不改变 todo_write 工作流的前提下,给会话任务清单加上 per-task 进度条、加权整体进度与可选完成提醒,并随 Harness 主题与语言设置适配界面。需要试用或贡献代码时,可打开 插件目录页 与 GitHub:4133chen/dsh-task-progress。

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

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

Xiaoye