Skip to content

Releases: mjylfz/dsh-skill-mover

v1.1.1 — 支持 DSH 2.0.17 / dsh 0.2.0-rc.2

Choose a tag to compare

@mjylfz mjylfz released this 13 Oct 10:30

适配 DSH 2.0.17(运行时 @deepseek-ai/dsh@0.2.0-rc.2)。

修复

  • peer 范围:^0.1.0-rc.6 || ^0.1.5-rc.1 → ^0.1.0-rc.6 || >=0.2.0-rc.1 <0.3.0-0。
    旧范围在预发布语义下两条分支都封顶 <0.2.0-0,因此 2.0.17 的插件兼容闸门会直接拒绝加载。
  • strict codec:0.2.x 的 validateCodec() 要求 { mode: 'strict' } 的 codec 带 create() 工厂
    (旧写法只有 schema:,会被 strict codec has no create() factory 拒绝)。客户端描述符已改为 create: () => ({ parse })。
  • ctx.shell 接口:0.2.x 移除了 shell.run(spec),改为 execute(spec) 返回进程句柄、结果取自 handle.result()。
    另外 execute().result() 对非零退出不 reject,所以失败的命令会被当成迁移成功 —— 现在非零退出与超时都会抛出错误。

验证

npm test 全绿:

  • test/runtime-compat.test.mjs —— 用 DSH 自己的 evaluatePluginCompatibility() 做闸门 before/after 对照,
    并对每个 @deepseek-ai/* 具名导入比对应用内运行时的真实导出
  • test/host-core.test.mjs —— shell 新老两条缝隙 + 非零退出/超时上浮
  • test/client-boot.mjs —— 真实 api-gateway client + 真实 typert registry 下跑通挂载、slot 注册与 scan() 调用,
    并用旧 {schema} / 新 {create} codec 做挂载对照
  • test/remote-descriptor.test.mjs —— 新老两代网关都能发现 scan/migrate/uninstall

安装

dsh plugin --profile desktop add github:mjylfz/dsh-skill-mover#v1.1.1

或使用下方 tarball(sha256 5c2e2f135b7757c9812ee849a2bfb6e77a8a538289534b5817c1ba3b3f0612ca)。

v1.1.0 — two-generation @Remote compatibility

Choose a tag to compare

@mjylfz mjylfz released this 13 Sep 07:17

Two-generation @Remote compatibility

DSH Desktop 2.0.9 embeds @deepseek-ai/dsh-typert-protocol@0.1.5-rc.1, which moved the @Remote
marker store from a module-private WeakMap (0.1.0-rc.x) to a versioned string descriptor on the
class prototype.

When the older copy is the one resolved, the runtime gateway read only the prototype descriptor and
found nothing: the service loaded, the methods existed, but no /api/skillMover/* route was
published and every client call returned 404 with no error in the log.

This release keeps the decorators (old gateways still read the WeakMap) and additionally plants
the new descriptor on the gateway prototype, so both generations route.

Changes

  • src/remote-descriptor.ts — new plantRemoteDescriptor(); markers carry only method +
    invocation: { kind: 'direct' }
  • src/index.ts — plant after the class definition; the 3 @Remote(...) decorators are untouched
  • package.json — typert peer range widened to ^0.1.0-rc.6 || ^0.1.5-rc.1.
    A peer range without an explicit prerelease branch silently excludes every prerelease build
  • test/remote-descriptor.test.mjs — 17-assertion regression test. Removing the plant call fails
    9 of the 17

Install

dsh plugin --profile desktop add github:mjylfz/dsh-skill-mover#v1.1.0