Skip to content

[BUG] dsh web 层注入的 @deepseek-ai/dsh-client-runtime 已被 dsh-cordis-client-runner 取代 #54

Closed

Description

@AomaYple

版本(Version)

1.26.0

环境(Environment)

Windows 11 + Node v24.9.0 + DeepSeek Harness 插件方式(dsh plugin --profile web add) harness 版本:0.1.5-rc.2(DSH Desktop 0.9.2 内置) 接入方式:DSH Cordis 插件(dsh.bundle),非 CLI / 非 VS Code / 非 MCP

复现步骤(Steps to reproduce)

  1. 在 harness 0.1.5-rc.2 上执行 dsh plugin --profile web add @roarpeng/graphflow
    —— 安装成功,无任何警告

  2. 重启宿主

  3. 检查 node_modules/@deepseek-ai/ 目录内容:

    Get-ChildItem "node_modules/@deepseek-ai" | Where-Object { $_.Name -match "client" }

    结果:
    dsh-client-connection -> 存在(0.1.5-rc.2)
    dsh-cordis-client-runner -> 存在(0.1.5-rc.2)
    dsh-client-runtime -> *** 不存在 ***

  4. 在整个 @deepseek-ai 目录树下 grep 字符串 "dsh-client-runtime"
    —— 零命中

  5. web 层因此没有可依附的 runtime 模块,插件前端无法加载

期望行为(Expected behavior)

插件的 web 半边应能在当前 harness 上正常加载,「知识节点」面板可用。

实际行为(Actual behavior)

package.json 中声明的注入目标是 current harness 里已不存在的模块:

"dsh": { "client": { "platform": "web",
"inject": ["@deepseek-ai/dsh-client-runtime",
"@deepseek-ai/dsh-client-connection"] } }

@deepseek-ai/dsh-client-runtime 的最后一次发布是 2026-08-10(v0.1.1-rc.2),
替代品 @deepseek-ai/dsh-cordis-client-runner 于 2026-08-12 首次发布。
也就是说,该包已被取代约 6 周,而 inject 数组未随之更新。

由于本包只声明了 engines: { node, npm },没有 engines.dsh、没有 @deepseek-ai/dsh-*
的 peerDependencies、也没有 compatibility.json,因此安装阶段不会有任何提示——
dsh plugin add 正常成功,问题只在组装/加载阶段暴露。

表现上与至今仍 OPEN 的 #26 一致(POST /gf/nodes 返回 HTTP 405):面板背后没有
runtime 支撑。

补充信息(可选)

No response

Activity

  1. Roarpeng commented on Sep 29, 2026

    @Roarpeng
    Owner

    已在 v1.27.11 修复(提交 15a967a)。

    修复内容
    package.json 的 dsh.client.inject 不再列出已退役的 @deepseek-ai/dsh-client-runtime,改为 dsh/client.js 实际依赖的三个服务的提供者。已逐包核对 0.2.0-rc.2 源码:

    • sessions 由 @deepseek-ai/dsh-api-session-controller 提供(client 半边 reflect.provide("sessions"))
    • connection 由 @deepseek-ai/dsh-client-connection 提供
    • slots 由 @deepseek-ai/dsh-client-ui-renderer 提供

    补充说明:当前 dsh-client-modules 用 inject 决定 web 半边的加载顺序,找不到的包会直接跳过而不报错。所以这个问题在安装阶段没有任何提示,但我们声明的服务依赖其实从未得到排序保证。至于你建议的 dsh-cordis-client-runner,它是动态双半包的浏览器运行器,不提供上述三个服务,因此没有作为依赖列出。

    验证
    新增用例断言 inject 不含 dsh-client-runtime,且包含上述三个提供者;全量测试通过。

    升级方式:dsh plugin --profile web add @roarpeng/graphflow@1.27.11

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions