This repository was archived by the owner on Nov 9, 2026. It is now read-only.
Repository navigation
v0.8.8 — 适配 DSH 0.1.5-rc.1
正式版(Latest)。本版把插件对齐到 DeepSeek Harness 0.1.5-rc.1,并收录此前只存在于
Pre-release 的 /zen-go-rpc HTTP 405 修复。
适配 DSH 0.1.5-rc.1
- peer 依赖对齐:
@deepseek-ai/dsh-credentials/dsh-launch-environment/dsh-llm/
dsh-settings/dsh-timeout由^0.1.2-rc.1升到^0.1.5-rc.1。0.1.x 的预发布版
caret 不跨 patch 匹配(^0.1.2-rc.1不覆盖0.1.5-rc.1),旧声明已与实际运行环境不符。 - 宿主 API 逐项复核:插件用到的每个接缝在
0.1.5-rc.1上仍存在且语义一致 ——
LlmAdapter(providerInfo/listModels/resolveModel/prepareCall/stream)、
llm.registerAdapter/llm.registerConfigurableProviders、settings.installSection、
credentials.credentialRef/credentials.resolve、launchEnvironmentOf、
MAX_TIMER_DELAY_MS、attributionHeaders/assertUsableApiKey/LlmError、
webServer.register({kind:"prefix"})、connection.requestRejection。 - 客户端注入面同样在位:
dsh-client-connection/dsh-client-locale/
dsh-client-ui-settings/dsh-api-remotes在0.1.5-rc.1中均存在,client.inject无需改动。 - 真机验证:在
dsh web0.1.5-rc.1 上加载本插件(link:安装),同源
POST /zen-go-rpc/usage/summary命中插件的requestRejection围栏返回 401(路由确实
挂载、fence 生效),而不是 SPA fallback 的 405。
收录 v0.8.7-rc.1 的修复
/zen-go-rpcHTTP 405 根因:connection.rpc.handle("/zen-go-rpc", …)在 connection 服务
自己的上下文里解析owner.webServer,Cordis 抛cannot get property "webServer" without inject
并被 effect 静默吞掉 → 路由从未挂载,浏览器 POST 落到 SPA fallback(非 GET/HEAD 一律 405)。- 修复:改为在注入
["connection","webServer"]的 fiber 上直接
webServer.register({kind:"prefix", path:"/zen-go-rpc", handler}),自实现与/api同形的
fetch-shaped RPC handler(buffered body、client-request信封校验、method==endpoint、
{ok}/fail结果、requestRejection安全围栏)。 - 连带修复:浏览器
rpc.call的参数位于payload.args而非envelope.args,已对齐。
验证
node test/smoke.mjs:45 项,44 pass + 1 skip(无 key 的活探针)。npm run build:client:产物lib/client.js与src/client/*同步(无差异)。- 真实
dsh-host-webserver+dsh-client-connection(0.1.5-rc.1)挂载下 RPC 通道可用。
升级
仓库安装(link: 方式)重启即生效:
dsh plugin --profile web add github xia-sc/dsh-opencode-go
# 然后重启 dsh web,刷新页面本地源码安装用户:拉取 main 后重启 dsh web(无需重跑 setup-local-deps.cjs)。
v0.8.7-rc.1 用户可直接升到本版:功能内容一致,依赖声明与版本号转正。
v0.8.8 — adapted to DSH 0.1.5-rc.1
Stable release (Latest). This release aligns the plugin with DeepSeek Harness 0.1.5-rc.1 and
carries the /zen-go-rpc HTTP 405 fix that until now existed only in a Pre-release.
Adapted to DSH 0.1.5-rc.1
- Peer dependencies aligned:
@deepseek-ai/dsh-credentials/dsh-launch-environment/
dsh-llm/dsh-settings/dsh-timeoutmove from^0.1.2-rc.1to^0.1.5-rc.1. A caret on a
0.1.x prerelease does not match a different patch tuple, so the old declaration no longer
described the environment the plugin actually runs in. - Every host seam re-checked: all APIs this plugin consumes still exist with the same
semantics in0.1.5-rc.1—LlmAdapter(providerInfo/listModels/resolveModel/
prepareCall/stream),llm.registerAdapter/llm.registerConfigurableProviders,
settings.installSection,credentials.credentialRef/credentials.resolve,
launchEnvironmentOf,MAX_TIMER_DELAY_MS,attributionHeaders/assertUsableApiKey/
LlmError,webServer.register({kind:"prefix"}), andconnection.requestRejection. - Client injection surface intact:
dsh-client-connection/dsh-client-locale/
dsh-client-ui-settings/dsh-api-remotesare all still present in0.1.5-rc.1, so
client.injectneeds no change. - Verified live: loaded on a
dsh webrunning 0.1.5-rc.1 (vialink:), a same-origin
POST /zen-go-rpc/usage/summaryhits the plugin'srequestRejectionfence and answers 401
(route mounted, fence active) instead of the SPA fallback's 405.
Carried over from v0.8.7-rc.1
/zen-go-rpcHTTP 405 root cause:connection.rpc.handle("/zen-go-rpc", …)resolved
owner.webServerinside the connection service's own context; Cordis threw
cannot get property "webServer" without injectand the effect silently swallowed it → the
route never mounted and every browser POST fell through to the SPA fallback, which answers
non-GET/HEAD with 405.- Fix: register the prefix route directly on the fiber that injects
["connection","webServer"]viawebServer.register({kind:"prefix", path:"/zen-go-rpc", handler}),
reimplementing the/api-shaped fetch handler (buffered body,client-requestenvelope,
method==endpoint,{ok}/failresults,requestRejectionfence). - Also fixed: browser
rpc.callpasses endpoint args underpayload.args, not
envelope.args.
Verified
node test/smoke.mjs: 45 tests, 44 pass + 1 skip (live probe needs a key).npm run build:client:lib/client.jsis in sync withsrc/client/*(no diff).- RPC channel exercised against real
dsh-host-webserver+dsh-client-connection(0.1.5-rc.1).
Upgrade
Repo installs (link: style) apply on restart:
dsh plugin --profile web add github xia-sc/dsh-opencode-go
# then restart dsh web and refresh the pageLocal-source installs: pull main and restart dsh web (no need to re-run
setup-local-deps.cjs). v0.8.7-rc.1 users can move straight to this release: same functional
content, with the dependency declaration and version number promoted to stable.