dsh-plugin-runcat-inventory(逃咪-插件总览)
中文 | English
版本:v1.3.2 · 更新记录见 CHANGELOG.md(English)
一个更好用的 DSH 插件列表:表格视图、状态过滤、启用/停用开关(热生效)、卸载、更新提醒、配置查看与复制、中英文界面自动切换。
入口在 设置 → 逃咪-插件总览(设置左侧导航,英文环境显示 Runcat Plugin Overview)。
效果预览

功能
结构
dsh-plugin-runcat-inventory/ # git clone 后的本地文件夹名(与仓库同名)
├── package.json # dsh.bundle.patch + dsh.client 声明
├── cordis.patch.yml # 补丁层:把本插件条目 insert 进根 entry 列表
├── lib/
│ ├── index.js # Host 半端:loader 清单 + /runcat-api 路由 + patch 文件编辑
│ └── client.js # 浏览器半端:ModuleLoader bundle,表格 UI
├── test/
│ └── mock-test.mjs # host 半端单元测试(node test/mock-test.mjs,5 用例)
├── assets/
│ ├── preview-zh.png # 中文界面效果图
│ └── preview-en.png # 英文界面效果图
├── CHANGELOG.md # 更新记录(中文)
├── CHANGELOG.en.md # 更新记录(英文)
├── README.md # 中文说明
└── README.en.md # 英文说明
前置条件
本插件自身零依赖:host 半端只用 Node 内置模块(外加惰性解析 profile
里的 js-yaml),浏览器半端手写 ModuleLoader bundle,无需额外安装任何包。
安装
装进 web profile(如果用的是其他 profile,把 web 换成实际名字)。
方法 A:npm 安装(最简,推荐)
dsh plugin --profile web add dsh-plugin-runcat-inventory
直接从 npm registry 拉取,包已发布:
https://www.npmjs.com/package/dsh-plugin-runcat-inventory
(若你的 npm/pnpm 配置了镜像,等待镜像同步后即可安装。)
方法 B:GitHub 源直接安装
dsh plugin --profile web add github:runcat-tommy/dsh-plugin-runcat-inventory
pnpm 直接从 GitHub 拉取;本插件无构建脚本,无需配置 allowBuilds。
方法 C:本地目录安装(开发/调试)
git clone https://github.com/runcat-tommy/dsh-plugin-runcat-inventory.git
cd dsh-plugin-runcat-inventory
dsh plugin --profile web add .
dsh plugin add . 会把本目录以 link: 方式装进 profile——本地开发
友好:改代码后重启 Web UI 即生效,无需重复安装。
验证
dsh --profile web --dump-config 末尾应出现条目——id 为
runcat-inventory、name 为 dsh-plugin-runcat-inventory。
然后重启 Web UI,进入 设置 → 逃咪-插件总览(左侧导航,英文环境显示
Runcat Plugin Overview)。
工作原理
- 数据:Host 端遍历
ctx.loader.entries()(与官方 inventory 相同),
fiber 状态映射自 FiberState;描述/版本读各包 package.json;来源读
profile 的 package.json 依赖声明。
- 启用/停用:向
~/.dsh/profiles/web/cordis.patch.yml 写入
{id, name, disabled: true} 补丁(停用)或移除该补丁(启用)。
该文件被 DSH 通过 HMR 监听(watchUserPatches),改动自动热应用到
loader —— 插件立即停用/启用,无需重启。
- 通信:浏览器半端同源 fetch →
/runcat-api 路由;路由带 loopback
信任校验(防远程网站 CSRF)。
- js-yaml 惰性解析:插件以 link: 安装时真实路径在工作区(无
node_modules),因此运行时锚定 profile 目录解析 js-yaml。
卸载
dsh plugin --profile web remove dsh-plugin-runcat-inventory
已知限制
- 若
cordis.patch.yml 含 !!js 表达式,启用/停用开关会提示失败(不
会破坏文件,仅无法自动编辑)。
- 停用补丁按
{id, name, disabled: true} 精确匹配移除;与用户手写内容
冲突时以"恰好三个键"为准。
更新记录
完整变更历史见 CHANGELOG.md(English)。
- v1.3.2(2026-10-19):启用/停用的结果提示从面板最底下移到该插件行下面
(整行显示,长文案也放得下),文案改为「已启用 X(热生效中,请点击右上角刷新按钮)」;
提示至少保留 5 秒,状态真的翻转后自动收掉,没生效则一直留着。
- v1.3.1(2026-10-19):修复"点启用/停用完全没反应"——根因是宿主里解析不到
js-yaml(
YAML_UNAVAILABLE),补丁文件一个字节都没写。启用/停用改成纯文本编辑:
追加/删除带标记的 - id/name/disabled: true 项,其余字节(注释、!!js、排版、
结尾换行)原样保留,不再依赖任何 YAML 解析器。
- v1.3.0(2026-10-19):交互重做——更新/卸载的确认弹窗点下去就关,进度与结果
改到列表行内显示(成功→「重启 DSH 后使用」或「已生效」;失败→「更新失败」+
「原因」可展开看错误码/命令/退出码/stderr);顶部横幅新增**「更新全部插件」**与
「重启 DSH」;更新成功后调用 DSH 自带 HMR 热应用,能应用就不必重启
(桌面端由 Electron 外壳管理宿主,插件内无法安全重启,会明确提示手动重开)。
- v1.2.3(2026-10-19):修掉三处实测缺陷(DSH Desktop 0.2.1-rc.2,与
"版本不兼容"无关)——① 更新/卸载必然失败,因为
dsh 根本不在宿主进程
PATH 里:新增 CLI 解析(RUNCAT_DSH_CLI / 宿主 exe + asar 内 cli.js /
PATH / 常见安装位置),找不到时返回 DSH_CLI_NOT_FOUND;② 补丁层里有
!!js 时启用/停用整片失败:注册 !!js 类型并做占位符往返,原始代码
一字不改写回;③ 写回不再丢用户注释。
- v1.2.2(2026-10-16):修复两处实测缺陷——① 更新命令现在带目标版本
(
add <name>@<latest>),不再出现"pnpm 空转 exit 0 → 自检判成更新失败";
本地链接依赖(link/file/workspace)明确拒绝更新;"已是最新"与"更新失败"
分开显示,返回体带 from_version → to_version。② 补齐宿主 peer 声明
(locale + runtime + ui-settings 三件套),市场判定从 unknown 变为
compatible。
- v1.2.1(2026-10-16):补上宿主版本要求(peer 声明)——但声明的
@deepseek-ai/dsh-client-runtime 不在桌面端宿主清单内,市场仍判 unknown
(已在 v1.2.2 修正)。
- v1.2.0(2026-09-01):新增更新提醒——本插件自身更新在面板最上方
醒目卡片展示(立即更新/暂时不用);其他插件版本列
vX → vY 高亮 +
行内"更新"按钮 + 顶部横幅;分批扫描(4/批、200ms 间隔、1h 缓存);
更新后标记"重启生效";支持更新本插件自身。
- v1.1.0(2026-09-01):里程碑版本——版本线提升至 1.x,发布到 npm
(https://www.npmjs.com/package/dsh-plugin-runcat-inventory),聚合 0.4.x
全部功能(卸载 + 已卸载标记、左侧导航入口、中英双语、npm 安装)。
- v0.4.0(2026-09-01):新增卸载功能(操作列按钮 + 二次确认 +
防卸载自身/内置包);入口从"设置 → 插件"选项卡迁移到设置左侧导航
(设置 → 逃咪-插件总览)。
- v0.3.8(2026-09-01):安装新增"方法 A:npm 安装"(最简推荐),
原方法顺延为 B/C;
package.json 增加 dsh.marketplace 声明
(供 dsh-plugin-marketplace 扫描器分类)。
- v0.3.7(2026-08-28):新增效果预览图——中文 README 展示中文界面截图,
英文 README 展示英文界面截图(
assets/ 目录)。
- v0.3.6(2026-08-28):文档——新增英文版更新记录
CHANGELOG.en.md,两份 CHANGELOG 互加语言切换链接。
- v0.3.5(2026-08-28):文档——安装新增"方法 B:GitHub 源直接安装";
新增英文说明
README.en.md,中英文文档顶部互加语言切换链接。
- v0.3.4(2026-08-27):文档更新——使用说明的文件夹名统一为
dsh-plugin-runcat-inventory(与 GitHub 仓库名一致);新增"前置条件"
章节(Node.js / DSH / pnpm / Git / 网络)。
- v0.3.3(2026-08-27):本插件自身的描述随界面语言切换——中文环境
显示中文描述,英文环境显示英文描述("详情"展开行的 Description 内容)。
- v0.3.2(2026-08-27):修复——仅本插件显示仓库地址,其余插件恢复按
安装方式显示来源;来源列内容加断行保护(
word-break: break-all),
长 URL 不再溢出到"操作"列。
- v0.3.1(2026-08-27):列宽改为固定比例(名称 36% / 状态 15% /
来源 21% / 操作 28%);来源优先显示仓库地址(package.json 的
repository),本插件显示 https://github.com/runcat-tommy/dsh-plugin-runcat-inventory。
- v0.3.0(2026-08-27):国际化——注册 zh/en 双语字典,全部界面文案
走 DSH locale 服务,随环境语言自动切换(英文选项卡名 Runcat Plugin
Overview);host 错误改为错误码、来源改为 kind+spec,由客户端翻译。
- v0.2.1(2026-08-27):插件中文名由"逃猫-插件总览"改为"逃咪-插件总览"。
- v0.2.0(2026-08-27):表格改为固定 4 列并移除粘性列;"详情"按钮
按"有描述或有配置"显示;新增名称排序、键盘 ←/→ 横向滚动、窄屏隐藏
"来源"列;修复两处跨平台 bug;新增 mock 单元测试。
- v0.1.0(2026-08-27):初始版本,7 列表格 + 启用/停用(HMR 热生效)