dsh-quadrant-todolist:DSH 侧栏的四象限待办管理器

前言

用 DSH 干活时,待办通常有两种去处:要么散在与 agent 的对话里,下次开工要先翻记录;要么在对话开头贴一份清单,过几天就和实际进度脱节。这两种做法的共同问题是清单没有单一数据源,人看不起来,agent 也用不起来。

下面介绍的 dsh-quadrant-todolist 把待办放进 DSH 宿主的侧栏,人和 agent 读写同一份 todos.json。人可以在界面里排期、勾选、看统计,agent 可以通过 personal_todo 工具建条目和改状态。

这个插件是什么

  • 仓库与插件标识:dsh-quadrant-todolist,GitHub 仓库 https://github.com/ZIYE-JK/dsh-quadrant-todolist
  • 维护者:ZIYE-JK(package.json 里 author 为 ZIYE-JK,contributors 另列 Natte)
  • 当前版本:1.0.0
  • 许可证:MIT
  • 来源:从 Natte 的 dsh-sidebar-todo@0.2.3 起步后大幅重写,上游版权声明按 MIT 要求保留在 LICENSE 中
  • 星标:1(GitHub API 的 stargazers_count,2026-11-06 读取)
  • 社区目录:SkillHub 的插件页把它放在「工作流」分类下,https://www.skillhub.cn/plugins/ZIYE-JK/dsh-quadrant-todolist
  • 尚未发布到 npm,包名已定为 dsh-quadrant-todolist

