REQUEST_EXTENSION: plugin-package-inventory cannot resolve workspace packages in source mode (pnpm isolated linker) #5196
FranklinZaneDurant
started this conversation in
General
Replies: 1 comment
|
源码侧全部核实(本地 0.1.2-alpha.1 = cd5ef81,与你 master/alpha.2 的相关文件一致)。你的根因链准确,补几个你没点到的事实——其中两个决定修复形态。 核实结果:
家族映射(三线程同一根因):
修复建议(按成本排序):
这是 in-tree 缺口(plugin-package-inventory-deepseek 是官方包),无插件形态方案;上游恢复 PR 通道后 1+2 可直接提交(约 5 行 + 一个回退分支)。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
问题
从源码运行
pnpm dsh web,每次发消息都会失败,报:错误在真正发 HTTP 请求之前就抛出,所以不会消耗 API 额度。
根因链
同一个解析器还找不到另外 6 个 active 包:
@deepseek-ai/dsh-api-session-controller、dsh-api-settings-controller、dsh-api-workspace-controller、dsh-client-ui-approval、dsh-client-ui-chat、dsh-client-ui-session。为什么
dsh_plugin_packages扩展(plugin-package-inventory-deepseek)用createRequire(anchor).resolve.paths()+existsSync在顶层 node_modules 搜索路径里找每个插件的 package.json。在 pnpm 默认 isolated 链接布局下,workspace 包只被链接在
.pnpm/.../node_modules内部,没有提升到任何可搜索路径 → 解析抛错 → 整个请求失败。
而 Loader 加载同样的包却没问题(走 tsconfig
paths/ 源码平面),所以树能正常启动。也就是说:源码模式 + isolated 布局下,两条解析路径对不上。
复现
pnpm dsh web→ 发任意消息即失败ctx.deepseekLlmApiExtensions.prepare()期望
解析器应能解析 workspace 包(例如跟随 package exports / workspace 布局),
或者降级——解析不到时记录日志并跳过,而不是抛错导致整个请求失败。
临时绕过
在 profile 的
cordis.patch.yml里禁用该行即可:All reactions