Repository navigation
dsh-keys-setting v0.2.1 — 去掉第三方运行时依赖(整改 DSH STORE 检查)
dsh-keys-setting v0.2.1
会话输入框的按键行为:让 Enter / Shift+Enter / Ctrl+Enter 各自「发送」还是「换行」。
从设置窗口的「通用」页直接改,默认与引擎一致。
这一版是回应 DSH STORE 固定 commit 自动检查(Catalog blocked)的整改。
🔧 去掉唯一的第三方运行时依赖
商城给的四条原因里,只有这一条确凿、且只属于本插件:它有运行时依赖。
四个随包插件里只有本插件的 dependencies 不空,依赖的是 npm 上非 scoped 的
schemastery;而引擎自己用的却是 scoped 的 @deepseek-ai/schemastery(3.18.4,
dsh-settings / dsh-llm-pi-ai 都 import 它)。两者同属 3.18.x、API 一致,但只有后者
随引擎而来:
- 它在
profiles/node_modules/@deepseek-ai/下,插件装到哪儿都解析得到; - 它与引擎设置服务拿到的是同一个模块实例,比换一个同名库更安全。
做法:改用引擎自带那份,并把 dependencies 整键删掉 —— 至此四个随包插件都没有
运行时依赖,清单也保持纯 ASCII。
验证(不是只看版本号):
- 从两个真实数据目录的插件安装位置解析
@deepseek-ai/schemastery,均成功,
命中的都是引擎自己那份; - 用引擎那份 3.18.4 实构造本插件的
Config:默认值、type、dict、toJSON
与原来(3.18.0)完全一致。
📋 补上 DSH 兼容性范围
商城说「未声明 DSH 兼容范围」这条其实不成立(清单里一直有),但既然建议了范围写法,
就补上:
"dsh": {
"compatibility": {
"node": ">=20",
"dsh": ">=0.1.5-rc.2",
"dshReleases": { "0.1.5-rc.2": "compatible" }
}
}原有的 dshReleases 映射保留,不影响既有读者。
📁 另外两条「信号」的说明
- files 信号:代码里没有任何文件操作(无
node:fs)。偏好是经引擎自己的设置服务
间接写进settings.yaml,不是直接磁盘 I/O。 - network 信号:页面半边那次
fetch打的是同源路由(在引擎自己的信任围栏之后),
不产生对外流量、不携带凭据。
🧪 一次性 Profile 的安装 / 启动 / 卸载证据
商城明确要求这一项。三环都跑过(每次都在临时数据目录里,不碰你的数据):
| 环节 | 做法 | 结果 |
|---|---|---|
| 安装 | staging 出磁盘目录 → 引擎自己的 dsh plugin --profile web add file:… |
装成功,node_modules/dsh-keys-setting/ 落地并登记进 profile |
| 启动 | 同一 profile 启动引擎(dsh web --no-open --port 0) |
引擎正常起来,四个插件都在 bundle 列表里 —— 宿主编译期真的 import 了本插件(含 schema 库) |
| 卸载 | 引擎自己的 dsh plugin remove + 摘除 profile 登记 |
干净移除:bundle 登记、dependencies、catalogStatus 三者都不留痕 |
安装与启动由 verify:builtin 第 1-4 幕覆盖;卸载此前只是被通用用例间接覆盖,
这一版在 verify:builtin 新增第 7 幕,对本插件显式断言:
- bundle 登记里没有了;
dependencies里也没有了(留下file:依赖会让引擎下次启动把它 reconcile 回来);catalogStatus报未安装(设置窗口会显示成未装);- 另外三个随包插件不受影响。
📦 安装
# 推荐:直接从 GitHub 装(记进 profile,之后可跟着更新)
dsh plugin --profile web add github:itchenshi/dsh-keys-setting
# 备选:本 Release 的 tarball(git 协议走不通、但 HTTPS 能通时用这条)
dsh plugin --profile web add https://github.com/itchenshi/dsh-keys-setting/releases/download/v0.2.1/dsh-keys-setting-0.2.1.tgz⬆️ 升级
- 用 DSH Ready GUI:随包版本已抬高到 0.2.1,下次启动 GUI 时会自动重装,不需要手动操作。
- 自己装的:按上面任一命令重装即可。偏好值存在
settings.yaml的composer-keys段里,
重装不丢。
✅ 验证
- 本仓库
npm test:20 项通过 - GUI 侧
npm run verify:builtin:ALL CHECKS PASSED(含新增的卸载一幕) npm test(GUI 全量):全绿