DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-todo-reminder

M

dsh-todo-reminder

Manifest valid
UI (client)hasBundlePatch

dsh-todo-reminder

npm license dsh compat

DSH 的全局个人待办插件 —— 一份跟你所有会话、所有项目都无关的个人清单。

功能

  • 全局面板:侧边栏「待办」入口打开,浮在页面中央(不再挂在会话列里)—— 任何会话下 打开都是同一份内容、同一个位置。新建(标题 / 备注 / 提醒时间 / 提醒样式 / 完成需确认)、 完成、删除;待办 / 已完成分区展示。Esc 或点空白处关闭。
  • 右侧待办条(Dock):窗口右缘常驻、可收起;收起时直接显示下一件要做的事 (到期时间 + 标题),逾期变红;展开可快速添加 / 勾完成 / 稍后提醒;可上下拖动,可关闭。
  • 到期提醒:host 每 5 秒扫描到期任务,经 SSE 实时推到浏览器弹富 toast,动作有 「完成 / 稍后提醒(分钟数可自定义)/ 忽略」;切出到别的窗口时转成系统原生通知。
  • 多种提醒样式:info(蓝)/ success(绿)/ warning(黄)/ danger(红,呼吸动画)。
  • 提醒音:每种样式可单独开关响铃;音量、音色可调;可试听。
  • 完成需确认:任务可开启,点「完成」先弹确认框。
  • Agent 工具:todo_add / todo_list / todo_complete / todo_snooze / todo_delete。

本插件是原来那个「待办 + 会话提醒」二合一插件拆出来的待办模块。DSH 会话的 「跑完 / 提问 / 审批」提醒已经独立成 dsh-session-attention,两者数据、设置、 声效文件、接口全部独立,可单独安装、单独卸载。

安装

从 npm 装(推荐):

dsh plugin --profile desktop add dsh-todo-reminder    # 桌面端
dsh plugin --profile web     add dsh-todo-reminder    # 浏览器版

从源码装(仓库里已带构建产物 lib/,克隆后可直接指过去):

git clone https://github.com/Meltllsy/dsh-todo-reminder.git
dsh plugin --profile desktop add link:<克隆目录>

改了源码想重新构建:npm install && npm run prepack(host 半 tsc → lib/,client 半 tsdown → lib/client.js)。

设置与数据

项位置
数据文件$DSH_HOME/todo-reminder/todos.json(待办 + 提醒事件 + 设置,原子写)
自定义提醒音$DSH_HOME/todo-reminder/sound.{mp3,wav,ogg,m4a}
HTTP 接口/api/todo/state、/api/todo/events(SSE)、/api/todo/sound、/api/todo/{add,update,delete,complete,snooze,dismiss-reminder,set-settings}

拆分后 todos.json 里遗留的 settings.attention / settings.ball 由本插件忽略(不删); 它们会被 dsh-session-attention 首次启动时读走做迁移。

提醒音怎么走

  1. 自定义音效文件优先:音频解锁后探测 /api/todo/sound,命中则解码使用。
  2. 内置合成音兜底:没有文件 / 解码失败时用 WebAudio 现场合成四种音色。
  3. 系统通知兜底:音频尚未解锁时,由系统通知自己出声。

音频解锁靠 document 上的手势监听自动完成(点 DSH 里任何地方即可)。页面内音效在前台/ 后台都会响;页面完全关闭时不会响,那时只有系统通知,而浏览器通知只能用系统默认音。

构建

npm install          # 只需一次
npm run prepack      # host 半 tsc → lib/;client 半 tsdown → lib/client.js

host 半只依赖 node: 内置模块(自包含);client 半经 tsdown 打包为 ModuleLoader 客户端,React 交给宿主运行时。

兼容性

本插件依赖 DSH 的一些内部点(服务名、事件名、DOM 类名、客户端包格式)。DSH 演进较快, 这些点在版本之间会变 —— 插件断掉往往不是插件自己的 bug,而是这里变了。所以仓库里带了一个自检脚本:

npm run check:compat                        # 检查本机已装的 DSH
node scripts/check-compat.mjs --from <dir>  # 检查指定目录(CI 用)

实测结果:

DSH 版本结果
0.2.0-rc.2(当前)✅ 15/15
0.2.1-alpha.2(下一个)✅ 15/15

依赖点一览(断哪条、坏哪个功能,脚本输出里都写了):

分类依赖点
客户端__ModuleLoader__ 加载器格式、/plugins 资源路由
服务uiWorkspace.openSession、会话列表 byId 快照、host 的 webServer / systemPrompt
DOM类名含 sessionRow / newSession / centerCol
事件session/event / turn/end / approval/asked / tool/call
工具ask_user_question

GitHub Actions 每周自动跑一次(含 alpha 版本),不通过就自动开 issue —— 所以 DSH 更新导致的不兼容 会被提前发现,而不是等用户先撞上。

与 dsh-session-attention 是各自独立的插件,互不依赖,可单独安装。

Comments

Loading…