前言¶
在 DeepSeek Harness(DSH)里长时间对话时,需求、子任务和截止日期往往散落在消息里,刷新或换会话后不易对照。模型自带的 todo_write 面向的是执行计划,和「这一通会话里要跟踪的事项」不是同一份数据。社区插件 dsh-session-todos(维护者 Tpihis,分类:工作流)在输入框上方提供按会话隔离的待办面板,列可由用户自定义;界面与模型通过 session_todos 工具读写同一份存储,适合需要人机共管清单的场景。
这是什么¶
dsh-session-todos 是 DSH 的 bundle 插件:每个会话有自己的事项与列配置,默认只有「序号|事项」两列。未创建清单时不占界面空间;展开后宽度与内边距对齐原生任务框。数据落在宿主存储域 session_custom_todos(本机路径约为 ~/.dsh/storages/session_custom_todos/),不在插件目录内,卸载插件不会删除已有数据。
项目地址:SkillHub 目录页、GitHub 仓库(MIT,package 版本 1.0.0)。DSH 社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系;插件在当前 dsh 进程权限下运行,安装前建议自行审阅源码与许可证。
核心功能¶
下面介绍 README 中已列出的能力,均可在启用后直接使用。
列与事项¶
- 自定义列:文本、数字、日期三种类型;可新增、重命名、左右移动、删除。事项列可改名但不可删除。
- 事项操作:新增、编辑、删除(带确认)、勾选完成、再次勾选恢复未完成、上移 / 下移。
- 搜索与筛选:搜索所有列;筛选全部 / 未完成 / 已完成。
- 批量操作:批量完成、恢复、删除,作用于当前筛选结果。
- 撤销:最近 20 次操作可回退(含删除列及其数据);没有重做。
- 导出 CSV:导出全量清单(非当前筛选),带完成标记,兼容中文 Excel,并对公式注入做了转义。
与 AI 共用数据¶
面板上的勾选与编辑,模型通过宿主工具 session_todos 能读到;模型写入的事项也会在面板显示。二者走同一宿主方法,不是两套列表。
对模型说自然语言即可,例如:
把这些需求加入当前会话待办,并增加分类、优先级和截止日期列。
需区分:模型侧的 todo_write 是它自己的执行计划,与本插件的会话待办无关。
数据边界与限制¶
- 每个会话最多 2000 条事项、20 个数据列;列名最多 80 字符,单元格最多 10000 字符。
- 并发写带 revision 检查:用旧版本号提交会被拒绝,需刷新后重试。
- 会话分支(fork)默认空白清单,不继承父会话。
- 会话删除后,对应域记录不会自动清理。
已知行为¶
界面的写操作经斜杠命令 /session-todos 落到宿主;DSH 会把命令生命周期渲染成对话里的命令卡片,插件无法完全去掉。为可读性,写操作会返回中文摘要(如「已完成 1 条(2/3 已完成)」),显示在卡片摘要行。README 说明:若要做到完全不产生卡片,需改用插件自建 typert RPC,曾有一版因桥接挂起导致面板写入锁卡死而未采用当前折中方案。维护者注明未在第二台机器、其他 DSH 版本或其他操作系统上验证。
安装与启用¶
在 DSH 里装插件是两步,只做一步不会加载 bundle。
第 1 步:装依赖 —— dsh plugin --profile <name> <args...> 只是 profile 目录里的 pnpm 转发,负责让包在 profile 里可解析:
git clone https://github.com/Tpihis/dsh-session-todos.git
cd dsh-session-todos
dsh plugin --profile web add "$PWD"
将 web 换成你实际使用的 profile 名。
第 2 步:启用 bundle —— 把包名写进 profile 的 dsh.profile.bundles,没有与第 2 步等价的单独 CLI:
- GUI:侧边栏「插件」面板里打开
dsh-session-todos; - 或 agent 调
plugin_manager:set_bundle,target = dsh-session-todos,enabled = true; - 或
plugin_manager的install_bundle,target指向本目录(安装 + 启用)。
验证 bundle 是否出现在列表中:
node -e 'console.log(require(process.env.HOME+"/.dsh/profiles/web/package.json").dsh.profile.bundles)'
名字出现在输出里,且插件面板显示已启用,才算完成。宿主侧可半即时生效;客户端通常需刷新页面(F5) 才会加载新代码。没有 pnpm run dev:web 时,客户端插件不会自动热更新。
典型用法¶
- 启用 bundle 并刷新 Web 客户端后,打开任意会话。
- 在输入框上方查看「会话待办」摘要;尚未创建清单时不显示,点开即可编辑。
- 需要结构化字段时,在面板里加列,或直接用上文示例让模型追加列并写入事项。
- 筛选未完成项后做批量完成;误操作可用撤销(最多 20 步)。
- 需要归档或表格分析时,用 CSV 导出全量数据。
适用场景与注意¶
适合:单会话内跟踪需求与子任务、与 agent 共维护同一清单、需要自定义列(优先级、截止日期等)且要会话隔离的工作流。
注意:写操作会在对话里留下命令卡片;大量自动化写入时对话流会更「碎」。数据上限与 fork 不继承等边界见上文。插件依赖宿主存储与 DSH 命令/UI 机制,升级 DSH 或换环境前宜在测试 profile 先验证。
结尾¶
dsh-session-todos 把「会话级待办」做成与界面、工具同源的数据面,补上了与模型内置 todo_write 不同的跟踪方式。安装时务必完成依赖安装与 bundle 启用两步,并刷新客户端。
- 目录页:https://www.skillhub.cn/plugins/Tpihis/dsh-session-todos
- GitHub:https://github.com/Tpihis/dsh-session-todos