dsh-tasks-panel:把待办、历史月历和飞书提醒放进 DSH 侧栏

前言

做智能体应用的人大多会遇到一个同样的取舍:任务列表放在哪。单独开个待办工具,意味着要在当前会话和那个工具之间来回切;直接让智能体在对话里记一嘴,过两天就散了,也说不清哪天做了哪件事。dsh-tasks-panel 的做法是把这个面板做进 DeepSeek Harness 自己的侧栏:智能体通过 tool 读写任务,人在同一会话里点着看,需要提醒时在到点那一分钟往手机推一条飞书消息。

下面介绍这个插件。它由 tortoise014 维护,分类为客户端,GitHub 上目前 1 个星标,版本 0.5.4,协议 MIT。它不解决任务管理本身的复杂度,只解决「任务清单和当前工作不在同一个地方」这件事。

这是不是一个合适的选择

先讲清楚边界。它做的是三件事:一个带日期和时刻的待办清单;一张按月回溯任务历史的月历;一次到点触发的飞书群机器人推送。它不做协作、不做多端同步、不做优先级排序,也不会替代项目管理工具。如果你的需求是把一个完整项目拆成可分配的子任务,这个面板不合适。

它写成 DSH bundle 的形式,命令行安装,不需要 git clone。浏览器端和宿主端通过 POST /api/dsh-tasks-panel/op 通信,数据全部落在本机的 dsh_tasks 存储域里。除了飞书那次推送本身,没有别的出网请求。

核心功能

  1. 侧栏入口。DSH 的 rail 上多一个图标,点开是面板,Back 可以回到你刚才所在的会话、插件页或 Schedules。
  2. 待办清单。支持新增、完成、重新打开、删除。日期默认今天,时刻默认下一个五分钟整点;点 × 清掉日期,就变成一条没有日期的备注。
  3. 悬停看今天。鼠标停在侧栏图标上,会浮出今天任务的时刻表,包括过期项和未完成的数量,不用点开、不用换上下文。
  4. 历史月历。新增、完成、重开、编辑、删除都在这个月的格子里落一个事件,点某一天可以读当天的记录。注意这张表只记录发生过什么,不做排期。
  5. 悬停卡片预览。鼠标指向某个任务或某一天,会显示标题、备注、到期日期和时刻、来源、所属会话、时间戳。卡片会避开侧栏重叠,不会盖住它。
  6. 飞书到点提醒。在设置里贴一次群机器人 webhook,到点宿主推送 ⏰ title / time / note 到手机。推送成功后会顺手把任务关闭;如果不想自动关,设置里取消「Close the task once it is pushed」。
  7. 智能体工具。task_write 让助手新增和关闭任务,操作集合和 UI 一致,两条路不会走偏。

界面和细节

插件里有几处设计值得单独说,因为它们直接影响日常怎么用。

一是提醒规则比较严:只有同时填了日期和时刻的任务才会被提醒。只填日期表示「今天要做」,不是约会,默认静音。

二是宿主每 30 秒扫一次,要求 DSH 在运行。所以关掉应用就不可能推送。同一个日期加时刻的槽位只推一次,重启也不会重复通知。把任务挪到新时刻会重新武装一次提醒。

三是有一个 6 小时的宽限窗口。如果某个时刻已经过了 6 小时以上,插件只会在界面上标记它,不会补推。这样笔记本睡一晚起来,不会在早上 9 点把昨天的东西全倒给你。被这个窗口跳过的任务保持打开状态,沉默不等于完成。

四是设置那个开关会自己保存,webhook 也包括在内。否则「按了开关然后忘了点保存」就是 enabled: false 的来源。

五是 task_write 没有提醒相关的动作。给手机推送这件事由人来开,不由智能体决定。面板会显示最近一次发送时间和最近一次投递错误,设置里有 Send a test,可以在信任它之前先确认手机能收到。支持签名校验的飞书机器人,把 secret 也贴上就行。

安装与启用

安装命令来自 README,一共是这一行:

plugin_manager install_bundle target:"dsh-tasks-panel"

如果本地 checkout 放在某个绝对路径下,也可以用 target:"<absolute path to a local checkout>"。安装完成后打开面板,第一次会有一个简短引导,讲三件事:写一条任务、悬停侧栏看今天、贴 webhook 开提醒。UI 和这个引导都是中英双语,跟随应用的 locale 走。

需要 Node 20 及以上,因为 engines 写明了 node >=20。依赖只有一个 zod@^3.25.76。README 里提到,链接安装时 pnpm 不会装依赖,所以仓库里把 zod@3.25.76 vendored 在 node_modules/zod 下;npm 安装则从 registry 拉取,因此发布的 tarball 故意不带 node_modules。

数据存放在哪里

全部放在 dsh_tasks 存储域里,包含 tasks 和 events 两张表,外加一条存提醒设置的 global 记录。浏览器端和宿主端之间的接口是 POST /api/dsh-tasks-panel/op。没有服务端,没有云同步,换机器需要自己迁数据。

测试与维护

npm test 按顺序跑三个套件,全部针对真实 bundle,没有自己 mock 自己。

  1. node test/host.mjs(38 项),覆盖存储操作、时刻规范化、HTTP op 面、task_write 工具。
  2. node test/reminders.mjs(34 项),覆盖飞书调度、到点识别、每槽位只推一次、6 小时宽限窗口、投递后自动完成、0.5.2 之前已提醒任务的一次性清理、签名、错误上报、设置守卫。
  3. node test/ui.mjs(73 项),在 jsdom 里渲染客户端:槽位注册、待办行、三种悬停卡片、输入框默认值、首启引导、设置卡片和两个开关。

宿主端套件用假的 Cordis context 和内存表来导入 index.js,UI 套件通过替身 window.__ModuleLoader__ 加载 client.js 再渲染进 jsdom。GitHub Actions 在 Node 20 和 22 上跑同一套测试,并从 tag 通过 OIDC trusted publishing 发布到 npm。

适用场景与注意

适合的人:日常工作就在 DSH 会话里,希望任务清单和会话放在一起,并且希望到点用手机收到一条提醒的人。也适合想通过 task_write 让智能体自己维护任务、同时不把提醒权限交给智能体的开发者。

要注意的点:

  1. 插件以当前 DSH 进程的权限运行,能读到宿主能读到的东西。安装前应当打开源码过一遍,确认 client.js、index.js 和你看到的这份一致。
  2. 协议是 MIT,仓库里可以看到 LICENSE。
  3. 飞书推送需要群机器人 webhook,这是唯一出网的一步。贴之前确认 webhook 所在群的边界,贴之后如果不再使用,建议撤销或删除。支持签名校验的机器人,secret 贴进面板即可,不要写进仓库或提交记录。
  4. 仓库里没有声明数据迁移工具。换机器、重装或清空 dsh_tasks 之前,先确认自己是否还需要 tasks 和 events 里的历史。
  5. 这个插件来自社区目录,目录站点是独立站点,与 DeepSeek / 幻方没有官方从属关系。它不是官方应用商店里的项目,也不要按官方插件来引用。

小结

如果任务清单已经散落在几个地方,或者需要一条不带打开应用的到点提醒,装一个侧栏面板比多开一个工具更省事。它的范围很小:待办、历史月历、飞书到点提醒,再加上 task_write。想自己看一眼实现的话,目录页在 https://www.skillhub.cn/plugins/tortoise014/dsh-tasks-panel ,源码在 https://github.com/tortoise014/dsh-tasks-panel 。

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

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

小夜