Skip to content

v0.3.1 - DSH 0.1.7+ 内核适配收尾 + README 核对 + L1 三绿

Choose a tag to compare

@Max-Null Max-Null released this 28 Sep 22:39
· 4 commits to main since this release

说明

本仓库此前没有任何 tag,v0.3.1 是首个——因此下面的内容不是「与上个 tag 的 diff」,而是从 0.3.0 的最后一个功能提交(938416f)之后、直到本 tag 的全部改动,由 git log --oneline 938416f..v0.3.1 提炼。

调整

  • 截图设置换了入口:从「设置——插件」页卡片迁到「插件」页里本插件详情页的配置卡(plugins.bundle.config,key = 包名)。DSH 0.1.7 移除了旧的 settings.plugin.item,继续挂在那里等于注册到未声明的槽——设置卡完全不渲染。
  • 设置卡默认展开:折叠态会让用户以为「设置不见了」。
  • 设置不再走 settings.installSection(该方法已不存在):插件的 Config schema 直接构成它自己的 settings section,可变字段标 .volatile()。
  • host 路由改走 ctx.connection.fetch 精确路由表:carrier-neutral,Web 载体与 Electron shell 载体分发同一个 handler(原 /api/ssid/screenshot/{get,set,trigger} 行为不变)。
  • 移除 @deepseek-ai/dsh-client-runtime 依赖:该包自 DSH 0.1.2-alpha.2 起已从内核移除。

修复

  • pnpm typecheck 由 7 条错误转为 0:补齐两个类型增强包 @deepseek-ai/dsh-client-connection(提供 ctx.connection)与 @deepseek-ai/dsh-client-ui-renderer(提供 ctx.slots 的 Context 合并)。两者此前都不在 devDependencies 里——dsh-client-connection 在 lock 中只是传递依赖,pnpm 不提升到顶层,于是 type-only import 解析不到。钉精确版本 0.2.0-rc.1,不写范围(pnpm 的 prerelease 选择规则挑不到该版本,写范围会装成旧版、让验证失真)。
  • README 与实现核对(逐条回源码取证后修正):设置入口 3 处、壳层实现路径(shell/main.mjs + shell/screenshot.html → ssid-desktop/apps/desktop/src/ssid/screenshot.ts + resources/screenshot.html)、家族清单里的包名、3 分钟闲置超时的归属。

兼容性

内核插件兼容判定(plugin-compatibility.ts)只读 peerDependencies,且只检查 @deepseek-ai/dsh / @deepseek-ai/dsh-* 前缀。本插件的 peerDependencies 里从未声明任何 @deepseek-ai/dsh-*(仅 cordis / react / react-dom),因此 peers 为空即判兼容——在 0.1.7-rc.2 与 0.2.0-rc.1 两版内核下都不会被静默跳过(已用真实 evaluatePluginCompatibility 实测,并带合成负样本对照)。

构建

pnpm typecheck && pnpm test && pnpm build 三者全绿。

文档与截图

  • docs/shots/settings-1.png 已重截为「插件」页 → 本插件详情页的配置卡片(隐藏窗口开关 + 全局快捷键)。摄于隔离的 dev 实例(内核 0.2.0-rc.1),图内显示的 v0.3.1 即该构建产物的版本。
  • README 该段表头同步改为「「插件」页 → dsh-capture 详情页的配置卡片」——原表头写「设置页」,与图不符。
  • 两处源码注释对齐实现:ScreenshotSettings.tsx 的文件头与 client/index.ts 的 apply 注释仍描述着旧的 settings.general.item 通用设置行。