Skip to content

Releases

v1.2.11

Choose a tag to compare

@github-actions github-actions released this 05 Nov 10:16

Fixed

  • 适配 DSH 0.2.2(含 0.2.2-rc.1):system-prompt/assemble 的载荷由 PromptAssembly 改为 PromptPresentation,只带 sections / contexts / variables,工具声明改由工具注册表在 waterfall 之后挂回。旧实现要求载荷同时包含 tools 数组,在 0.2.2 上判断失败并原样返回,导致 tool:<名称> 提示词段落不再剔除。现在只要求 sections:旧版继续同时过滤工具声明与段落,新版过滤段落文本。
  • 恢复 DSH 0.2.2 上「所有工具都能隐藏」的行为:新增 per-step 过滤,包装 tools.resolve() 返回的准入集合,把策略隐藏的工具名从该步的工具集合中剔除。0.2.2 的提示词工具声明、PTC 绑定与执行查找全部由这份集合派生,因此按 Agent 自身作用域 注册的工具(subagent、list_subagent_models、schedule_* 等)与全局工具表现一致:未打开按需组或已关闭时,既不在模型工具列表中,也无法调用。这是 tools.restrict() 之外的补充路径——restrict() 按设计只作用于 global/祖先层,无法隐藏 Agent 自身作用域的注册。包装只改写 view() 的投影,失败时原样返回 Host 的集合,插件卸载时还原;旧版 DSH 没有 resolve(),自动跳过。
  • 若上述包装无法安装(Host 改动了该接口),保留 0.2.2 的降级路径并只告警一次:继续过滤提示词段落,调用仍由 guard 拦截,并列出受影响的工具名。

Changed

  • 移除工具目录快照中的 trust 字段:DSH 自 0.1.7 起不再上报 Preset 信任级别,快照此前始终填 system,属于误导性数据;设置页从未渲染该字段。
  • README 补充 DSH 0.2.2 的适配范围、Node.js 24.9 最低要求,以及升级前需移除 tools.mode / DSH_TOOLS_MODE 的提醒。
  • 版本提升至 1.2.11;engines.dsh 保持 >=0.2.0-rc.2,0.2.1 用户无需改变。

v1.2.10

Choose a tag to compare

@github-actions github-actions released this 08 Oct 09:30

Fixed

  • 修复保存按需分组时把「只按 Agent 作用域注册」的工具误判为空组、导致无法保存的问题。典型表现:为 @deepseek-ai/dsh-schedule 提供的 schedule_create / schedule_list / schedule_delete / schedule_update 建组后点保存,报 Preset "standard" has empty tool groups: "定时提醒管理",而页面明明列出了这些工具、tool_list 也能正常打开该组。根因是保存校验只读 Preset 的 standing composition(acquireScope()),而页面目录是 standing 与 Agent 作用域注册(探针 + 运行中 Agent 观测)的并集;subagent 等由 modelSelectionSettings 注入的工具同样受影响。现在校验与页面使用同一份目录,并且只在真正读不到 standing composition 时才跳过该校验。同时修正了同一根因下的两个次生问题:仅含 Agent 作用域工具的组里出现已关闭成员时误报「空组」而非「已关闭工具不能入组」,以及两个此类组之间的重复成员漏检。

v1.2.9

Choose a tag to compare

@github-actions github-actions released this 08 Oct 07:41

Changed

  • 适配 DSH 0.2.0-rc.2:engines.dsh 提升为 >=0.2.0-rc.2,README 同步标明适配范围;旧版本请继续使用 1.2.8。
  • 工具管理页「工具目录」面板补充说明:tool_list 只在当前 Preset 有有效按需组时才出现(保存后从下一个模型步骤生效),没有有效按需组时模型看不到它;并说明它由插件自动管理,不出现在本页工具目录中,也不能在本页开关或分组。

v1.2.8

Choose a tag to compare

@github-actions github-actions released this 22 Sep 16:05

Changed

  • 适配 DSH 0.1.7:Preset standing 目录改为 agentPresets.acquireScope(),并在读完 schema 后释放租约。standingKeyFor() 已从 DSH 移除,继续调用会让设置页快照和保存校验失败。
  • 插件管理页补充中英文 locale 标题与描述。
  • 设置页 API 请求改为相对当前文档 base URI,避免 Web 部署在反向代理子路径下打到错误主机。
  • engines.dsh 提升为 >=0.1.7-alpha.1。
  • README 标明仅适配 DSH 0.1.7-alpha.1 及更新版本;更早版本请继续使用 1.2.7。

v1.2.7

Choose a tag to compare

@github-actions github-actions released this 18 Sep 09:29

Fixed

  • 修复在其他设置页与“工具管理”之间往返时,动态 Agent 作用域工具可能隔次从目录消失、又隔次恢复的问题。Preset 目录现在保留已完成的 live/probe 观测并与当前观测取并集,避免在 tools/change 后的短暂注册空窗中把 subagent、list_subagent_models 等真实工具误报成“已不存在的关闭项”。

