Repository navigation
Releases
v0.1.4:插件页配置面板改按官方插件页语法排版
v0.1.4:插件页配置面板改按官方插件页语法排版
修复
插件页里的配置面板多了一层卡片
本插件的配置表单同时出现在设置页子页与官方插件页,两处的页面语法不同:设置页靠卡片分组,官方插件页靠分隔线分组(官方自己的配置表单也是这样)。插件页此前套用了设置页的卡片,容器多出一层边框、圆角与底色。
现在按页面切容器语法:插件页改用分隔线分组,内边距对齐官方字段的 12px 0;设置页子页保持卡片不变。字段、校验与控件没有分叉。
同一页的「测试环境」一节此前也漏在切换之外,一并改到。
v0.1.3:修复 dshpmc 命令行无输出 + 去掉文案里多余的星号
修复
dshpmc 命令行工具无输出
经 npm 安装后敲 dshpmc,命令不打印任何内容,退出码是 0——看起来像"执行了但什么都没做"。直接运行包内的 dist/cli.js 则正常。
原因是入口判据按参数里的脚本名判断自己是否被当作可执行文件启动,而 npm 把命令装成 node_modules/.bin/dshpmc 这个符号链接,名字对不上,于是主逻辑从不执行。现在按真实路径判断,符号链接、Windows 上的同名包装、直接调用三种形态都成立。
影响版本:0.1.0 至 0.1.2。
体检与修复文案里显示多余的星号
诊断结论与清理结果里的部分句子带 **,而界面与命令行都是纯文本渲染,用户会原样看到这两个星号。已去掉,句子含义不变。
清理结果里"完好但过时的链接"那段说明同样去掉了星号。
新增
跨端常量护栏
插件与客户端各有几处必须一致的常量(路由前缀、备份格式标识、备份版本号、设置命名空间)。它们分处两端、无法在运行期比对,所以改用源码级断言钉住,改任何一侧都会让测试失败。
文案护栏覆盖到本次新增的三类诊断
原先的"不许出现未渲染 Markdown"断言只覆盖它能产出的那些诊断。已补上依赖兜底目录的三类场景(共享层断链、共享层过时链接、环境私有层断链),让这些文案真的进入检查范围。
升级
dsh plugin --profile <name> add dsh-plugin-manager-companion@latest装好后重启该 profile。
验证
- 全量单元测试 686/686 通过
- 生命周期端到端检查 14 项通过
- 浏览器渲染检查 16/16 通过
- 从 npm 安装 0.1.3 后实测:
dshpmc经符号链接调用输出 1099 字节,与直接调用一致;dshpmc version输出 0.1.3 - 变异验证:去掉星号护栏的覆盖场景后,把星号加回去会让测试失败;把入口判据改回旧写法,符号链接用例同样失败
未验证
- Windows 真机:删除一棵目录树失败后的重试与报错路径未在真实 Windows 上验证。该路径在 POSIX 上造不出失败形态,而 Windows 上底层实现会忽略只读属性,两边都取不到真机证据,判据落在注入式行为测试上
- Windows 真机:
dshpmc的入口修复在 Windows 上用的是 npm 生成的同名包装而非符号链接,本次未在真实 Windows 上验证该形态 - macOS:未验证
v0.1.2:依赖兜底目录的陈旧链接清理 + 插件页去卡片装饰
新增
依赖兜底目录的陈旧链接:诊断与清理
插件为所有环境铺一层共享依赖目录(~/.dsh/profiles/node_modules)。旧版本写下的链接在新版本升级后不会被清掉,磁盘上会留下一批指向已删除目录的断链。体检的依赖层现在会扫出这些链接,分成三类:
- 断开的链接:目标已不存在。可一键清理,清理只删符号链接本身,不递归删目录、不碰其它条目;
- 完好但过时的链接:目标还在,但不在当前安装的依赖范围内。只报告,不自动删;
- 正常:目标存在且在依赖范围内。
链接删完后,因此变空的 @scope 目录会一并删掉——只删确认为空的目录。
设置里可以关闭"过时链接"的提示;断开的链接不受该开关影响。
环境私有兜底层的断链检查
每个环境自己的 <环境>/.dsh-module-fallback/node_modules 也一并检查。这个目录由官方维护,出现断链属于官方未清掉的残留,插件只如实报出,不代为清理。
插件页升级行去掉卡片装饰
插件详情页里我们注册的那一块原先自带边框、圆角与底色,与官方插件页的分节语法冲突。现在只保留内容排布,容器装饰交还官方页面。
修复
删除目录树失败后的处理
删除环境目录失败时,现在会清理只读属性后重试一次,并在仍然失败时给出三层说明:原始错误、已做的处理、仍然失败的原因。
需要说明的是,这一改动最初的依据(Windows 上 fs.rm 的 force 不覆盖只读属性)经复核并不成立:该说法不在 Node 文档里,且底层实现会忽略只读属性。实现保留,理由已改为上面两条——失败后重试一次,以及失败时如实报错。
升级
dsh plugin --profile <name> add dsh-plugin-manager-companion@latest装好后重启该 profile。
验证
- 全量单元测试 682/682 通过
- 生命周期端到端检查 14 项通过
- 浏览器渲染检查 16/16 通过
- 真机清理:用户机器上的 516 条断链(含
@scope下一层)清理为 0,空@scope目录 29 个一并清掉;二次扫描无残留,清理后用该环境启动正常
已知问题
体检与修复的部分文案会显示多余的星号(例如「官方有清理机制」)。这是显示问题,不影响功能与诊断结论,已在 0.1.3 修复。
此外,本版本及更早版本的 dshpmc 命令行工具经 npm 安装后无法输出内容(退出码为 0),已在 0.1.3 修复。
未验证
- Windows 真机:删除目录树失败后的重试与报错路径未在真实 Windows 上验证。该路径在 POSIX 上造不出失败形态,而 Windows 上底层实现会忽略只读属性,两边都取不到真机证据,判据落在注入式行为测试上
- macOS:未验证
v0.1.1
修复「关于」页的两个缺陷。
修复
DSH 版本显示未知
插件用路径后缀判断安装锚点是不是官方包,不读 name 字段。在官方 monorepo 里,那份文件的实际路径是 apps/cli/package.json——内容完全正确(name 就是 @deepseek-ai/dsh、版本也对),却因为路径不匹配被判成"不是官方包",版本显示未知。
现在按 name 字段认包。包的身份写在 name 里,路径不是身份。
本插件版本显示未知(Windows)
插件用 new URL(import.meta.url).pathname 推导自身位置。该写法在 Windows 上返回 /D:/…(多一个前导斜杠),拼接后的路径无法定位到包根,版本显示未知。
现在改用 fileURLToPath。
升级
dsh plugin --profile <name> add dsh-plugin-manager-companion@latest装好后重启该 profile。
验证
- 新增 8 条 host 侧读盘回归测试(
tests/about-facts.test.mjs),覆盖 monorepo 锚点、常规安装锚点、安装根候选、非官方包、损坏 JSON、自身版本、以及"源码里不许再用.pathname" - 变异验证:改回路径后缀判据 → 测试红;改回
.pathname→ 测试红 - 全量 632/632 通过
- 从 npm 安装 0.1.1 后实测:monorepo 锚点读出
0.1.6-alpha.2;自身版本读出0.1.1;非官方锚点仍如实报未知
未验证
Windows 上的实机验证。路径修复的判据由源码级断言钉住(Linux 上测不出 .pathname 的差异),但没有在真实 Windows 上跑过一次。
v0.1.0
首个发布。DSH 官方插件管理器的补充:在官方插件页的基础上,补上安装前检查、环境诊断、多环境管理与插件升级。
安装
dsh plugin --profile <name> add dsh-plugin-manager-companion@latest要求 DSH >= 0.1.6-alpha.2。装好后在插件管理页启用,重启该 profile。
安装前质量门
安装任何插件前先检查这个包:未声明的 import、声明了但没装、把官方包声明成普通依赖(会在 profile 里装出第二份副本)、入口解析不到。不合格的包不装进环境。
可选试装:候选包先装进 <环境名>-dpmc 测试环境并启动一次,通过后才装进真实环境。试装默认关闭;开启后会在本机真实安装候选包并执行它自带的安装脚本。
环境控制台
- 体检:五层诊断(依赖、组合、运行时、一致性、生态)。每条发现带证据与处置建议,分三类:可自动修复、需确认、仅报告。未检查的层显示「未查」,不显示 0
- 环境:列出本机所有 profile 与运行状态(进程与端口),支持启动、停止、新建、重命名、删除、跨环境复制插件、备份导出与恢复
- 设置:插件配置,在界面上修改
插件市场
社区索引,可按名称、仓库、主题与描述搜索,按星数、更新时间与近期热度排序。卡片标出风险等级与可装性(社区精选、需手动安装、非插件条目)。详情展示索引原文与原始报告链接。
技能与预设
管理通过本插件安装的 SKILL.md 与 agent 预设:安装记录、重新拉取、卸载。
升级
设置页「关于」列出官方运行时、官方实验包与本插件自身的版本状态。版本选择列出全部 dist-tags,默认选中与当前同线的最新版本。升级先在测试环境中验证一遍,未通过验证的版本不装进真实环境。新版本在下次启动时加载。
命令行
dshpmc 提供与界面等价的能力,用于脚本与 CI、终端操作,以及界面打不开时的备用入口。
dshpmc analyze --profile <name> # 五层体检;有问题退出码 1
dshpmc list --profile <name> # 组合层、依赖、已装技能与预设
dshpmc install | remove | update | mount | uninstall-kind界面
![]() |
![]() |
![]() |
![]() |
平台支持
- Linux:已实机验证,含单元测试与两条端到端检查
- Windows x64:平台相关修复已在真实 win32 Node 上逐条复验。终端窗口模式依赖 Windows Terminal,没有时降级为后台启动;停止环境是强制结束进程树,不是优雅停止;文件权限位是空操作
- macOS:未验证
已知限制
- 只支持 DSH >= 0.1.6-alpha.2;更早的版本请用 dsh-web-plugin-manager 的 0.6.x
- 两条需要修改
cordis.patch.yml结构的修复只给出步骤,由用户手工完成 - 质量门回滚可能失败:官方拒绝移除部分组合包时,结果中会说明残留,需要手工删除
- 市场索引与风险分级来自上游索引,本插件只呈现,不作二次判断



