Skip to content

Releases: shuxidemosheng/dsh-tool-todo-plus

v0.7.4:适配 dsh 0.2.1-rc.2(修复升级后插件被拒绝加载)

Choose a tag to compare

@shuxidemosheng shuxidemosheng released this 18 Oct 08:57

修复:dsh 升级到 0.2.1-rc.2 后插件不加载

dsh 0.2.1-rc.2 起会在启动时校验插件兼容性:存在 engines.dsh 时只按它判定,否则逐个检查 peerDependencies 中所有 @deepseek-ai/dsh-* 的范围;运行时不满足就拒绝加载。0.7.3 及更早把 peer 精确锁死在 0.2.0-rc.2,并且依赖了新版已删除的 @deepseek-ai/dsh-invariants——在 0.2.1-rc.2 上被判为 incompatible,整条插件被跳过。

0.7.4 的修复:

  • 新增 engines.dsh: ">=0.2.0-rc.2 <0.3.0":存在该项时 dsh 只评估它并忽略 peerDependencies,0.2.x 的 rc 升级不再打断插件
  • 移除 @deepseek-ai/dsh-invariants(源码从未引用)
  • @deepseek-ai/dsh-* peer 范围放宽为同一区间;devDependencies 对齐 0.2.1-rc.2
  • dev 依赖 zod 对齐宿主的 4.4.3(原先的 4.6.7 与宿主类型不兼容,导致 tsc 失败)
  • README 新增 FAQ「dsh 升级后插件加载失败」;刷新深度安全扫描封印(0 发现)

验证

  • 用 dsh 0.2.1-rc.2 的 evaluatePluginCompatibility 规则逐字复刻校验:0.2.0-rc.2 / 0.2.1-rc.1 / 0.2.1-rc.2 / 0.2.2 均判定 COMPATIBLE;0.3.0 按设计拒绝
  • 反例确认根因:0.7.3 的清单在 0.2.1-rc.2 下五项 peer 全部不满足
  • 在桌面端 0.2.1-rc.2 上安装成功(0.7.3 → 0.7.4)

安装 / 升级

dsh plugin --profile <profile名> add dsh-tool-todo-plus@0.7.4

若安装时出现 ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION(registry 镜像元数据滞后导致锁文件校验失败),给同一条命令加上 --registry=https://registry.npmjs.org 重试。

完整改动:v0.7.3...v0.7.4

v0.7.3:修复面板停在某一步不动(写入被拒会永久停摆)

Choose a tag to compare

@shuxidemosheng shuxidemosheng released this 08 Oct 10:05

修复:面板停在某一步「进行中」不动,任务其实已经完成

根因是运行时校验的硬拒绝:模型同时标多个 in_progress(或提交空内容、重复内容)时,整次调用被拒绝、一个事件都不写——浮窗与官方内联任务条于是永久停在旧状态,直到重载会话。任务清单停在第一步、而模型早已往下做了,就是这么来的。

0.7.3 起改为规范化而不是拒绝,保证每次调用都能推进面板:

  • 同时标多个 in_progress:保留最靠前的一个,其余自动降级为 pending(配置 allowParallelInProgress: true 时不受此限)
  • 重复 content:保留首次出现,后续追加 (2) / (3)——任务不丢,且列表 key 保持唯一
  • content 为空白:丢弃该条目;清单不会因此变空(全空仍按非法输入拒绝,并给出明确错误)
  • 上述调整会写进工具结果告知模型,下一轮按规范化后的形状提交即可

注册容错

投影注册与工具注册各自隔离、各自记日志:

  • 宿主里官方插件把同一个 todos key 注册在不同 stateVersion 上时,投影注册表会直接抛错;此前这会连带让整条 entry 激活失败,现在只记日志、工具照常注册(浮窗退化为读取已注册的那份定义)
  • 工具注册失败也不再冒泡——避免"任一条 entry 激活失败导致会话创建失败"的更坏后果

客户端

列表 React key 带上序号,修掉两条待办内容相同时条目被合并/漏渲染的问题。

排查指南(已写入 README「常见问题」)

面板显示不实时,先看「轨迹」标签页里 todo_write_plus 的调用记录:

  • 最后一次是红色报错 → 那次写入被上面的规则拒绝(0.7.2 及更早)
  • 最后一次成功、之后再没有调用 → 模型自己没更新清单(它用文字汇报了进度但没调工具)——浮窗是纯展示层,不会替模型编造进度

安装 / 升级

dsh plugin --profile <profile名> add dsh-tool-todo-plus@0.7.3

dsh 的 minimumReleaseAge 供应链冷却期会让刚发布的版本在数天内不接受"裸包名"安装,所以请带上版本号(桌面端插件页同理,粘贴 dsh-tool-todo-plus@0.7.3)。

完整改动:v0.7.2...v0.7.3

v0.7.2:可拖动任务面板 + 当前动作显示 + 双击复位

Choose a tag to compare

@shuxidemosheng shuxidemosheng released this 07 Oct 10:57

首个 GitHub Release——DeepSeek Harness 任务清单插件,官方 todo_write 的增强 fork:优先级标签 + 完整清单渲染 + 会话内浮动任务面板。

浮动任务面板(用户侧)

  • 实时跟随 todo/write 自动弹出;历史回放只同步数据、不打扰
  • 展开态 ⇄ 胶囊态(ZCode 计划面板同款内容优先级链),点击即时切换
  • 面板可拖动,位置自动记忆(localStorage,仅 {x, y} 坐标);双击头部复位到默认锚定位置(v0.7.0–v0.7.2)
  • 当前动作行:两次清单写入之间实时显示模型正在执行的工具(v0.6.0)
  • 轮次间不闪空:新一轮开始保留上一轮清单,淡化并标"上一轮"(v0.6.0)
  • 原生外观:解析宿主 --dsw-* 设计 token,亮暗主题自动跟随

增强工具(模型侧)

  • priority(high / medium / low)优先级标签,对齐 ZCode TodoWrite
  • 工具结果返回完整 markdown 清单(官方版仅一行计数)
  • description 内置行为纪律:整表替换、单 in_progress、完成即刻标记、切换即写(v0.6.1)
  • 双保险参数校验:schema 之外再做运行时校验(非空 / 去重 / 单活跃)

兼容与安全

  • 桌面端注册为 todo_write_plus,与官方 todo_write 零冲突共存;会话日志复用官方 todo/write 事件类型,双向兼容
  • 零运行时 npm 依赖、无网络请求、无 eval / innerHTML;Mimosa 深度安全扫描 0 发现

安装

dsh plugin --profile <profile> add dsh-tool-todo-plus

桌面端安装、git 直装、源码构建等其他方式见 README。