C:\dsh-ecosystem\
├── plugins\ # 定制插件源码
│ ├── dsh-file-upload-custom\ dsh-file-upload-custom(拖拽与 Ctrl+V 粘贴文件上传,零路径污染)
│ ├── dsh-session-folders-custom\ dsh-session-folders-custom(会话文件夹)
│ ├── dsh-session-title-custom\ dsh-session-title-custom(会话标题生成)
│ ├── ui-queue-recall\ @deepseek-ai/dsh-client-ui-queue-recall(排队消息撤回编辑)
│ ├── ui-theme-custom\ @deepseek-ai/dsh-client-ui-theme-custom
│ ├── ui-deliverables-custom\ @deepseek-ai/dsh-client-ui-deliverables-custom
│ ├── ui-resend-failed-round\ @deepseek-ai/dsh-client-ui-resend-failed-round
│ ├── ui-subagent-custom\ @deepseek-ai/dsh-client-ui-subagent-custom
│ ├── ui-kanye-pet\ @deepseek-ai/dsh-client-ui-kanye-pet
│ ├── kanye-pet\ @deepseek-ai/dsh-kanye-pet(bundle 插件)
│ ├── tsdown.client.ts # 共享构建 preset(从官方仓库拷贝,独立维护)
│ ├── build-preset\ # preset 的依赖闭包(manifest/system/platform/client-build-environment)
│ └── package.json # 插件构建与运行时依赖(tsdown/schemastery/zod/clsx/lightningcss)
├── packages\client\ui-theme-custom\package.json # workspace 桩(preset 按包名查找 manifest 用)
├── desktop\ # Tauri 桌面壳子
│ ├── src\ pet.html, pet.js, styles.css
│ ├── src-tauri\ Rust 源码 + 配置
│ └── dist\ DeepSeekHarness.exe(构建产物)
├── archive\ # 历史一次性脚本与截图(2026-08-29 清理归档,可删)
└── README.md
- Profile(
~/.dsh/profiles/web/package.json)用 pnpm 原生link:协议依赖本目录的 9 个插件。pnpm install会直接重建 symlink,不需要 postinstall / ensure-junctions.js(已删除)。 - 插件的 Node-half 裸依赖(schemastery、zod 等)装在
plugins/node_modules(plugins/package.json), symlink 从真实路径解析时会命中它们。 - Client bundle 构建用
plugins/tsdown.client.ts+plugins/build-preset/(官方 preset 的独立拷贝), 不依赖官方仓库——官方git pull后构建链不受影响;官方更新这 4 个 preset 文件时需手动同步。
cd E:\vibeCoding\deepseek-harness
git pull upstream master # 零冲突:仓库全是官方文件
pnpm install # 重建依赖
# 重启 DSH web 即可改完 C:\dsh-ecosystem\plugins\<包名>\src\ 或 lib\ 后:
# .ts 源码改动需要重新构建(cwd 必须是插件目录,entry 是相对 cwd 的 src/)
cd C:\dsh-ecosystem\plugins\<包名>
node ..\node_modules\tsdown\dist\run.mjs
# 重启 DSH web 生效;profile 侧无需任何 install(link: 直接指向本目录)或者直接改 lib/ 里的 .js/.mjs 文件(kanye-pet host half),重启 DSH 即可生效。
主题 token(src/client/*.ts)改完直接重建即可,不再需要 sync-themes 脚本(已删除,
tsdown 构建会把 token 编进 lib/client.js)。
关闭当前 DSH web(Ctrl+C),然后:
cd E:\vibeCoding\deepseek-harness
pnpm dsh web或双击桌面快捷方式。
cd C:\dsh-ecosystem\desktop
.\dist\DeepSeekHarness.exe如果改了 pet.js/pet.html,需重建 exe:
cd C:\dsh-ecosystem\desktop
Remove-Item src-tauri\target\release\build\dsh-desktop-* -Recurse -Force
npx tauri build- 打开 DSH 日志,搜
[kanye-pet] - 访问 http://127.0.0.1:3080/kanye-pet/state 看
notification字段 - 桌宠气泡由
pet.js每 2 秒轮询/state端点,收到notification即显示 - 如果通知不出现:查
/state返回的_debug.desktopPetEnabled是否为 true