dsh-global-todo:跨会话的全局待办与一键交接

前言

在 DeepSeek Harness(DSH)里写代码或跑工作流时,内置的 todo_write 绑定在一次 agent 会话里:整表替换、三种状态,会话结束计划也跟着消失。若要在多台机器、多个工作区之间延续同一份任务清单,或让人和 agent 共同改同一条记录,就需要把待办落到会话外的持久存储,并有一套明确的交接与收尾规则。下面介绍社区插件 dsh-global-todo(维护者 LUgABeEEE),分类为工作流,用单个 JSON 文件承载列表,并支持步骤计划、会话回读与人工确认「完成」。

这是什么

dsh-global-todo 是 DSH 的跨会话待办插件:你和 agent 共同读写同一份 JSON 文件,一键把某条待办(含步骤)交给新会话或已绑定的对话;agent 声明完成时,条目会进入待确认,需人工确认或打回后再算真正结案。

与内置 todo_write 的对比如 README 所述:

内置 todo_write dsh-global-todo
归属 单次 agent 会话 跨会话、跨工作区,由你持有文件
写入方式 整表替换 按字段更新,人与 agent 均可写
创建时间 不记录 createdAt,不可变,界面展示
上下文 标题 + 状态 描述、文档与地址等
交接 — 一键:复用绑定会话或新开会话
存储 会话事件日志 可 cat、diff、备份的 JSON 文件

当前包版本为 0.12.13(见仓库 package.json),许可证 MIT。GitHub 仓库约 3 stars、2 forks(以目录页线索为准)。

核心功能

单文件 JSON 即整张列表

列表不藏在会话日志里。你可以直接查看、对比、提交版本库,或放到 NAS、另一台机器上使用。

步骤(Steps):待办内的执行计划

单条待办最多 20 步、每步 200 字符(LIMITS 定义于 lib/model.js)。每步为 { text, done },是同一工作单元内的勾选行,不是带独立 id 的子任务。

  • 在面板「更多字段 → Steps」按行添加。
  • 详情里勾选步骤,列表行显示如 steps 2/5。
  • 交接(Hand-off) 时,下发提示会把步骤编号列出,已完成项前缀 [已完成]。
  • 导出 Markdown 为嵌套 - [ ];导入可读回。

证据句(Evidence)

evidence 保存捕获待办时的原话(最多 300 字符)。global_todo_capture 会请模型给出,global_todo_add 可写入;详情在 In the author’s words 以引用块展示。手填的待办无此字段。Markdown 导出中带 原话:。

一键交接与四种模式

交接不是大段粘贴说明:插件会检查工作目录,并把该待办的 steps 作为编号计划交给目标会话。详情面板可查看绑定会话状态并打开对话。

会话回读(Session read-back)

交接在另一段对话里推进时,不必切窗口也能看「它刚才说了什么」。GET /api/global-todo/session?id= 返回 alive、dir 以及最后一条 assistant 消息的 tail(有界:内存中约 200 个会话、每段 tail 400 字符,来自各 assistant/message;不落盘,Host 重启会丢失)。无 tail 表示本进程尚未见过该会话发言。

待确认(Review):「完成」是声明,不是终局

agent 调用 global_todo_done(或 watcher 在干净回合上触发)后,记录变为 done,并带 review: { pending: true }。列表显示 Needs review,顶栏有 Review 计数。

操作 效果
Confirm done 保持 done,去掉待确认标记,活动流记录确认人
Send back 回到 open;清除 doneAt 与完成记录;增加 reopened 活动;标题、描述、步骤、附件与进展备注均保留

Markdown 导入与导出

JSON 是可往返的权威格式。Markdown 便于人工阅读、diff 与手改(手改列表中 doing、cancelled 导入后会变成 open,无进行中状态)。

导出示例结构:

- [ ] 标题
      优先级: 高 · 截止: 2026-10-21T18:00 · 标签: 发布, 文档
      原话: …
      描述: 第一行
      - [x] 一步
  • 导出:More actions → Export Markdown,或 GET /export?format=md(分组:未完成 / 已完成 / 已归档)。
  • 导入:More actions → Import(.md),或 POST /import { markdown };Markdown 无 id,不会覆盖已有记录,一律 create。

字段标签为中文(优先级 / 截止 / 标签 / 原话 / 描述 / 附件 / #)。无法解析的日期会丢弃;没有 - [ ] 行会拒绝并说明原因。

周报(Weekly report)

More actions → This week(GET /report?days=7)根据完成记录推导「本周动了什么、是否落到文件」,不额外存储。字段包括:finished、sessions、created、pendingReview、files(最多列 12 个路径,fileCount 为总数)。days 大于 90 会钳制为 90;缺失或非正数时默认 7 天。

安装与启用

环境要求(来自 README 与 package.json):

  • DeepSeek Harness 0.2.x(engines.dsh 为 >=0.2.0-rc.1 <0.3.0,开发与验证针对 0.2.1-rc.2;Host 版本不符会跳过该 bundle)。
  • Node >=22.19.0。

官方安装命令:

dsh plugin add dsh-global-todo

安装后可在 DSH 面板中使用全局待办界面。仓库还提供 CLI:dsh-global-todo-doctor(npm run doctor / tools/doctor.mjs)用于环境检查。更短上手见仓库 5-minute quickstart 与 中文说明 README.zh.md。

典型用法(可复现流程)

  1. 安装插件(见上节命令),确认 Host 版本在 engines.dsh 范围内。
  2. 在面板创建或捕获待办:需要原话证据时走捕获流程(global_todo_capture / global_todo_add);在「更多字段」里补全步骤、截止、标签等。
  3. 交接执行:在详情中选择交接方式(复用绑定会话或新开会话),agent 按编号步骤推进;必要时在详情查看 Session read-back。
  4. agent 收尾:完成时触发 global_todo_done;你在 Review 里 Confirm done 或 Send back。
  5. 备份与协作:对 JSON 文件做 cat、diff、git 提交;需要可读摘要时用 Export Markdown,从 Markdown 批量新增用 Import。

面板还支持收件箱确认、到期提醒、多选等状态;各状态基线截图见仓库 docs/screenshots/。

适用场景与注意

适合谁:需要在多个 DSH 会话、多个工作区之间共用同一份待办;希望 agent 按计划步骤执行且「完成」必须经人确认;要把清单放进 git/NAS 与 Markdown 工作流的人。

权限与安全:插件以当前 dsh 进程权限运行,可读写你配置的 JSON 与相关 API。安装前请阅读 GitHub 源码 与 MIT 许可证,自行评估是否用于生产环境。

生态说明:DSH 社区插件目录(如 SkillHub 上的条目)是独立站点,与 DeepSeek / 幻方无官方从属关系;安装来源以 README 给出的命令为准,不要自行拼接未在文档出现的安装 URL。

结尾

dsh-global-todo 把待办从「单次会话里的临时计划」收成「你拥有的一个 JSON 文件」,并用步骤计划、一键交接、会话回读和待确认收尾,对齐人与 agent 协作时的常见缺口。进一步了解可访问插件 目录页、项目主页 与 GitHub 仓库。

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

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

Xiaoye