6. FAQ
September 1, 2026 · View on GitHub
@deepseek-ai/dsh-tools的latest是过期的。 锁nexttag 版本(^0.1.0-rc.6)。- Node 太旧。
^22.19 || >=24;否则只是EBADENGINE警告(无害)。 dsh-*版本线混用。 全部保持同一0.1.0-rc.x。- 运行时 import
@deepseek-ai/cordis。 它是 peerDependency——只用import type。 - 没写
"type": "module"。 插件必须是纯 ESM。 - 丢弃 disposer。
ctx.tools.register/ctx.on自动 dispose;自己的定时器/连接用ctx.effect(() => { ...; return cleanup })包起来。 dsh plugin add <dir>的相对路径锚定。 在插件的父目录执行。cordis.patch.yml的name是包名,不是相对路径。(dsh-spike,不是./dist/tool-time.js。)- 以为文件顺序 = 加载顺序。 加载顺序由
inject服务依赖决定。 tools/change是未过滤的注册表主体通知。 宿主级监听器会收到所有工具注册/反注册—— boot 时刷几十条属正常。- npm/pnpm ≥10 拦截原生构建脚本(koffi、node-pty)。 首次
npx @deepseek-ai/dsh(或安装插件)可能卡住:包管理器扣住了 DSH 依赖的原生包 install 脚本。批准即可——npm:npm approve-scripts koffi node-pty(或npm approve-scripts --all;npm 10 的命令名是npm approve-builds);pnpm:pnpm approve-builds。npm/pnpm ≥10 默认先询问再跑 install 脚本(供应链加固)——这是预期行为,不是报错。 - 桌面壳(Electron / 裸 WKWebView)里插件外链点击无反应。 壳没实现
openExternal代理时,所有target=_blank/window.open点击会被静默吞掉。插件侧 plugin-manager 0.8.1+ 已兜底「复制链接 + toast」;真正治本是宿主侧——Swift 两行:实现WKUIDelegate.createWebViewWith→NSWorkspace.shared.open(url),或在decidePolicyFor里对外链 host 取消导航 + 系统浏览器打开。 - Cordis patch 配置写了不生效。 配置覆盖必须是顶层
{ id, config }行——包在- set:列表里会被静默跳过,于是「配置写了没用」。实测踩坑:notify v0.2 就是这个坑。 - Web UI token 鉴权门(alpha)。 Web UI 首屏改回
401,boot 日志打印?token=URL。playwright/curl 自动化要先 token 换 cookie——curl -c jar -b jar -L "http://127.0.0.1:3080/?token=$TOKEN"——之后每次请求带jar。插件自定义路由不被门控。
← Prev: 分发与发布 · Contents · Next: 皮肤与个性化 →