插件不 import 任何 @deepseek-ai/* 包(无 dependencies、无 peerDependencies),只依赖宿主在运行时提供的契约,包括 window.__ModuleLoader__.load、侧栏槽位 sidebar.panellist / main、ctx.webServer.register、ctx.tools.register、ctx.locale 注册。这些契约一旦变化,表现从「入口消失」到「面板一直显示读取失败」不等,README 里逐条列了对应关系。

界面与视图

侧栏界面分为四屏:做计划(四象限矩阵)、月视图、周视图、统计。页头可以切到「日历」看月视图:每格最多显示两条,多余的收成 +N;点某天在右侧看当天安排,可以直接勾选,也可以「在这一天新建」。

四象限矩阵是默认视图,用于把任务按重要/紧急维度分开。统计视图按周期给出完成情况。系统通知与飞书通知属于当前版本列出的能力范围,具体配置项 README 未展开,这里不做补齐。

新建与编辑

新建和编辑用同一个弹窗,字段包括标题、备注、日期、时间、优先级、分类、重复规则。

弹窗顶部有一行「一句话填写」:输入「明天下午3点 交周报 #工作」,日期、时间、优先级、分类会被自动填好,剩下的部分可以手动微调。支持的解析项包括日期(今天/明天/后天/周X/下周X/N天后/M月D日/月底)、时间(15:00、下午3点、中午、半夜)、优先级(p1/p2/p3、!)、分类(#名称)。

规则有一点值得注意:一行只生成一条待办,句子里第一个被识别的日期生效,其余内容原样留在标题里。

日期和时间用的是自绘选择器(月历带今天/明天/下周一快捷,时间是时/分两列),不依赖系统控件。详情列底部的「编辑」就是给「未排期」任务排期的地方。

循环任务

重复方式支持每天、每周(可多选周几)、每月(指定几号),可设结束日期。重复设置里还包含法定工作日、艾宾浩斯记忆曲线和「每月最后一天」。

行为上有几条约定:

1、列表里只出现本周期待完成的那一次——每天的当天出现,每周的整周可见,每月的整月可见;勾掉后该行消失,下一个周期再出现。
2、勾选完成的是这一次(行上显示的日期),系列本身不受影响。
3、循环任务不进「已完成」,也不参与「积压」判定。
4、重复规则没写起始日时按创建日算,agent 只给 repeat 也能正常出现在列表和日历里。
5、刚建的循环任务如果还没到第一个发生日,会先显示下一次发生日,不会建完就看不见。
6、「每月 31 号」在只有 30 天的月份会跳过,不会自动落到月末。

agent 工具

agent 侧的工具名是 personal_todo,action 可选 list / add / update / complete / confirm / delete。

// add / update 接受 repeat 参数
{ "repeat": { "freq": "weekly", "weekdays": [1,2,3,4,5], "until": "2026-12-31" } }
// complete 按 date 指定完成哪一次,默认今天
{ "action": "complete", "date": "2026-11-09" }

list 对循环任务标注「循环·本次 MM-DD」,即本期待完成的那一次;occurrences 返回区间内的全部实例。工具会从口语里自行推断重复规则,不需要用户回答「你要哪种重复」——比如在对话里说「每周一到周五 18 点交日报」,agent 会直接建好。

安装与启用

从 npm 安装的命令如下,但 npm 尚未发布,当前不要走这条路:

dsh plugin --profile web add dsh-quadrant-todolist

当前推荐的方式是直接从 GitHub 源码安装:

dsh plugin --profile web add github:ZIYE-JK/dsh-quadrant-todolist

从源码安装适合要跟最新提交的情况,更新按 commit 追,没有版本号。装完在侧栏「自动化任务」下方出现「待办」;也可以在宿主的「插件 → 发现」里搜 dsh-quadrant-todolist 或「待办」后在市场里安装。

本机开发时可以把仓库目录直接装进 profile(链接方式,改代码即时生效):

plugin_manager install_bundle  target: <本仓库目录>

注意:改 index.js 后要把插件行关再开才会重新加载模块;只改 client.js 会被 HMR 自动拾取。

数据与配置

数据默认落在 %DSH_PROFILE_DIR%/data/dsh-todolist/todos.json,是普通 JSON,可以直接打开、编辑、备份。结构如下:

{ "version": 1, "todos": [ { "id": "t_...", "title": "交周报", "dueDate": "2026-10-22", "done": false } ] }

文件损坏时会备份为 todos.corrupt-<时间戳>.json,然后以空清单启动。

配置在 cordis.patch.yml 的插件行里改:

- id: dsh-quadrant-todolist
  config:
    staleDays: 7   # 超过多少天还没定日期算「积压」
    dataPath: ''   # 可选,覆盖默认数据文件路径

兼容性与升级后自查

README 给出的兼容性表:

宿主版本 插件版本 结论
0.2.2-rc.1 1.0.0 已验证可用(2026-11-06)
0.2.1-rc.3 0.2.1 已验证可用,修复 0.2.0 的启动崩溃
0.2.1-rc.3 0.2.0 启动崩溃,请勿使用
0.2.1-rc.2 0.1.0 已验证可用

package.json 里 engines.dsh 为 >=0.2.1-rc.2 || >=0.2.2-rc.1,engines.node 为 >=22。

升级宿主后的自查顺序不要跳过前两步:重载插件(set_plugin 关再开)→ 侧栏点开「待办」→ 让 agent 调一次 personal_todo list → 跑 node --test。原因是 node --test 只覆盖 lib/ 和 client.js 的一条静态约定(注册 id 等于包名),宿主接口本身断了测试照样全绿。

适用场景与注意

适合这类需求:想要一个长期存在的待办清单而不是每次开新会话重说一遍;希望 agent 直接读写这份清单;需要按周/月看排期和完成统计,并且需要法定工作日感知的重复。

需要留意的几点:

1、插件以当前 dsh 进程的权限运行,安装前应先读一遍源码和 LICENSE 再启用。
2、站点的插件分类页只是社区目录,SkillHub 与 DeepSeek / 幻方无官方从属关系,不是官方应用商店。
3、不要和上游 dsh-sidebar-todo 同时安装——两者注册同一个 /todo/api 路由并共用同一个数据文件。
4、从源码安装没有版本号,升级前先看提交记录。

结尾

这个插件的价值在于把待办收敛成一个文件、一个界面、一套 agent 工具,人和 agent 不必各自维护一份状态。星标数量和版本迭代还在早期,README 里的兼容性表和契约说明写得相当具体,适合直接照着自查。

  • 目录页:https://www.skillhub.cn/plugins/ZIYE-JK/dsh-quadrant-todolist
  • 仓库:https://github.com/ZIYE-JK/dsh-quadrant-todolist
羽毛球分组比赛记分
小程序二维码

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

小夜