Repository navigation
v0.3.1 - DSH 0.1.7+ 内核适配收尾 + README 核对 + L1 三绿
说明
本仓库此前没有任何 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(该方法已不存在):插件的Configschema 直接构成它自己的 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通用设置行。