Repository navigation
Bug + Suggestion | Windows:profiles 模块回退目录漏链,导致全部模型请求以 REQUEST_EXTENSION 失败 #6628
Pleia-STAR
started this conversation in
General
Replies: 0 comments
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.
Summary
在 Windows + pnpm 工作区布局下,
healProfilesModuleFallback生成的 profile 模块回退目录$DSH_HOME/profiles/node_modules会漏掉部分 in-box 包。默认开启的plugin-package-inventory-deepseek请求扩展在每次模型请求的prepare()阶段解析不到这些活跃条目并抛错,被dsh-llm-deepseek包装成REQUEST_EXTENSION,导致该 profile 的所有会话轮次失败(GUI 显示:本轮运行失败 / DeepSeek request extension preparation failed)。Reproduction
apps\cli\node_modules\@deepseek-ai\dsh-base是指向packages\bundle\base的 junction,其内部的node_modules\@deepseek-ai\dsh-storage-json是相对符号链接..\..\..\..\storage\storage-json)。$DSH_HOME/profiles/node_modules中缺少某个 in-box 包的有效链接(删除该条目,或保留上一安装代留下的失效条目)。pnpm dsh web,打开会话发送任意消息 → 本轮以REQUEST_EXTENSION失败。进程内最小复现:
runProfile({ profile: 'web', ... })启动后调用抛出
plugin-package-inventory-deepseek: cannot resolve active package "@deepseek-ai/dsh-storage-json"。Current behavior
fs.existsSync('D:/deepseek-harness/packages/bundle/base/node_modules/@deepseek-ai/dsh-storage-json/package.json') === true,但同一路径经 junction 访问(apps/cli/node_modules/@deepseek-ai/dsh-base/...)为false;packageDirFromAnchor的createRequire(anchor).resolve.paths()+existsSync探测,从dsh-base锚点解析@deepseek-ai/dsh-storage-json得到undefined;dsh-storage-json、dsh-host-open-in-app、多项dsh-client-ui-*、多项dsh-api-*等);.../dsh-web-app/node_modules/...已不存在,且从未被修复);plugin-package-inventory-deepseek解析失败 →prepare()抛错 →packages/llm/llm-deepseek/src/adapter.ts:636包装为REQUEST_EXTENSION,每一轮对话都在发出 HTTP 之前失败。Expected behavior
Environment
c291e7961a(dsh-v0.1.5-rc.2),源码启动pnpm dsh web(tsx ESM hook)$DSH_HOME位于非默认盘(与故障无关:闭包探测不读取 home 位置)@deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app,另有一个第三方 bundleRoot cause
apps\cli\node_modules\@deepseek-ai\dsh-base是 junction;穿过 junction 访问其中相对链接时按字面路径解析(apps\cli\node_modules\storage\storage-json),链接失效。packages/boot/app-boot/src/profile.ts的packageDirFromAnchor以createRequire(anchor).resolve.paths()+existsSync探测,因此漏掉这些包,回退目录既不创建也不修复它们的链接。healProfilesModuleFallback只保证本次计算出的条目正确,不会删除或重指旧一代遗留的条目;失效链接会一直保留。该问题在新版本才显性化:请求扩展贡献方是新引入的默认能力,此前同样的回退缺口没有可见影响。
Workaround(本机已验证)
按活跃条目补齐回退链接:启动 profile → 按名字索引工作区全部
package.json→ 对每个在回退目录内没有package.json的活跃条目建立 junction 指向真实包目录。补链后prepare()通过,dsh_plugin_packages返回 128 个包,会话恢复正常。Suggested direction
plugin-package-inventory-deepseek采用同一方式,或改由 Loader 提供已解析的模块路径;All reactions