Repository navigation
Releases: ouli-1242/dsh-plugin-tool-management
Releases · ouli-1242/dsh-plugin-tool-management
Release list
0.21.7
0.21.6
修复
- 修好「应用提示词预设」恒定失败:全局 AGENTS.md 存在时,并发编辑校验误拿文件正文当指纹比对,应用必被拒;补签发 / 校验同口径回归测试(#22)。
- 记忆附件落盘补根内断言:场景 / 记忆目录是指向根外的链接时,附件上传拒绝写入。
- 保留期自动清理技能条目先送系统回收站:失败才永久删除,与手工删除同一道保险。
- 场景锁定 / 切换 / 建档后冻结判定即时生效:成功操作立即刷新缓存,不再有 1 秒旧状态窗口。
- 人设名单字段逐条转义:
tools/toolsDeny/toolsByPreset里含逗号、冒号、引号或换行的名字保存与回读不再变形。 - 三处改名写入改为可重试:提示词预设、快捷提示词、人设保存在 Windows 瞬时占用下不再直接失败。
变更
- 场景冻结口径统一:场景回收站的永久删除、被锁场景自身记录的编辑纳入冻结;新建场景不受影响。
- README / README_EN 补写访问令牌与进程级边界的关系:宿主栅栏缺席时写接口只拦远程请求,进程级边界需配置令牌。
- 适配宿主 0.2.1-rc.3:验证版本与安装期范围下限升至
0.2.1-rc.3(上界<0.2.2不变,仍只声明这一代),兼容矩阵按新基准重生成。
安装:
dsh plugin add dsh-plugin-tool-management@0.21.6
0.21.5
本次重点:写操作先问一句。 MCP 停机、提示词应用、五域删除、落到机器级的开关,十处写操作补上确认卡;恢复路径不拦。错误消息同时带上现成候选,名字打错时能当场看到该用哪个。
- 十处确认卡:按「动作 × 作用域」判定 —— MCP 只有 stop 无条件问,on/off 落在机器级才问,restart / 还原 / 撤销一律不拦。
- 错误消息给候选:缺 id、缺场景名、缺服务器名、名字打错时,列出当前存在的记忆 id、技能名、人设名、场景名、预设 id、MCP 服务器名。
- 跨域误用点明:把记忆 id 传给别的域时,直接说那是记忆 id。
- 点名工具按可见性分叉:模型手里没有那条工具,就只指向注入段。
- MCP 重启的豁免范围写清:只豁免场景锁,不豁免用户同意。
- 人设清单带正文路径:要读完整定义时,
list每条末尾给文件路径,用文件工具打开。
0.21.4
本次重点:统一关闭。 「彻底停止」改为一次性的「统一关闭」,场景 / MCP / 技能 / 子智能体 / 提示词 / 记忆六页在有临时运行时出现「全部关闭」;技能行可编辑,场景 / 子智能体 / 记忆 / 快捷提示词补齐逐条「统一关闭」。关闭后徽章即时消失,不再触发列表重排。
新增
- 技能可编辑:行菜单新增「编辑」,可改简介与正文,名称只读;官方内置与只读来源不提供编辑 / 删除。
- 页头「全部关闭」:场景 / MCP / 技能 / 子智能体 / 提示词 / 记忆六页在存在临时运行时出现,一次清掉这一域全部临时运行,执行后按钮随即消失。
- 行菜单「统一关闭」:场景、子智能体、记忆、快捷提示词也支持逐条清掉其他对话 / 工作区的临时运行;有租约时才出现,带确认弹窗,场景只退出进入过这一场的对话 / 工作区。
修复
- 统一关闭后「临时运行」徽章不消失:现在会立即消失,不需要刷新页面或等待下一次同步。
- 统一关闭导致列表重排:关闭操作不再重拉整层,已打开的条目保持原位,不会把已启用的全部置顶。
- MCP 行上长期挂着「已彻底停止」标签:标签与菜单里的「恢复启用」一并去掉,旧的持久停机记录直接拨开关即可恢复。
变更
- 「彻底停止」改为「统一关闭」并改为一次性:关闭后不留下持久停机状态,之后可以重新打开。
- 页头批量按钮统一改为「全部关闭」:放在「回收站」右侧,红色边框与红色字体。
- 技能来源卡片去掉逐条「彻底停止」:关闭来源只改默认,正在使用它的对话 / 工作区按租约继续;需要立即切断时用页头「全部关闭」。
- 兼容页移除更新检查行:需要时点右上角更新按钮;那颗按钮始终只查一次,不再跳转兼容页。
- 「保存到场景」改为「保存」;技能页「创建技能」改为「创建」。
0.21.3
本次重点:隔离粒度收尾。 回执与工具描述按当前粒度措辞,不再三档并列;记忆列表认全两个恒常注入的保留桶;「全部全局」下旧会话记录不再继续生效。另清掉严格索引检查下的存量错误,桌面端启动时自愈鉴权 cookie。
新增
- 启动时修剪桌面壳的鉴权 cookie:桌面端每次启动换一条
dsh-auth-*却不清理旧的,堆到几十条后 welcome 握手会被拒(表现为「Web authentication failed」、应用起不来);现在装配期清一次,只动127.0.0.1上该前缀的行。 npm run check:strict:按目标清单判定noUncheckedIndexedAccess是否清零,清单外的错误只计数不阻塞。- op 登记表对账新增「无分类标志」一项:有条目却一个分类都没声明的 op 现在会被查出来。
- 注入一条「设置写在哪一层」:工具 schema 是静态的,
scope参数三档并列写着,模型读不出自己正处在哪一档,于是回执和描述只能同时讲三种情况。现在注入的六个域里有一条消息在标题下多一行当前粒度(优先挂「场景」,其次「记忆」;delta那条不挂),切档时自动重发。约 10–15 tok/轮,全轮只付一次。
修复
- 插件升级后旧框架文案不刷新:已有对话里的注入引导语停在旧版本,现在升级后各域补发一次。
- 旧版本留下的注入消息不补发:升级前的消息被当成「内容没变」,现在会补发一次。
- MCP 启动 / 重连时两次注入:启动窗口里先发一条「已清空」、连上后再发一次内容;现在窗口内不发,超过宽限期仍如实清空。
- 只改大小写的重命名会让文件在 profile 里消失:Windows 与默认 macOS 的文件系统不区分大小写,
docs/update.md→docs/UPDATE.md这类改名后,复制那步写穿的还是旧文件、清理那步又把它当成陈旧文件删掉,一次构建的净效果是文件不见了(要跑第二次才补回来)。现在同步前先按「忽略大小写同名」清掉旧名。 - 请求栅栏可能永久停在降级档:宿主的
connection服务在路由注册之后才挂载时,那个undefined会一直留在闭包里,此后每个请求都只走本地回环判定(没有浏览器会话鉴权)。现在按请求现取。 - 更新检查的「复制安装命令」指向更旧版本:本地版本比 registry 最高兼容版还新时,那颗按钮给的命令 pin 的是
bestCompatible(更低),点下去等于引导降级;该行连同按钮一并去掉。 - 模型工具表里
memory_manager_search一格空白:行内与悬停两档文案补齐(中英)。 memory_manager_list把_shared的记忆标成「场景未启用」并默认藏起来:global与_shared两个保留桶都恒常注入(注入侧无条件把它们放进生效集合),而列表只认global—— 于是每条都在上下文里的公共基线记忆,在名单里被标成没启用、默认还看不见,模型照它回答「没有这条记忆」。现在两者同口径,injects from:那行也在有这类条目时才点名_shared。- 「全部全局」粒度下旧会话的提示词覆盖仍在生效:切到全局后侧车里的旧会话记录仍然留着(切回来还要用),而取提示词作用域时退回真实会话 id 去读它 —— 判定侧(
promptOverrideActiveOf/promptBaselineDivergedOf)在全局档一律按「没有覆盖」算,两边自相矛盾:同一个全局设置下,这个对话按它当年钉的场景 / 覆盖走、别的对话按全局走。现在全局档不读会话层。 - 按工作区隔离时,会话层回执把影响范围说反了:原文写「别的对话不受影响」,而那一格由同工作区的对话共享;现在按当前粒度分别说「这个对话」或「这个工作区」,六个域统一。
mcp_manager_list不认逐工具的会话开关:本作用域关掉的 MCP 工具在清单里仍报开着(mcpm-tools读的是全局停用表),现在按四层并值投影,两层不一致时才加限定词。*_save的回执可能指向这个作用域里没有的工具:点名*_switch前改用按 agent 判的可见性(工具表是每个作用域一份)。prompt_manager_apply在钉住别的场景时不吭声:现在说清改的是机器级那个场景、本作用域看到的没变,并给出改绑定的路径;回执里的场景名也改成名字(显示名另附)。
变更
- 删掉工具依赖里的
toolVisible:它只读全局开关,在「工具表按作用域各一份」之后必然误判,点名处已全部走toolVisibleFor。 scene_manager_save的描述压缩:去掉档案里装哪些东西的枚举(回执本来就逐节报),只留「进入时开它列出的、其余全关」这一句判据。scope参数不再用内部术语:lease/state file/memory index这类实现词换成「这个作用域」「全局」的说法,描述里不再出现模型看不懂也查不到的构件名。- 删除过期与孤儿注释:两段从未生效的文档块、代码搬走后留下的说明、粘在上一行末尾的注释。
- 四个解析器在严格索引检查下清零:SKILL.md frontmatter、
cordis.patch.yml、记忆发现、按约定发现的来源。 - HTTP 入口的
args只接受普通对象:字符串 / 数字 / 数组 / null 一律归一为空对象。 - 四条只读 op 补上显式
readonly:mcpm-list、skill-state、subagent-list、agentsmd-list。
0.21.2
本次重点:生效层级。 设置不再只有一份 —— 每个对话默认各有一份,兼容页可切「全部全局」(所有对话共用一份,即加会话管理之前的样子)或「按工作区」(同一工作区的对话共用一份)。全局关着的服务器与技能来源,本对话要用时临时运行,别的对话看不见。
新增
- 生效层级可选:兼容页可切「全部全局 / 按工作区 / 按会话」,默认每个对话各一份设置,切走时已有记录保留。
- 按对话隔离:本对话改过 > 进入的场景 > 创建时的快照 > 全局,逐格叠加。
- 全局意图与租约运行:全局开关只表达「默认要不要」;本对话要用全局关着的服务器 / 技能来源时临时运行,行菜单可「彻底停止」。
- 六个域都能按对话单独设置:逐工具开关、技能来源、模型工具表、提示词、记忆、子智能体,带「N 个对话单独设置」徽章。
- 对话里进出场景:进入按档案实时生效,退出回到本对话创建时的样子。
- 会话锁 / 工作区锁:只冻结当前层的写入,与场景锁互不干扰。
- 记忆搜索工具:
memory_manager_search按名字 / 场景 / 描述 / 标签 / 正文搜,出厂默认关闭。 - 记忆索引一键修复:索引被隔离后,场景页给一颗修复按钮。
- 开机自检:启动时核对上个进程有没有留下没干完的状态,并在场景页列出。
- 并发编辑指纹:文件在编辑期间被别人改过时拒绝写入,弹窗给「重新加载 / 覆盖保存」。
- 插件更新检查:兼容页与面板右上角都能查,按宿主版本挑兼容版本、给确切版本的安装命令,从不自动更新。
- 诊断信息一键复制:插件 / 宿主版本、平台、数据目录与各类计数拼成一段纯文本,不含密钥与正文。
- 兼容矩阵:
node scripts/compat-matrix.mjs输出各宿主 × 能力的静态矩阵到docs/COMPATIBILITY.md。 - 三份文档:故障排查、架构、兼容矩阵。
修复
- MCP 停用表写坏后静默失效:损坏时所有
mcp__*拒绝调用,兼容页报降级并给「重置停用表」。 - 服务器名含
__时停用工具可能漏拦。 - MCP 改名中途失败留下半套状态:失败时回滚,回滚不了就如实报残留。
- MCP 批量开关静默跳过失败项:全部失败回
ok:false,部分失败列出哪几层没改成。 - MCP 列表把明文 env / headers 显示出来:列表一律打码,只有明文接口才给真值。
- MCP 注入段把没连上的服务器常驻进上下文:只有此刻真有工具注册的服务器才进段。
- 模型工具表侧车损坏时关掉的工具复活:损坏时沿用上次成功值并拒绝保存。
- 模型工具表并发改写丢更新。
- 导出落盘失败仍回「成功」:改为如实回失败并带上原因。
- 用户内容写盘可能留下半截文件:提示词、快捷提示词、人设启停与回收站保留期改原子写。
- frontmatter 里的引号与未知字段被吃掉:编辑记忆只替换名字、描述与正文,其余原样保留。
- 令牌覆盖条目在空补丁
[]上写出非法 YAML。 - 环境变量供令牌时一直误报「待重启」。
- 关闭 / 删除令牌时提示「令牌不对」却无处输入。
- 注入 / 斜杠设置保存失败仍显示成功。
- 可见性 / 执行守卫的降级不出声。
- 原型链上的同名属性冒充已登记操作:未知操作一律 404。
- 悬空符号链接可绕过根内断言:写不出根外。
- 快照 zip 没有解压限额:条目数、单条字节与累计解压量都设上限。
- 记忆索引清理可能删掉本该保留的条目:扫描不完整时不再清理,改为上报。
- 「已清空」通知挡住后续注入、且每轮重复:只在状态刚变时发一条。
- 长对话反复播报「工具已更新」。
- 空闲时 CPU 持续偏高(issue #21):工具事件密集时,MCP 状态段不再逐条全量重算,合并到 2 秒一窗。
- 切到「按工作区」后场景勾着却不注入:播种不再把「已退出场景」带进新层,新工作区从「跟随全局」开始。
- 插件重载可能留下技能目录监听:卸载与「读自定义目录」撞车时,晚挂上的监听当场收掉。
- 会话摘要缓存无上限:改为 200 条 LRU,长期运行不再累积。
- 极简预设下项目
AGENTS.md丢失:没挂官方指令行时插件自己把项目指令链送进上下文。 - 兼容页把「两份拷贝」算成可用。
- 深色模式页签条与页面不同色。
- 侧栏页内容一长页签浮在半空。
- dsh web 上工具管理面板所有接口报「调用方不是本机所有者身份」。
- 退出场景后「取消应用」不可用。
变更
- 访问令牌区收成两行:令牌行与保护开关并排,配置改了没重启时显示「待重启生效」。
- 删除令牌同时清掉本机记录:只清本机改用「锁定」。
- 全局提示词改为会话冻结快照:每个对话首次注入时冻结当时的
~/.dsh/AGENTS.md,之后只影响新对话。 - 模型工具默认写本对话:
*_manager_switch与场景 / 快捷提示词写入默认只影响当前对话,scope: "global"才改全局。 - 场景点开着的那一个 = 退出模式:不再有「钉住」这一说。
- 面板顶部的会话下拉只列当前会话区里的会话,分组显示真实标题,全局默认置顶。
- 作用域行与页签一起吸顶。
- HTTP 回执状态码对齐语义:405 / 403 / 413 / 404 / 500,回包形状不变。
- 兼容范围收窄到 DSH 0.2.1 一代:
engines.dsh与 11 个 peer 范围改为>=0.2.1-rc.2 <0.2.2;0.2.0 及更早的宿主请装对应版本的插件。 - 兼容矩阵新增「未适配」态。
- 新增直接依赖
semver。 - 25 条模型工具描述瘦身:去掉位置指引与重复的省略说明。
安装 / 升级
dsh plugin --profile web add dsh-plugin-tool-management@latest # web 版
dsh plugin --profile desktop add dsh-plugin-tool-management@latest # 桌面版(先把 Desktop 完全退出)兼容范围已收窄到 DSH 0.2.1(
>=0.2.1-rc.2 <0.2.2)。还在 0.1.7 / 0.2.0 上的请先升 DSH,否则本版装不上。
完整逐条见 CHANGELOG,升级概览见 docs/update.md。
0.21.1
[0.21.1] - 2026-10-18
新增
- 侧栏入口:侧栏加一行「工具管理」,兼容页可随时关闭 / 开启(默认开启)。
- 插件行显示名:中文显示「工具管理」,英文显示 "Tools Management"。
变更
- 「工具」改名「工具管理」:设置分区、侧栏入口与界面指路文案一并对齐。
- 场景一条一行:单列排列,描述固定第二行,开关与 ⋯ 右对齐。
- 来源卡头目录下移:目录改到标题下一行,窄面板里也照常显示。
- 归档会话行放宽:标题、目录与日期不再挤在一起。
- 会话页标题去掉加粗:目录卡头与其余页一致。
- 令牌提示压成一行。
- 模式横幅按钮:「退出模式」红字红框;「锁定」加粗,悬停才泛琥珀。
- 场景卡片精简:锁定键只在进入场景后出现在「退出模式」旁,提示词标签只留异常两种。
- 回收站详情补全:场景与记忆补上条目信息,技能条目套用技能详情排版。
- 提示词页场景提示:与 MCP 页同一句。
修复
- MCP 备注改到编辑页:详情页只读,并带一格空备注位。
- MCP 关掉后状态灯立刻变灰。
- 先打文字再打斜杠没有菜单。
- 场景开关与 ⋯ 没有垂直居中。
- 场景里的技能被删除后就退不出场景。
- 归档会话行内按钮没有边框。
- 锁定键悬停时字色变黑。
- 回收站详情里的技能来源显示成 uuid。
- 开关圆角与官方不一致:方肩改为正圆角。
0.21.0
[0.21.0] - 2026-10-17
适配 DSH 0.2.1-rc.2。
新增
- 提示词页显示共享的全局指令文件:
~/.agents/AGENTS.md也在被注入,改这里没生效时能看出是那一份在说话。 - 兼容页功能总览新增四条宿主契约行:子智能体人设委派、子代理工具限制、子代理创建时序、Web 连接准入 —— 这几项缺了不抛错、只是功能少一半,升级后第一眼可见。
- 兼容页新增「裸模块解析」一块:列出插件按裸名 require 的四个官方包(MCP 客户端 / 人设 / AGENTS.md / 技能目录)与各自守住的契约标识,官方撤包或改契约从此在界面上可见,不再只有命令行能看见。
- 兼容页功能总览的依据写实:子智能体与提示词两行改报「依赖的宿主模块在场」,不再用一句恒真的「无降级上报」糊过去。
修复
- 人设的工具限制不再慢一步:改为在子代理创建时就施加,首轮工具调用前已生效。
- 面板可以挂在反向代理子路径下:请求地址按页面地址解析,不再固定写死根路径。
- 带工具限制的 fork 委派会明确报错,不再静默放宽权限。
- Web 版鉴权补上调用方身份:只有本机所有者身份的请求才会被受理。
变更
- 插件依赖与兼容范围对齐 DSH 0.2.1-rc.2:兼容范围按代设上界,跨 minor 升级需同步适配。
- doctor 不再把
connection.admit误报成缺失:该包不是插件依赖,静态检查改从宿主安装读取;宿主安装也取不到时如实报「只能对活宿主查」,而不是编一个「缺失」。 - 子智能体临时预设改为引用计数:同一组合复用定义,失败时释放,不再在预设库里堆积。
- 允许追问的回执改说结算通知:完成后会收到一条带着最终产出的通知。
- 子代理嵌套深度的注释修正为官方默认 1。
- 注入到模型的模板文案改成英文:板块标题、取代声明、补充说明、清空 / 截断 / 未列出这些提示;提示词正文首行改用官方的
Instructions from:写法。场景名与说明、记忆正文、备注、AGENTS.md等你自己写的内容仍原样注入。 - 模型侧的工具输出与报错也改英文:工具回执、校验失败与警告一律英文;面板文案仍中英双语,你自己写的名称与正文原样。
- 技能、MCP、子智能体三个注入了工具名的板块补上触发条件:写清什么时候该查这张表、什么时候该走带人设的委派;并说明取正文的工具被关掉、服务器未连接、人设不可调用时该怎么读。技能块首句补一句定义(技能是按需加载的任务指令集)。
- 场景块补一句定义:说明记忆、提示词、工具与人设都已按当前场景筛过,不再只给场景名与说明。
- MCP 段常驻,并补上第三档状态:只要有一台该说的 server 就发,不因没有备注而省略;「连着但工具全被停掉」标成
no tools enabled here,不再与「没配过」混为一谈;说明行仍按内容发,超过上限时点名mcp_manager_list。 - 记忆段的截断态改成给模型读的文案:截断标记不再是一句 HTML 注释,未注入清单不再带字节数;真截断时不再声称「这是全部」。
- 「已清空」通知按原因分叉:官方接管时说明是官方在送、旧内容作废;用户关掉或子会话不适用时说明这里不发送。
- 注入的首份内容不再带「取代」声明:「同一类内容以最新一份为准」只在替换旧消息时发,「只列了启用的技能」这类边界陈述每份都发。
- 提示词块补一句效力声明:说明这些规则要遵循、你在对话里说的优先。
0.20.3
dsh-plugin-tool-management 0.20.3
界面与官方对齐一批:焦点环、圆角、等宽字体改用官方 token;修好 MCP 连接失败时状态灯不红、新建记忆弹窗误关丢内容。
焦点环
- 改用官方的色与宽:按钮 / 芯片 / 开关 / 行选择等处跟宿主同一档焦点色
- 输入框与下拉只提亮描边,搜索框多加一圈淡蓝光晕
- 鼠标点击不出环,键盘才出,与官方一致
- 不再盖掉宿主「不要轮廓」的设定(#18)
状态灯
- MCP 加载中改黄色(原为绿色,和已连接分不清)
- 修好连接失败时状态灯是灰的,与「未加载」分不出来
界面
- 分组头计数只留数字,不再带「个服务 / 项」这类量词
- 圆角与等宽字体改用官方 token
弹窗
- 场景编辑器里「新建记忆」误关不丢内容:30 秒内重开能填回
0.20.2
dsh-plugin-tool-management 0.20.2
界面降噪一批:行尾动作收进 ⋯、没在用的分组默认折叠、会话整行可点勾选;修好折叠卡片要点两次才展开。
列表行
- 行尾新增 ⋯ 菜单:记忆 / 提示词 / 子智能体 / 场景卡 / 场景编辑器草稿行的编辑与删除收进去,破坏性动作在菜单里给红字
- MCP 与技能保留常驻的「详情」,技能的「删除」也拿回行内
- 行 2 的几段元信息之间补中间点;MCP 行不再显示启动命令
折叠与默认态
- 没在用的分组默认折叠:未启用的场景、一条都没开的技能来源与提示词分组、会话的工作区
- 修好默认折叠的卡片要点两次才展开
记忆
- 场景卡计数改成「启用 / 总数」、备注显示在名称下面一行、附件标记改成回形针 + 个数挂在体积旁边
- 未启用场景卡里的开关跟着置灰;记忆带附件时在场景编辑器与记忆集里也标出来
会话
- 整行可点勾选(拖选目录文字不算勾选)
- 行 2 补归档日期
文案与打包
- 技能来源「已停用」改成灰色「未启用」;「查看详情」→「详情」、「移到回收站」→「删除」
- npm 交付物不再带演示视频(包体 59 MB → 2.7 MB)