DeepSeek Harness 插件

dsh-multi-pet

Multi-pet compat for DSH Web: isolates the built-in pet service so it coexists with third-party pets (whale-girl). 多桌宠兼容:隔离内置桌宠服务,使其与第三方桌宠同时运行。(英文原文)

跳到安装方式

来源信息

GitHub 仓库
YiYan129600/dsh-multi-pet
最近更新
2026年8月14日
分类
趣味扩展
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/YiYan129600/dsh-multi-pet
插件名:dsh-multi-pet
作者:YiYan129600

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-multi-pet

English | 中文

DSH Web 多桌宠兼容插件:让内置桌宠与第三方桌宠(如 whale-girl)在同一 profile 内同时运行。

问题

两个桌宠插件在根上下文注册了同名的 Cordis 服务 pet

  • @linxin666/dsh-pet(随 @linxin666/dsh-web-ui-all 内置)
  • whale-girl(第三方,独立安装)

同时启用时 DSH 启动失败,报 service "pet" has been registered。常见的临时 方案是禁用其中一个。

方案

本包是一个纯 patch 型 DSH Web bundle。其 cordis.patch.yml 对内置桌宠 entry 施加 id 级补丁:

- id: pet
  name: '@linxin666/dsh-pet'
  isolate:
    pet: true

loader(cordis-plugin-loader)会给 pet entry 一个 entry 本地隔离域:它的 pet 服务注册在仅属于该 entry 的符号下(pet#pet),第三方桌宠则保留根 pet。两者共存,各自解析各自的实现。两个插件都无需修改。

为什么用 true 而不是 label:isolate: { pet: some-label } 会把使用同一 label 的所有 entry 并入同一隔离域,从而重新触发重复注册冲突。entry 本地 (true)才是正确取值。

安装

dsh plugin --profile <name> add @linxin666/dsh-multi-pet

或挂载本地构建:

dsh plugin --profile <name> add link:/path/to/dsh-multi-pet

bundle patch 在所有 bundle 层之后应用,因此只要本包排在插入 pet 行的 bundle 之后(dsh plugin add 会追加到 dsh.profile.bundles 末尾,天然满足) 补丁即生效。若未安装 dsh-pet,补丁匹配不到目标行,只警告并跳过,无害。

查看组合结果:

dsh --profile <name> --dump-config

启用、禁用与切换

桌宠是普通插件:在你自己 profile 的补丁文件(cordis.patch.yml)中对对应 entry 设置 disabled,或增删 dsh.profile.bundles 里的 bundle。切换永不卸载 依赖、永不手改生成文件。切换是即时生效还是需要重启,以已验证版本的发布说明 为准(如实披露)。

通用配方——两个第三方桌宠都注册根 pet:在你自己的 profile patch 中对其中 一个施加 id 级隔离补丁,例如:

- id: <另一个桌宠的 entry id>
  isolate:
    pet: true

未来桌宠的 provider 约定

  • 每个桌宠使用唯一 loader entry id。
  • isolate: { pet: true }(entry 本地),或每个 provider 使用唯一 label——

绝不与其他桌宠共享 label。

  • 每个桌宠使用独立命名空间的 HTTP 路由(/api/pet/*/whale-girl/* 等)。
  • 独立命名空间的存储键(数据目录与浏览器 localStorage)。
  • 独立 DOM 根节点与明确的 z-index 分配(两只宠物默认都在右下角且 z-index

相同;后挂载者在上层)。

  • 设置项中明确 visible / enabled 语义。

已知限制

  • 两个都注册根 pet 的第三方桌宠,若不对其中一个做隔离则仍然互斥(见上方

通用配方);本包开箱解决内置桌宠 + 第三方的组合。

  • 同时模式下两只宠物默认都在右下角、同 z-index,后挂载者在上层。

开发

pnpm install
pnpm test

测试(node --test):

  • patch.test.mjs — 发布的补丁是单个 id 级 entry 本地隔离。
  • compose.test.mjs — 补丁经真实 DSH patch 算法(applyEntryPatches

组合,只改动内置桌宠行;目标行缺失或 name 守卫不匹配时仅警告不失败。

  • isolate-mechanism.test.mjs — 用真实 cordis + cordis-plugin-loader 验证:

无隔离时两个 pet provider 冲突,有隔离时共存。

License

MIT