Repository navigation
Releases: PKUfudawei/dsh-capability-menu
Release list
v0.1.7
v0.1.7 更新内容
- 按需工具调用: 修复
meta_invoke嵌套调用时未始终传递当前 Agent 的问题,并阻止已知 ID 绕过会话作用域限制;按最终档位同步处理web_search、web_fetch的宿主提示。 - 能力发现: 补齐当前会话中的 Tool 和 Skill 收集,改进技能来源识别与「纳入管理」操作,修正菜单中的相关交互。
- 按需检索:
meta_search只列出当前会话可用的按需能力;零命中时返回空结果。取消分页,默认最多返回 20 项,可用max_results调整至 100 项。检索描述上限同时作用于默认描述与自定义描述的匹配范围。 - 策略与目录: 菜单直接展示与
meta_search共用的内存索引,不再生成 YAML 检索目录;合并档位选择和检索描述状态,简化配置与 README。 - 兼容性: 已按 DSH
0.2.1-rc.3验证;依赖范围接受 DSH0.2.x稳定版及0.2.1-rc.3起的同版本预发布版。
感谢 @1010231693 在 Issue #21 中提供按需工具搜索、调用及宿主提示的复现截图,帮助定位并修复这些问题。Windows PPT 工具仍需在原环境验证。
安装:dsh plugin --profile web add @daweifu/capability-menu
What's new in v0.1.7
- On-demand invocation: Fix propagation of the current Agent through nested
meta_invokecalls and prevent known IDs from bypassing session scope restrictions. Project host prompts forweb_searchandweb_fetchaccording to their effective tiers. - Capability discovery: Collect Tools and Skills from the current session, improve Skill source detection and adoption, and refine the related menu interactions.
- On-demand search:
meta_searchlists only on-demand capabilities available to the current session and returns no results for a zero-match query. Pagination is removed; results default to 20 and can be raised to 100 withmax_results. The description limit applies to matching for both default and custom descriptions. - Policy and catalog: Show the same in-memory index used by
meta_searchin the menu instead of generating a YAML catalog. Combine tier choices and search descriptions in one state file, and simplify configuration and documentation. - Compatibility: Verified with DSH
0.2.1-rc.3; the peer dependency accepts stable DSH0.2.xand prereleases from0.2.1-rc.3onward within that version line.
Thanks to @1010231693 for the reproduction screenshots in Issue #21, which helped identify the on-demand search, invocation, and host-prompt problems. The Windows PPT tool still needs verification in its original environment.
Install: dsh plugin --profile web add @daweifu/capability-menu
v0.1.6
v0.1.6 更新内容
- 适配 DSH 0.2.0-rc.2: 更新依赖与 preset scope 读取方式,清除旧版 DSH API、旧档位规则名和旧检索状态的兼容代码。
- 能力发现: 修正工具与技能清单;
meta_search增加分页及准确的total/returned,按会话可见范围过滤结果;改进不可调用技能、同名覆盖和损坏预设的诊断;Skill 可用force: true重新加载。 - 桌面版与档位操作: 注册
capabilityPolicy端点,修复桌面宿主中的 404;档位变更只提交实际移动的能力,启动目录刷新设置超时,并在宿主重载期间重试暂时性错误。档位状态现写入独立文件,避免点选时改写受监视的 patch 并触发插件重载。 - 按需检索目录: 完善自动生成的 YAML 目录;按需能力可编辑检索描述,默认上限 320 字符并可在界面调整。检索描述只影响搜索和目录,不改变能力来源定义。
- 能力菜单: 调整中英文文案、页头和操作按钮;版本号旁可发现 npm 新版本,并区分 npm 安装与本地源码链接的更新方式。
- 文档与发布: 更新中英文 README 和截图,增加基于 annotated tag 的 GitHub Release 工作流。
感谢 @jiuweifanghua 在 Issue #14 中提供详尽的技能数量与发现问题报告,推动分页、计数和诊断改进。感谢 @moyuer233 在 PR #16 中提交桌面版端点、档位写入、启动刷新及重载恢复等修复;维护者在此基础上完成整合与后续调整。
安装:dsh plugin --profile web add @daweifu/capability-menu
What's new in v0.1.6
- DSH 0.2.0-rc.2: Update dependencies and preset scope handling; remove compatibility code for older DSH APIs, tier names, and search metadata.
- Capability discovery: Fix tool and skill inventory; add pagination and accurate
total/returnedvalues tometa_search; filter results by session visibility; improve diagnostics for non-invocable, shadowed, and broken-preset skills; allow Skill reloads withforce: true. - Desktop and tier changes: Register the
capabilityPolicyendpoint to fix desktop 404s; persist only actual tier moves, bound startup catalog refresh, and retry transient errors during host reloads. Tier state now lives in a separate file so clicks do not rewrite the watched patch and reload the plugin. - On-demand catalog: Improve the generated YAML catalog and add editable search descriptions. The default limit is 320 characters and can be changed in the UI. Edits affect search and the catalog without changing provider definitions.
- Capability Menu: Refine Chinese and English copy, the header, and controls. Detect newer npm versions beside the installed version and distinguish npm packages from linked local source during updates.
- Docs and release flow: Refresh both READMEs and screenshots, and add a GitHub Release workflow based on annotated tags.
Thanks to @jiuweifanghua for the detailed skill inventory and discovery report in Issue #14, which guided pagination, counts, and diagnostics improvements. Thanks to @moyuer233 for the desktop endpoint, tier persistence, startup refresh, and reload recovery fixes in PR #16. The maintainer integrated and refined these contributions.
Install: dsh plugin --profile web add @daweifu/capability-menu
v0.1.5
能力菜单
- 支持 DeepSeek Harness 0.2.0-rc.1,同时兼容 0.1.5-rc.2。适配新版 agent preset scope API,并枚举所有可用 preset scope 中的工具与技能。
- 完善 MCP 注册与编辑:新建和编辑复用同一套表单;注册时自动创建缺失的 Cordis patch 文件及父目录,完成后立即刷新能力列表。
- 增强 GitHub Skill 导入:支持仓库默认分支根目录、指定分支根目录和指定分支下的技能子目录;也可导入本机目录。导入时校验
SKILL.md,并只复制所选技能目录。 - 改进 Skill 信息与预览:保留编辑前置元数据时的 YAML 格式;将 Skill 元数据按表格呈现,文件内容按 Markdown 渲染。
- 打磨能力菜单界面:改进设置导航图标、页面标题与版本显示、空状态和表单说明,并加入项目反馈链接。
其他修复
- agent preset 服务晚于能力菜单加载或被替换时,自动补齐工具目录;避免对同一 preset 服务重复扫描。
- 更新中英文 README 和界面截图,说明 DSH 版本兼容范围及 GitHub Skill 导入方式。
- 将 tsdown 弃用的
external配置迁移至deps.neverBundle,保持客户端依赖外置行为。
Capability menu
- Support DeepSeek Harness 0.2.0-rc.1, while retaining compatibility with 0.1.5-rc.2. Adapt to the newer agent-preset scope API and enumerate tools and skills across all available preset scopes.
- Improve MCP registration and editing: share the same form for creation and editing; create missing Cordis patch files and parent directories during registration, then refresh the capability list immediately.
- Expand GitHub Skill imports: accept a repository's default-branch root, a specific branch root, or a Skill subdirectory on a specific branch. Local directories are also supported. Imports validate
SKILL.mdand copy only the selected Skill directory. - Improve Skill details and previews: preserve YAML formatting when editing frontmatter, display Skill metadata in a table, and render file contents as Markdown.
- Polish the capability menu UI: refine the settings icon, page header and version display, empty states, and form guidance; add a project feedback link.
Other fixes
- Complete the tool catalog when the agent-preset service loads after the capability menu or is replaced, without rescanning the same preset service unnecessarily.
- Refresh the English and Chinese READMEs and screenshots with the DSH compatibility range and GitHub Skill import guidance.
- Replace tsdown's deprecated
externalsetting withdeps.neverBundle, preserving the client dependency externalization behavior.
v0.1.4
能力菜单
- 预设技能单独成组(#12):Skills 页新增第三个子页签「预设技能」,只在确实存在随 agent preset 分发的技能时出现,组内以 preset id 作小标题。这类技能不再提供「纳入管理」——那个动作会把预设资产软链进用户技能根、对所有会话生效,正是 issue #3 要避免的;服务端也直接拒绝,双保险。跨作用域同名规则定为「全局层优先、预设之间先到先得」。感谢 @JshGao 提出(#3)。
- 过滤框改为匹配「名字 + 所属分组」,并支持正则:搜
系统能带出内置分组,搜cordis能带出该预设下的技能;忽略大小写,正则直接输入(如cordis|ptc、/^mcp__dbx/)。 - 删掉「刷新」按钮,改为自动重读:切回页签、配置被外部修改(转发事件
settings/document-updated)、carrier 重连(connection/reset)都会自动重读;再加一个 5s 的catalogVersion()兜底轮询,覆盖「往已注册技能目录里丢新文件」这种线上不广播的变化。档位写入进行中会先挂起,不会把刚点的那一行刷回旧值。
其他修复
meta_invoke:嵌套{id, kind, args}信封会被指名报错,而不是原样转发后由目标工具报「缺字段」(#11);args的对象契约收紧,不再静默降级成{}(#8)。policy:档位签名比较的层级错了,已有 override 时所有 GUI 档位操作都不落盘(#7,修复来自 @IamMiao)。- 测试:修掉 macOS 上把
/tmp与/private/tmp当成两个目录的存量失败;tests/policy.spec.ts用轮询替代 120ms sleep(#9)。
Capability menu
- Preset skills get their own tab (#12): a third sub-tab appears only when skills shipping with an agent preset actually exist, grouped by preset id. Those rows no longer offer 纳入管理 — adopting one would link a preset asset into the user skill root and apply it to every session, which is what issue #3 asked to avoid; the server refuses the call as well. Same-name resolution is now global-layer-first, then preset order.
- The filter matches a name and the group a row sits in, and takes a regex:
系统finds the built-in group,cordisfinds that preset's skills; case-insensitive, e.g.cordis|ptcor/^mcp__dbx/. - The refresh button is gone — returning to the tab, an external settings edit (
settings/document-updated), a carrier reconnect (connection/reset) and a 5scatalogVersion()poll (for a file dropped into a registered skill directory, which nothing announces) all re-read for you.
Other fixes
meta_invoke: a nested{id, kind, args}envelope is named in the error instead of being forwarded and failing as a missing field (#11); the object contract onargsno longer degrades to{}(#8).policy: the tier-signature comparison read the wrong level, so every GUI tier click was a no-op once an override existed (#7, fixed by @IamMiao).