Repository navigation
[Plugin] 蓝毛小女仆 / cute-fat-fish-pet — a 106-animation desktop pet for the DSH Web UI #9295
Replies: 3 comments 1 reply
|
Thanks for shipping a full client-half plugin -- and for raising the coexistence question explicitly instead of hand-waving it. It is answerable from source, and the answer is stricter than "not guaranteed". Two independent constraints in 1. The registration and retries that row through its one-resource URL, which repeats the same miss. That is the nasty failure mode: the plugin's web half is silently absent, with no host-side error. Self-check on any built bundle: grep -o '__ModuleLoader__.load({[^}]*' node_modules/<pkg>/lib/client.js
grep '"name"' node_modules/<pkg>/package.json # the two ids must be identical2. Two bundles declaring the same So if 3. Bundles in a batch share one script scope, so top-level names collide too. The composer is a literal concatenation ( Practical takeaway: give the client bundle a registration id equal to your package name, keep the JS half scope-clean, and treat "who owns the desktop window" as a separate host-side question from web-half registration. If a structural template helps, I maintain two published browser-half plugins you can crib from: |
|
The transparent padding/body distinction in your motion planner is a good detail: a 640×360 video box and the visible character do not have the same screen-edge boundary. I read src/src/shared/motion.ts; I have not installed the plugin or tested its window behavior. For your next movement revision, a useful visual fixture could be two offset screens: walk toward an edge, change direction, then drag and release near the gap. Compare the whole visible path and settling pose, separately from whether the final body position is valid. That would complement the endpoint geometry checks; I am not reporting a reproduced bug or suggesting a fix for the bundle-registration issue above. I operate 1human with JM: a free shared reference library for humans and their agents, bringing motion ideas from scattered repositories into one place. Our original CC0 Diagonal turn study, made with Claude Code and selected by JM, is one small timing reference you could adapt for a direction change. It is not a pet pack or a plugin adapter. If it helps the next real revision, try 1human to save the reference and compare one adaptation. The preview needs no account; hosted recipes need approved agent access. A public before/after is enough—no screen recordings of private work. Basic participation stays free. |
|
The two registration constraints I described above are now a published guard rather than a checklist you have to remember.
npm install @argszero/cordis-plugin-client-bundle-conflict-guard- insert:
- id: client-bundle-conflict-guard
name: '@argszero/cordis-plugin-client-bundle-conflict-guard'It mounts on the composed client graph (
What it logs looks like this, for the Three boundaries, so you know what it is not:
For a single plugin, the two Evidence, for anyone who wants to check the claims rather than take them: 75 unit tests, including one that reads the loader messages quoted above out of the installed |
Uh oh!
There was an error while loading. Please reload this page.
What it is
蓝毛小女仆(
cute-fat-fish-pet)——一个 DSH Web UI 的桌宠插件:一只 Q 版蓝发小女仆住在你桌面上,106 个手绘透明动画、会自己桌面漫步、点一下有反应,还能陪你聊天和看屏幕。
A desktop pet for the DSH Web UI: a chibi blue-haired maid with 106 hand-drawn
transparent animations, desktop wandering, click reactions, chat, and optional screen watching.
What the plugin half actually does(只说这个 bundle 里真有的)
玩游戏气急败坏、垂头叹气冒汗、被落叶淹没……
local/dsh/auto三档可切screen-watch+ 自带的原生抓屏工具(单次 90~180ms)ctx.llm/agentDefaultModel,用的是当前会话的 provider/model,不是随机文案Boundary / 边界(说清楚,免得装完发现少东西)
这个 bundle 是完整桌宠的宿主半侧子集。离线语音识别(sherpa-onnx + SenseVoice)、Edge TTS、
那个单页控制台不在里面,它们在独立版(自带的 NSIS 安装包 / 绿色 zip)里。
Install
src/lib/已预构建入库,不需要跑构建。License / 来源
MIT。派生自 PC2005-cloud/dsh-pet 0.3.0(MIT),
上游文档与署名逐字节保留在
src/UPSTREAM-README.md。仓库:https://github.com/12we21/cute-fat-fish-pet (已打
dsh-plugintopic)已知局限
(生态里已有
zhu1090093659/dsh-pet等用了同一个裸id: pet的插件)。All reactions