dsh-m 0.10.3 → 0.10.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/README.en.md +2 -2
- package/README.md +2 -2
- package/lib/client.js +17 -0
- package/lib/core/host-api.js +8 -1
- package/package.json +1 -3
- package/registry.json +3 -3
- package/CHANGELOG.md +0 -1359
- package/docs/DESIGN.md +0 -311
package/README.en.md
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# dsh-m — Plugin Marketplace for DeepSeek Harness
|
|
2
2
|
|
|
3
|
-
[](https://github.com/iasiv5/dsh-m/releases)
|
|
4
3
|
[](https://www.npmjs.com/package/dsh-m)
|
|
5
4
|
[](https://github.com/iasiv5/dsh-m/actions/workflows/registry.yml)
|
|
6
5
|
[](./LICENSE)
|
|
7
|
-
[](#compatibility--faq)
|
|
8
7
|
|
|
9
8
|
English · [中文](./README.md)
|
|
10
9
|
|
|
@@ -80,6 +79,7 @@ The GUI and Agent tools manage the **current host profile** (Web or Desktop). Th
|
|
|
80
79
|
| `0.1.5-rc.1 / rc.2` | `register()` scope | Checked; rc.1 also page-tested |
|
|
81
80
|
| `0.1.7-rc.1 / rc.2` | `.volatile()` + `settings.update` | Checked |
|
|
82
81
|
| `0.2.0-rc.1 / rc.2` | Same as 0.1.7 | rc.2 and restart path live-tested |
|
|
82
|
+
| `0.2.1-rc.2` | Same as 0.2.0 | Install/upgrade and D3 self-upgrade dogfooded (0.10.x line) |
|
|
83
83
|
|
|
84
84
|
**Is Desktop identical to Web?** No. Desktop browsing, new-package installation, and toggles act on the desktop profile. Upgrades and uninstalls require capabilities from the official host `pluginManager`; if absent, dsh-m returns a structured refusal and guidance. Desktop uses the official app lifecycle rather than Web's one-click restart; quit and reopen as instructed. Favorites, operations, and installed states are separate between profiles.
|
|
85
85
|
|
package/README.md
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# dsh-m — DeepSeek Harness 插件市场
|
|
2
2
|
|
|
3
|
-
[](https://github.com/iasiv5/dsh-m/releases)
|
|
4
3
|
[](https://www.npmjs.com/package/dsh-m)
|
|
5
4
|
[](https://github.com/iasiv5/dsh-m/actions/workflows/registry.yml)
|
|
6
5
|
[](./LICENSE)
|
|
7
|
-
[](#兼容与常见问题)
|
|
8
7
|
|
|
9
8
|
[English](./README.en.md) · 中文
|
|
10
9
|
|
|
@@ -80,6 +79,7 @@ GUI 与 Agent 工具始终跟随**当前宿主 profile**(Web / Desktop);
|
|
|
80
79
|
| `0.1.5-rc.1 / rc.2` | `register()` scope | 已核对;rc.1 另有页面实测 |
|
|
81
80
|
| `0.1.7-rc.1 / rc.2` | `.volatile()` + `settings.update` | 已核对 |
|
|
82
81
|
| `0.2.0-rc.1 / rc.2` | 同 0.1.7 通路 | rc.2 与重启链路实测 |
|
|
82
|
+
| `0.2.1-rc.2` | 同 0.2.0 通路 | 装机/升级与 D3 自升级 dogfood 实测(0.10.x 线) |
|
|
83
83
|
|
|
84
84
|
**Desktop 与 Web 完全一样吗?** 不是。Desktop 的浏览、安装新包和开关作用于 desktop profile;升级/卸载等操作需宿主官方 `pluginManager` 提供相应能力,缺失时返回结构化拒绝和指引。Desktop 不提供 Web 的一键重启;变更需按应用提示退出并重新打开。两边的收藏、操作记录和已装状态互不串联。
|
|
85
85
|
|
package/lib/client.js
CHANGED
|
@@ -2369,6 +2369,9 @@ var ZH = {
|
|
|
2369
2369
|
"op.degraded": "\u5347\u7EA7\u5931\u8D25\uFF1A\u65B0\u7248\u5B89\u88C5\u672A\u6210\u529F\uFF0C\u5DF2\u81EA\u52A8\u6062\u590D\u65E7\u7248 {restoredTo}\u2014\u2014\u63D2\u4EF6\u5F53\u524D\u53EF\u7528\uFF0C\u53EF\u7A0D\u540E\u91CD\u8BD5\u3002",
|
|
2370
2370
|
"notify.selfupgraded": "dsh-m \u5DF2\u5347\u7EA7\uFF08v{from} \u2192 v{to}\uFF09",
|
|
2371
2371
|
"notify.selfupgraded.failed": "dsh-m \u5347\u7EA7\u5931\u8D25\uFF1A{err}",
|
|
2372
|
+
"selfupgrade.reconciled.done": "dsh-m \u81EA\u5347\u7EA7\u5DF2\u5B8C\u6210\uFF08\u5F00\u673A\u5BF9\u8D26\u786E\u8BA4\uFF09\uFF1A{from} \u2192 {to}\u3002",
|
|
2373
|
+
"selfupgrade.reconciled.failed": "dsh-m \u81EA\u5347\u7EA7\u672A\u5B8C\u6210\uFF08\u5F00\u673A\u5BF9\u8D26\u786E\u8BA4\uFF09\uFF1A\u76EE\u6807 {to} \u672A\u88C5\u673A\uFF0C\u5F53\u524D\u4ECD\u4E3A {current}\uFF0C\u53EF\u91CD\u8BD5\u3002",
|
|
2374
|
+
"upgrade.reconciled.done": "{pkg} \u5347\u7EA7\u5DF2\u5B8C\u6210\uFF08\u6062\u590D\u5BF9\u8D26\u786E\u8BA4\uFF09\uFF1A\u5DF2\u5230 {to}\u3002",
|
|
2372
2375
|
"failed.install": "\u5B89\u88C5\u5931\u8D25\uFF1A{err}",
|
|
2373
2376
|
"failed.uninstall": "\u5378\u8F7D\u5931\u8D25\uFF1A{err}",
|
|
2374
2377
|
"failed.upgrade": "\u5347\u7EA7\u5931\u8D25\uFF1A{err}",
|
|
@@ -2670,6 +2673,9 @@ var EN = {
|
|
|
2670
2673
|
"op.degraded": "Upgrade failed: the new version did not install \u2014 rolled back to {restoredTo}. The plugin still works; you can retry later.",
|
|
2671
2674
|
"notify.selfupgraded": "dsh-m upgraded (v{from} \u2192 v{to})",
|
|
2672
2675
|
"notify.selfupgraded.failed": "dsh-m upgrade failed: {err}",
|
|
2676
|
+
"selfupgrade.reconciled.done": "dsh-m self-upgrade finished (confirmed by boot reconciliation): {from} \u2192 {to}.",
|
|
2677
|
+
"selfupgrade.reconciled.failed": "dsh-m self-upgrade did not complete (confirmed by boot reconciliation): target {to} is not installed \u2014 still {current}; you can retry.",
|
|
2678
|
+
"upgrade.reconciled.done": "{pkg} upgrade finished (confirmed by restore reconciliation): now at {to}.",
|
|
2673
2679
|
"failed.install": "Install failed: {err}",
|
|
2674
2680
|
"failed.uninstall": "Uninstall failed: {err}",
|
|
2675
2681
|
"failed.upgrade": "Upgrade failed: {err}",
|
|
@@ -5216,6 +5222,12 @@ function DshmVersionChip({ version, notify, initialCheck, ops }) {
|
|
|
5216
5222
|
if (data && typeof data === "object" && typeof data.current === "string") {
|
|
5217
5223
|
writeSelfCheckCache2(typeof window !== "undefined" && window.localStorage ? window.localStorage : null, data);
|
|
5218
5224
|
setCheck(data);
|
|
5225
|
+
const ir = data.intentResolved;
|
|
5226
|
+
if (ir && ir.ok) {
|
|
5227
|
+
notify({ kind: "ok", text: lookup("selfupgrade.reconciled.done", { from: ir.fromVersion ? `v${ir.fromVersion}` : "\u2014", to: `v${ir.installedVersion}` }) });
|
|
5228
|
+
} else if (ir) {
|
|
5229
|
+
notify({ kind: "warn", text: lookup("selfupgrade.reconciled.failed", { to: `v${ir.intentVersion}`, current: `v${version}` }) });
|
|
5230
|
+
}
|
|
5219
5231
|
}
|
|
5220
5232
|
}).catch(() => {
|
|
5221
5233
|
});
|
|
@@ -5766,6 +5778,11 @@ function MarketPanel({ onClose }) {
|
|
|
5766
5778
|
restoredRef.current = true;
|
|
5767
5779
|
void (async () => {
|
|
5768
5780
|
const restored = await restoreRecords2(opsStore.list(), stillApplies, installedVersionOf);
|
|
5781
|
+
for (const r of restored) {
|
|
5782
|
+
if (r.status === "done" && r.meta && r.meta.reconciledAfterRestart) {
|
|
5783
|
+
notify({ kind: "ok", text: lookup("upgrade.reconciled.done", { pkg: r.target, to: `v${r.meta.toVersion}` }) });
|
|
5784
|
+
}
|
|
5785
|
+
}
|
|
5769
5786
|
opsStore.replaceAll(restored);
|
|
5770
5787
|
syncOps();
|
|
5771
5788
|
if (restored.some((r) => r.status === "queued")) {
|
package/lib/core/host-api.js
CHANGED
|
@@ -281,7 +281,14 @@ export function createApiDispatcher(ctx) {
|
|
|
281
281
|
if (rec && rec.status === 'delegated') {
|
|
282
282
|
const match = rec.version === ctx.pkg.version;
|
|
283
283
|
await d.resolveUpgradeIntent({ ok: match, installedVersion: match ? ctx.pkg.version : undefined });
|
|
284
|
-
intentResolved = {
|
|
284
|
+
intentResolved = {
|
|
285
|
+
ok: match,
|
|
286
|
+
target: rec.target,
|
|
287
|
+
// 0.10.4:intentVersion/fromVersion 透出——client 据此补「对账确认」横幅(成功/未完成双形态)
|
|
288
|
+
intentVersion: rec.version,
|
|
289
|
+
...(rec.fromVersion !== undefined ? { fromVersion: rec.fromVersion } : {}),
|
|
290
|
+
...(match ? { installedVersion: ctx.pkg.version } : {}),
|
|
291
|
+
};
|
|
285
292
|
}
|
|
286
293
|
}
|
|
287
294
|
catch {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-m",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.5",
|
|
4
4
|
"description": "可自定义收录清单的 DSH 插件市场:收录、安装、卸载、升级一站完成,附 agent 工具与 dshm CLI。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
"registry.json",
|
|
21
21
|
"README.md",
|
|
22
22
|
"README.en.md",
|
|
23
|
-
"CHANGELOG.md",
|
|
24
|
-
"docs/DESIGN.md",
|
|
25
23
|
"LICENSE"
|
|
26
24
|
],
|
|
27
25
|
"keywords": [
|
package/registry.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{
|
|
5
5
|
"id": "dsh-m",
|
|
6
6
|
"name": "DSH Marketplace",
|
|
7
|
-
"description": "自定义清单的 DSH 插件市场,收录/安装/卸载/升级;已适配 DSH 0.2.
|
|
7
|
+
"description": "自定义清单的 DSH 插件市场,收录/安装/卸载/升级;已适配 DSH 0.2.1-rc.2,支持 web 与 desktop 双 profile,详见仓库。",
|
|
8
8
|
"category": "essentials",
|
|
9
9
|
"alsoCategories": ["self-dev"],
|
|
10
10
|
"tags": ["市场", "插件管理"],
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
{
|
|
18
18
|
"id": "dsh-skins",
|
|
19
19
|
"name": "DSH Skins",
|
|
20
|
-
"description": "DSH Web 皮肤插件:多套品牌皮肤侧栏热切换,一键回到官方界面。已适配
|
|
20
|
+
"description": "DSH Web 皮肤插件:多套品牌皮肤侧栏热切换,一键回到官方界面。已适配 web 与 Desktop 0.2.0-rc.1+,详见仓库。",
|
|
21
21
|
"category": "essentials",
|
|
22
22
|
"alsoCategories": ["self-dev"],
|
|
23
23
|
"tags": ["皮肤", "主题", "美化", "界面"],
|
|
24
|
-
"verified": ["0.
|
|
24
|
+
"verified": ["0.2.0-rc.1", "0.2.0-rc.2", "0.2.1-rc.2"],
|
|
25
25
|
"source": "npm",
|
|
26
26
|
"npm": "@iasiv5/dsh-skins",
|
|
27
27
|
"github": "iasiv5/dsh-skins",
|