v1.2.6

Choose a tag to compare

@github-actions github-actions released this 18 Sep 08:56

Fixed

  • 按需组尚未打开时直接调用组内工具,现在会明确提示该工具所属的按需组,并给出需要先调用的 tool_list 参数;不再误报成工具已被 Preset 策略关闭。明确关闭的工具仍保留原有禁用提示。

v1.2.5

Choose a tag to compare

@github-actions github-actions released this 18 Sep 05:34

Fixed

  • 新增通用的组合切换自愈(src/composition-watch.ts):插件监听 tools/change,发现某个会话的 Preset 发生切换后,把它借另一个 Preset(compositionInventory() 中 composition row 最少者,通常是极简模式)空转一圈再切回目标 Preset。旧 composition 在离开时执行的 removeScoped() 会连带丢掉 DSH 因撞名失败而永久缓存的记录,目标 composition 于是在一个没有同名注册的 Agent 上干净安装。该机制不含任何工具名假设:任何插件按 Agent 注册的工具、无论丢了几个,都走同一条路径恢复。只对未开始对话的空白会话执行(DSH 本身也只允许空白会话切换模式),用 recompose() 因而不写会话记录、界面无感知;两条腿串行且第二条永远执行,失败会回滚到目标 Preset 并告警;已经开始的会话不被改动,只按探针参照系报出缺失工具并提示重开。自愈成功时输出一条自我报告日志(... re-calibration restored them.)。

  • 定位并缓解“标准模式新建会话 → 切到创造模式后丢失 subagent / list_subagent_models”:根因是 DSH 自身的组合切换竞态(@deepseek-ai/dsh-tool-subagent 的按 Agent 注册与上一个 composition 的异步拆除竞速,失败后该 Agent 被永久记住),与本插件的开关策略无关(出问题的会话里 disabled 为空、也不存在隐藏这两个工具的按需分组)。插件侧现在于加载时立刻组合部署默认 Agent Preset 的 standing composition,并让此后所有由插件发起的 mount(冷 Preset 探针、自动命名/自动分组、保存校验、快照)都先等它完成,从而不再由插件引入反向顺序。分析与上游修复建议见 docs/composition-switch-race.md。

  • 修复共享冷 Preset 探针在切换作用域时把上一 Preset 的动态 Agent 工具串入下一 Preset 目录的问题;例如“极简模式”不再误显示仅 standard/ptc/cordis 提供的 subagent 和 list_subagent_models。

  • 探针切换后会等待动态作用域注册完成清理,并且探针自身的过渡态不再写入运行中 Agent 的持久观察缓存。

  • 修复 Preset 切换或新会话初始化期间,动态 Agent 作用域工具短暂卸载时被采样为永久 baseline,导致在 standard 关闭代理工具后,创造模式中的 subagent / list_subagent_models 也消失且重新开启无法恢复的问题;工具目录变化现在延迟到下一事件循环再刷新。

v1.2.4

Choose a tag to compare

@github-actions github-actions released this 17 Sep 16:20

Fixed

  • Preset 动态工具探测不再为每次页面请求和每个空闲 Preset 创建随机 tool-manager-probe-* Session。现在所有冷 Preset 串行复用唯一的 tool-manager-probe-internal-v1,跨插件重载恢复同一个持久化 Session,并以 origin: subagent 从普通会话列表隐藏。
  • 固定探针恢复失败时直接报错并回退现有工具目录,不创建随机或递增 ID 的替代 Session,避免会话存储持续增长。

v1.2.3

Choose a tag to compare

@github-actions github-actions released this 17 Sep 13:59

Fixed

  • 修复仅在 Agent 自身作用域注册的工具(如启用 modelSelectionSettings 后动态注入的 subagent)在工具管理页面无法显示、无法关闭的问题:现在通过运行中 Agent 的真实工具目录与必要时对空闲 Preset 临时挂载探测 Agent 来补齐页面目录,不再依赖工具名硬编码。
  • 修复关闭 Agent 本地作用域注册的工具后,模型请求仍然能看到该工具并附带 tool:<name> 提示词段的问题:在 system-prompt/assemble 阶段过滤 assembly.tools 与对应提示词段,并安装 tools.guard() 拒绝执行已关闭工具,与原有 tools.restrict() 形成三层防护。
  • 自动命名与自动分组的可用工具目录也同步使用相同合并策略,避免页面能关闭的工具在生成接口中找不到。

v1.2.2

Choose a tag to compare

@github-actions github-actions released this 17 Sep 06:46

Changed

  • 工具管理页中“自动分组”旁的“分组”按钮改名为“手动分组”,让操作含义更明确。

Fixed

  • 修复通过 tool_list 打开的按需工具组在 DSH 重启并恢复同一 Session 后重新隐藏的问题;现在会从成功的原生或 PTC 工具调用事件恢复开放状态,同时新建会话和 fork 子会话仍保持默认隐藏。