dsh-todolist:DSH 侧边栏待办清单与钉钉提醒

前言

在 DeepSeek Harness(DSH)里同时开多个工作区会话时,任务往往散落在聊天记录或临时笔记里,重启 Web 界面或换端口后也不易找回。官方侧边栏侧重上下文与会话导航,并不自带可持久化的任务视图。下面介绍社区维护的客户端插件 dsh-todolist(GitHub:stitchmaps/dsh-todolist):在左侧导航增加「To-do List」面板,用可折叠任务卡片管理截止时间,并把单条任务绑定到具体会话,便于一键跳回继续对话。

这是什么

dsh-todolist 由 stitchmaps 维护,分类为 客户端 UI 插件。它在 DSH 桌面/Web 侧栏挂载待办面板,数据落在宿主目录 <DSH_HOME>/todolist/todos.json,与随机 Web 端口无关;当前 package 版本为 0.2.1,许可证 MIT。插件不注册面向模型的 tool 或 prompt,只扩展界面与本地持久化 API。

核心功能

侧栏入口与任务卡片

  • 侧栏新增一行 To-do List,位置在「Context Insights」旁。
  • 任务以大卡片展示(两行布局),未完成/已完成分区可折叠并显示数量;卡片带状态色条(逾期红、当天到期琥珀)、圆角渐变与悬停效果,以及完成进度条。

任务生命周期

支持新增、编辑(双击标题或点「Edit」)、勾选完成、删除,以及一键清除已完成项。输入框旁日期选择器可在创建时设置可选截止时间。

截止时间(精确到小时)

截止格式为 YYYY-MM-DD HH:00。任务卡片上通过 Due / Reschedule 可改期,并提供快捷项:Today 18:00、Tomorrow 09:00、In 1 hour,或清除截止。逾期任务高亮为红色,当天到期为琥珀色;未完成任务按截止时间排序。

工作区会话绑定

每条任务可绑定到按工作区分组的任意会话;绑定后显示可点击的 chip,点击后通过 UI 工作区能力打开对应 sessionId,从待办直接回到当时对话。

钉钉提醒

全局默认「提前 N 小时提醒」,单条任务可覆盖(0 表示关闭)。到期前 N 小时由宿主侧调度器(约 60 秒一轮)推送,模式二选一:

  • 群机器人:自定义机器人 webhook,可选填加签 secret 与 @ 手机号。
  • 工作通知:填写钉钉开放平台企业内部应用的 AppKey、AppSecret、AgentId 与接收人 userIds。

DSH 托盘进程需保持运行,调度才会执行。凭据与任务数据一并保存在 <DSH_HOME>/todolist/todos.json(使用前请自行评估本地存储风险)。

持久化与备份

每次写入会更新 todos.json.bak,并在 todolist/backups/ 下保留最近 20 次带时间戳的快照;主文件缺失或损坏时,宿主读取会回退到最新备份。

界面语言

内置中英文 UI 文案切换。

环境与依赖

  • DSH:NEXT 2.0.20 或兼容的 0.2.x 发行版(package.json 中 engines.dsh 为 >=0.2.0-rc.2 || >=0.2.1-rc.2)。
  • 官方安装脚本依赖 Windows + PowerShell;也可按文档手动复制文件并改 cordis.patch.yml。
  • Node:^22.19.0 || >=24.0.0(与 DSH 宿主环境一致即可)。

安装与启用

官方 README 给出的安装方式为克隆仓库后执行 PowerShell 脚本(脚本会备份被改动的 profile 文件):

git clone https://github.com/stitchmaps/dsh-todolist.git
cd dsh-todolist
pwsh -File .\install.ps1

脚本会:

  1. 将插件文件复制到 %DSH_HOME%\profiles\desktop\node_modules\todolist;
  2. 在 profile 的 package.json 中记录 file: 依赖;
  3. 向 profile 的 cordis.patch.yml 追加 loader 行。

若侧栏未立刻出现 To-do List,在 Web GUI 中刷新(Ctrl+R)。

手动安装时,将包复制到 profile 的 node_modules,并在 ~/.dsh/profiles/desktop/cordis.patch.yml 中追加:

- insert:
    - id: todolist
      name: todolist

典型用法

  1. 点击侧栏 To-do List。
  2. 输入任务标题并回车(或点 Add);需要截止时在输入框旁选日期。
  3. 在卡片上:
    - Due / Reschedule:设日期与小时、快捷改期、设置单条提醒提前量,或清除截止;
    - Bind session:选择工作区下的会话,之后点 chip 跳转;
    - Edit / 双击标题改名;勾选完成;Delete 删除。

配置钉钉推送

  1. 面板右上角 Push settings。
  2. 选择群机器人或工作通知,按 README 填写 webhook 或应用凭据;设置默认提前小时数(0 为不提醒),Save settings 后 Send test 验证。
  3. 单条任务可在截止对话框里覆盖提醒(默认 / 关闭 / 1–48 小时)。

实现要点(便于排查)

DSH 插件分两半:浏览器半 lib/client.js 注册 sidebar.panellist(id: todolist)与主面板槽位,通过 useWorkspaces() / useSessions() 取会话,跳转调用 ctx.get('uiWorkspace').openSession(sessionId);宿主半 lib/index.js 注册 POST /api/todolist/state,原子读写 todos.json 并运行提醒调度。前端 bundle 为手写 lazy-CJS 工厂格式,无需单独 build。

适用场景与注意

  • 适合:长期在 DSH 里做多会话开发、希望待办与具体会话绑定的个人或小团队;需要截止前钉钉 nudge 且能接受本地保存 webhook/应用密钥的场景。
  • 注意:插件以当前 DSH 宿主进程权限运行,安装前请阅读仓库源码与 MIT 许可证;钉钉相关字段写入本地 JSON,勿在不可信环境泄露 profile 与 todolist 目录。
  • 生态说明:DSH 社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;本文事实以仓库 README 与 package.json 为准。

结尾

dsh-todolist 把可折叠待办、小时级截止、会话绑定和钉钉提醒收进 DSH 侧栏,任务数据落在 <DSH_HOME>/todolist/,适合作为客户端能力补全日常调度。目录页:https://www.skillhub.cn/plugins/stitchmaps/dsh-todolist;源码与详细截图:https://github.com/stitchmaps/dsh-todolist。

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

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

Xiaoye