zhouwei713/dsh-daily-kit--packages-tasks0

dsh-daily-tasks

dsh plugin: tasks (developer preview)

包名
dsh-daily-tasks
版本
0.1.0
许可证
MIT
最近更新
2026年8月16日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zhouwei713/dsh-daily-kit#03d93caab5b846c990da8bb201d52881756ed483&path:packages/tasks

安装与配置


# dsh 配置示例
- id: tasks
  name: dsh-daily-tasks
  config:
    enabled: true
    provider: local            # v1 仅 local;todoist / microsoft-todo 为 v2 预留
    local:
      dataFile: tasks-store.json   # 存储文件,相对路径相对 dsh 工作目录
    # defaultListLimit: 50     # task_list 默认返回上限
    # summaryMaxItems: 5       # task_summary 每桶默认列出条数

权限透明

本插件对宿主环境的影响面,逐条交代清楚:

  • 读写位置:仅写配置的 local.dataFile 一个 JSON 文件(tmp+rename 原子写);不读取其他任何文件。
  • 网络域名:无。local Provider 不发起任何网络请求。
  • 凭证:不持有任何凭证(v2 远程 Provider 的凭证将只从环境变量读取,配置里只放变量名)。
  • 确认点:无新增确认点。本地待办的增删改属本地 L1 写,正常开放。
  • 日志内容:仅加载时写一行启动日志(任务数与存储路径);存储文件损坏时写一行警告(原文件保留,不覆盖)。

组合示例

source 字段让本插件成为其他插件的"落点":

  • 与 mail 组合:"把主题含『账单』的未读邮件各建一条待办,来源记邮件 id,截止下周五。"——agent 用 mail_search 找到邮件,task_add 时带上 source: mail:
  • 与 watcher 组合:"这个 RSS 出现含『发布』的新条目时提醒我,并转一条待办。"——watcher 投递后 agent 调 task_add 记录跟进事项。
  • 晨报流程:会话开场让 agent 调 task_summary,把"逾期/今日到期"两桶念给你听。

已知限制

  • 无重复任务/提醒:v1 没有 recurring 任务,也没有到点提醒(提醒属 scheduler 的职责,可组合使用)。
  • 截止日期精度到天dueYYYY-MM-DD 本地日历日,不带时刻与时区。
  • 单文件整体读写:每次变更重写整个 JSON 文件;个人 GTD 清单量级(千条以内)没有问题,不适合当高并发数据库用。
  • 无删除工具:v1 用 task_updatecancelled 状态表达"不做",已完成/已取消任务保留在文件中(可手动编辑 JSON 清理)。
  • 存储明文:待办内容明文落盘,不要写入口令、密钥等敏感内容。

手动验证

本仓库的 CI 只覆盖类型检查与纯函数单测(node:test + 临时目录)。接入真实 dsh 后请手动验证:

  1. 在 dsh 配置中启用本插件,确认启动日志出现 tasks: loaded(provider local,任务 N 条,存储 …)
  2. 调用 task_add 新增两条不同优先级/截止日期的待办,确认返回的 task 字段完整,且 tasks-store.json 已写入。
  3. 调用 task_list(默认)确认只看 open;用 tag/keyword/dueBefore 过滤确认结果正确。
  4. 调用 task_update 把一条置为 done,确认返回带 completedAt;再置回 open 确认 completedAt 消失。
  5. 调用 task_summary,确认逾期/今日到期/本周/无日期四桶数量与手工清点一致。
  6. 重启 dsh,确认 task_list 仍能看到之前新增的待办(跨会话持久化)。
  7. 手动把存储文件改坏(写入非 JSON 文本),重启确认插件以空清单启动、日志出现损坏警告,且原文件未被覆盖。

许可

MIT