@dingpenghui/dsh-conversation-language 3.2.3 → 3.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RELEASE_NOTES_v3.2.5.md +75 -0
- package/lib/client.js +5 -5
- package/package.json +14 -6
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# v3.2.5 — 补上 engines.dsh 兼容声明
|
|
2
|
+
|
|
3
|
+
> `@dingpenghui/dsh-conversation-language@3.2.5`
|
|
4
|
+
|
|
5
|
+
本批更新为以下插件加入 `engines.dsh`,并附回归检查脚本:
|
|
6
|
+
|
|
7
|
+
| 包 | 旧版本 | 新版本 | engines.dsh |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| `@dingpenghui/dsh-conversation-language` | 3.2.4 | 3.2.5 | `>=0.2.0-rc.1 <0.3.0-0` |
|
|
10
|
+
| `@dingpenghui/dsh-obsidian-sync` | 3.4.7 | 3.4.8 | `>=0.2.0-rc.1 <0.3.0-0` |
|
|
11
|
+
| `@dingpenghui/dsh-supply-chain-switch` | 1.1.1 | 1.1.2 | `>=0.2.0-rc.1 <0.3.0-0` |
|
|
12
|
+
| `@dingpenghui/agnes` | 1.6.2 | 1.6.3 | `>=0.2.0-rc.2 <0.3.0-0` |
|
|
13
|
+
| `@dingpenghui/agnes-image` | 1.6.1 | 1.6.2 | `>=0.2.0-rc.2 <0.3.0-0` |
|
|
14
|
+
| `@dingpenghui/agnes-video` | 1.6.1 | 1.6.2 | `>=0.2.0-rc.2 <0.3.0-0` |
|
|
15
|
+
| `@dingpenghui/agnes-img2vid` | 1.6.1 | 1.6.2 | `>=0.2.0-rc.2 <0.3.0-0` |
|
|
16
|
+
|
|
17
|
+
**行为不变**:本批只增加元数据声明与检查脚本,不涉及任何运行时代码改动。
|
|
18
|
+
|
|
19
|
+
## 为什么要加
|
|
20
|
+
|
|
21
|
+
DSH 的安装门禁(`@deepseek-ai/dsh-app-boot` 的 `unmetRequirements`)按以下顺序判定插件与运行时的兼容性:
|
|
22
|
+
|
|
23
|
+
1. 清单里有 `engines.dsh` → **只依据它**,`peerDependencies` 全部忽略;
|
|
24
|
+
2. 没有 `engines.dsh` → 退回逐个检查 `@deepseek-ai/dsh` / `@deepseek-ai/dsh-*` 的 peer,
|
|
25
|
+
判定式为 `semver.satisfies(runtime, range, { includePrerelease: true })`。
|
|
26
|
+
|
|
27
|
+
第 2 条分支容易出问题。参考实例:`dsh-web-search-serper` 曾在 peer 里把
|
|
28
|
+
`@deepseek-ai/dsh-web` 钉成精确版本 `0.2.0-rc.2`,而运行时是 `0.2.1-rc.2`——
|
|
29
|
+
在该判定规则下 `0.2.1-rc.2` **不满足** `0.2.0-rc.2`,安装被直接拒绝:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Plugin ...@1.1.1 is incompatible with dsh 0.2.1-rc.2:
|
|
33
|
+
requirements {"@deepseek-ai/dsh-web":"0.2.0-rc.2"}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
声明 `engines.dsh` 后,兼容范围由一个显式区间单独表达,不再受 peer 声明的意外改动影响。
|
|
37
|
+
|
|
38
|
+
同时它也提供**未来的保护**:这些插件此前没有任何版本约束,一旦 DSH 升到未验证的
|
|
39
|
+
`0.3.x`,它们会静默通过安装门禁,而不是被明确拦下——问题会推迟到运行时才暴露。
|
|
40
|
+
|
|
41
|
+
## 回归检查
|
|
42
|
+
|
|
43
|
+
每个包新增 `engines-check.mjs`(无外部依赖):
|
|
44
|
+
|
|
45
|
+
- 断言清单声明了 `engines.dsh`;
|
|
46
|
+
- 断言区间排除 `0.3.x`(契约未验证的版本线);
|
|
47
|
+
- 断言放行实测过的运行时 `0.2.0-rc.2` / `0.2.1-rc.2`;
|
|
48
|
+
- 断言拒绝 `0.3.0`。
|
|
49
|
+
|
|
50
|
+
已接入 `test` 与 `prepublishOnly`,因此漏声明不会再被发布出去:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
node engines-check.mjs
|
|
54
|
+
# OK compatibility declaration checks passed (engines.dsh = >=0.2.0-rc.x <0.3.0-0)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 下界取值依据
|
|
58
|
+
|
|
59
|
+
区间下界不是统一套用的,而是取自各包**实际验证过的**运行时:
|
|
60
|
+
|
|
61
|
+
- `conversation-language` / `obsidian-sync` / `supply-chain-switch` 的 DSH peer 声明下界为 `0.2.0-rc.1`,故定为 `>=0.2.0-rc.1`;
|
|
62
|
+
- `agnes` 系列三个组件的 peer 声明为 `^0.2.0-rc.2`,故定为 `>=0.2.0-rc.2`。
|
|
63
|
+
|
|
64
|
+
## 验证
|
|
65
|
+
|
|
66
|
+
针对每个包用 DSH 自身的判定规则(同版本 semver `7.8.5`、`includePrerelease: true`)运行:
|
|
67
|
+
|
|
68
|
+
| 运行时 | 期望 | 结果 |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| 0.2.0-rc.2 | 放行 | PASS |
|
|
71
|
+
| 0.2.1-rc.2 | 放行 | PASS |
|
|
72
|
+
| 0.3.0 | 拒绝 | PASS |
|
|
73
|
+
|
|
74
|
+
也已在当前 DSH Desktop `0.2.1-rc.2` 上实测:全部插件正常加载、客户端 slot 注册为 active。
|
|
75
|
+
|
package/lib/client.js
CHANGED
|
@@ -88,12 +88,12 @@ window.__ModuleLoader__.load({
|
|
|
88
88
|
document.head.appendChild(tag);
|
|
89
89
|
}
|
|
90
90
|
var PluginDetailPage_module_css_default = {
|
|
91
|
-
"field": "hZ1jBa_field",
|
|
92
|
-
"hint": "hZ1jBa_hint",
|
|
93
|
-
"control": "hZ1jBa_control",
|
|
94
|
-
"title": "hZ1jBa_title",
|
|
95
91
|
"fieldText": "hZ1jBa_fieldText",
|
|
96
|
-
"page": "hZ1jBa_page"
|
|
92
|
+
"page": "hZ1jBa_page",
|
|
93
|
+
"title": "hZ1jBa_title",
|
|
94
|
+
"hint": "hZ1jBa_hint",
|
|
95
|
+
"field": "hZ1jBa_field",
|
|
96
|
+
"control": "hZ1jBa_control"
|
|
97
97
|
};
|
|
98
98
|
//#endregion
|
|
99
99
|
//#region src/client/plugin-detail-page.tsx
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dingpenghui/dsh-conversation-language",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.5",
|
|
4
4
|
"description": "DSH plugin for switching conversation language between Chinese and English",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
7
|
+
"engines": {
|
|
8
|
+
"dsh": ">=0.2.0-rc.1 <0.3.0-0"
|
|
9
|
+
},
|
|
7
10
|
"dsh": {
|
|
8
11
|
"bundle": {
|
|
9
12
|
"patch": "./cordis.patch.yml"
|
|
@@ -39,6 +42,7 @@
|
|
|
39
42
|
"src",
|
|
40
43
|
"package.json",
|
|
41
44
|
"README.md",
|
|
45
|
+
"RELEASE_NOTES_v3.2.5.md",
|
|
42
46
|
"cordis.patch.yml"
|
|
43
47
|
],
|
|
44
48
|
"exports": {
|
|
@@ -48,12 +52,10 @@
|
|
|
48
52
|
},
|
|
49
53
|
"scripts": {
|
|
50
54
|
"build": "tsdown",
|
|
51
|
-
"dev": "tsdown --watch"
|
|
52
|
-
|
|
53
|
-
"dependencies": {
|
|
54
|
-
"@deepseek-ai/schemastery": "^3.18.4",
|
|
55
|
-
"react": "^18.2.0"
|
|
55
|
+
"dev": "tsdown --watch",
|
|
56
|
+
"prepublishOnly": "node engines-check.mjs"
|
|
56
57
|
},
|
|
58
|
+
"dependencies": {},
|
|
57
59
|
"peerDependencies": {
|
|
58
60
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
59
61
|
"@deepseek-ai/dsh-client-store": "^0.2.0-rc.1",
|
|
@@ -64,8 +66,14 @@
|
|
|
64
66
|
"@deepseek-ai/dsh-settings": "^0.2.0-rc.1",
|
|
65
67
|
"@deepseek-ai/dsh-system-prompt": "^0.2.0-rc.1",
|
|
66
68
|
"@deepseek-ai/dsh-tools": "^0.2.0-rc.1",
|
|
69
|
+
"@deepseek-ai/schemastery": "^3.18.4",
|
|
70
|
+
"react": "^18.2.0",
|
|
67
71
|
"typescript": ">=5.0.0"
|
|
68
72
|
},
|
|
73
|
+
"peerDependenciesMeta": {
|
|
74
|
+
"@deepseek-ai/schemastery": { "optional": true },
|
|
75
|
+
"react": { "optional": true }
|
|
76
|
+
},
|
|
69
77
|
"publishConfig": {
|
|
70
78
|
"access": "public"
|
|
71
79
|
},
|