@iasiv5/dsh-skins 1.5.7 → 1.5.8

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 CHANGED
@@ -42,6 +42,13 @@ dsh plugin --profile web remove @iasiv5/dsh-skins # uninstall
42
42
 
43
43
  With the [dsh-m](https://github.com/iasiv5/dsh-m) plugin marketplace installed, you can also install / uninstall this plugin with one click inside the DSH Web UI.
44
44
 
45
+ **Pick the plugin version for your DSH version**:
46
+
47
+ | Your DSH version | Plugin version |
48
+ |---|---|
49
+ | `0.2.0-rc.1` and later (Web and Desktop alike) | `@latest` (1.5.8+) |
50
+ | `0.1.x` | `1.5.7` (last release supporting that line) |
51
+
45
52
  <details>
46
53
  <summary>Hand the install to your Agent (prompt install)</summary>
47
54
 
@@ -140,7 +147,7 @@ In the **DSH Desktop app**, the shell chrome — sidebar, caption strip, right p
140
147
 
141
148
  ![Desktop profile — solid chrome + wallpaper in the conversation area (meirenzhi · dark)](docs/assets/preview-desktop-1.webp)
142
149
 
143
- - Verified with dsh Desktop `0.2.0-rc.2` (Windows); macOS / Linux Desktop currently follow the Web form and will be adapted in a later release.
150
+ - Verified with dsh Desktop `0.2.1-rc.2` (Windows); macOS / Linux Desktop currently follow the Web form and will be adapted in a later release.
144
151
  - The right panel in fullscreen is the solid skin base color; the wallpaper is not shown through it.
145
152
 
146
153
  ## The skin switcher
@@ -173,10 +180,10 @@ Pick "DeepSeek Harness (Official)" in the skin switcher, or open `/?skin=officia
173
180
  Update duty has moved to the dsh-m marketplace and the DSH CLI (ADR-0008); the skin switcher only handles skins and personalization.
174
181
 
175
182
  **Which DSH Web versions are supported?**
176
- Verified with DSH Web `0.2.0-rc.2`. Later rc builds of the same series are expected to work, but unverified versions carry no promise.
183
+ Verified with DSH Web `0.2.0-rc.2`. Later rc builds of the same series are expected to work, but unverified versions carry no promise. Requires DSH `0.2.0-rc.1` or later; older DSH versions are blocked from upgrading to 1.5.8+ by the peer dependency floor.
177
184
 
178
185
  **Is the Desktop profile supported?**
179
- Yes. The DSH Desktop app and the Web profile are installed independently and do not affect each other; the desktop form (solid chrome + wallpaper in the conversation area) is described under "The Desktop profile". Verified with dsh Desktop `0.2.0-rc.2` (Windows).
186
+ Yes. The DSH Desktop app and the Web profile are installed independently and do not affect each other; the desktop form (solid chrome + wallpaper in the conversation area) is described under "The Desktop profile". Verified with dsh Desktop `0.2.1-rc.2` (Windows).
180
187
 
181
188
  **Does my appearance preference sync across browsers?**
182
189
  In the browser on the DSH host machine (loopback), the preference is persisted by the DSH Host and shared naturally. Other remote browsers keep the preference in their own `localStorage` — independent per browser, never overwritten.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # node scripts/verify-readme-pairing.mjs --write
5
- README.md: 00a34bf2d930204da3aff8299779b931719ee5cd
6
- README.en.md: d741fa3991323516fe07e4b81c4f6862c6800456
5
+ README.md: efd7cba38981f2250296678a90448e6ecda7088a
6
+ README.en.md: 31497e8721472557f89af32cdb78a827ff9f0232
package/README.md CHANGED
@@ -42,6 +42,13 @@ dsh plugin --profile web remove @iasiv5/dsh-skins # 卸载
42
42
 
43
43
  安装了 [dsh-m](https://github.com/iasiv5/dsh-m) 插件市场的话,也可以直接在 DSH Web 界面里一键安装 / 卸载本插件。
44
44
 
45
+ **按 DSH 版本选插件版本**:
46
+
47
+ | 你的 DSH 版本 | 插件版本 |
48
+ |---|---|
49
+ | `0.2.0-rc.1` 及以上(web 与 Desktop 通用) | `@latest`(1.5.8+) |
50
+ | `0.1.x` | `1.5.7`(该线的最后支持版) |
51
+
45
52
  <details>
46
53
  <summary>把安装交给 Agent(提示词安装法)</summary>
47
54
 
@@ -140,7 +147,7 @@ dsh plugin --profile web remove @iasiv5/dsh-skins # 卸载
140
147
 
141
148
  ![Desktop profile — 实色外壳 + 会话区壁纸(美人志 · 深色)](docs/assets/preview-desktop-1.webp)
142
149
 
143
- - 已在 dsh Desktop `0.2.0-rc.2`(Windows)验证;macOS / Linux Desktop 当前跟随 Web 形态,后续版本适配。
150
+ - 已在 dsh Desktop `0.2.1-rc.2`(Windows)验证;macOS / Linux Desktop 当前跟随 Web 形态,后续版本适配。
144
151
  - 右栏面板全屏时为实色皮肤底、不透出壁纸;面板「收起/关闭」后的空轨道行为属宿主布局。
145
152
 
146
153
  ## 皮肤切换器
@@ -173,10 +180,10 @@ URL 也能切皮肤:`/?skin=official`、`/?skin=openbmc`、`/?skin=uefi-harnes
173
180
  更新职责已移交 dsh-m 市场与 DSH CLI(ADR-0008);皮肤切换器只负责换肤与个性化。
174
181
 
175
182
  **支持哪些 DSH Web 版本?**
176
- 已使用 DSH Web `0.2.0-rc.2` 验证。同系列 rc 版本理论上兼容,未经验证的版本不作承诺。
183
+ 已使用 DSH Web `0.2.0-rc.2` 验证。同系列 rc 版本理论上兼容,未经验证的版本不作承诺。最低支持 DSH `0.2.0-rc.1`:更旧的 DSH 版本会被 peer 依赖门槛挡住,无法升级到 1.5.8+。
177
184
 
178
185
  **支持 Desktop profile 吗?**
179
- 支持。DSH Desktop 应用与 Web profile 各自独立安装、互不影响;桌面形态(实色外壳 + 会话区壁纸)见「Desktop profile 上的形态」。已使用 dsh Desktop `0.2.0-rc.2`(Windows)验证。
186
+ 支持。DSH Desktop 应用与 Web profile 各自独立安装、互不影响;桌面形态(实色外壳 + 会话区壁纸)见「Desktop profile 上的形态」。已使用 dsh Desktop `0.2.1-rc.2`(Windows)验证。
180
187
 
181
188
  **外观偏好在不同的浏览器间同步吗?**
182
189
  在 DSH 所在机器的浏览器(loopback)上,偏好由 DSH Host 持久化,天然共享。其他远程浏览器由插件将偏好存入本地 `localStorage`,各浏览器独立、互不覆盖。
package/lib/index.js CHANGED
@@ -1065,7 +1065,7 @@ function mountPersonalizationRoutes(host, options) {
1065
1065
  const { store, assetsBasePath = "/dsh-skins/assets", trustedHosts = [] } = options;
1066
1066
  const disposers = [];
1067
1067
  const fence = (request, response) => {
1068
- if (isTrustedRequest(request, trustedHosts)) return true;
1068
+ if (isTrustedRequest(request, typeof trustedHosts === "function" ? trustedHosts() : trustedHosts)) return true;
1069
1069
  sendJson(response, 403, { error: "trusted DSH Web request required" });
1070
1070
  return false;
1071
1071
  };
@@ -1182,6 +1182,20 @@ function mountPersonalizationRoutes(host, options) {
1182
1182
  };
1183
1183
  }
1184
1184
 
1185
+ // src/host/trusted-hosts.js
1186
+ function resolveTrustedHosts(ctx) {
1187
+ let startup, runtime;
1188
+ try {
1189
+ startup = ctx?.get?.("webStartup");
1190
+ } catch {
1191
+ }
1192
+ try {
1193
+ runtime = ctx?.get?.("webRuntime");
1194
+ } catch {
1195
+ }
1196
+ return startup?.trustedHosts ?? runtime?.trustedHosts ?? [];
1197
+ }
1198
+
1185
1199
  // src/index.js
1186
1200
  var name = "@iasiv5/dsh-skins";
1187
1201
  function expandHomePath(path) {
@@ -1218,7 +1232,7 @@ function dataDirForProfile(root, profile) {
1218
1232
  return desktop;
1219
1233
  }
1220
1234
  function apply(ctx) {
1221
- ctx.inject(["webServer", "webRuntime"], (hostContext) => {
1235
+ ctx.inject(["webServer"], (hostContext) => {
1222
1236
  const root = dshHome();
1223
1237
  const profile = hostProfileFor(root);
1224
1238
  const personalization = createPersonalizationStore({
@@ -1228,7 +1242,7 @@ function apply(ctx) {
1228
1242
  hostContext.effect(() => {
1229
1243
  return mountPersonalizationRoutes(hostContext, {
1230
1244
  store: personalization,
1231
- trustedHosts: hostContext.webRuntime.trustedHosts
1245
+ trustedHosts: () => resolveTrustedHosts(ctx)
1232
1246
  });
1233
1247
  }, "dsh-skins: personalization routes");
1234
1248
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@iasiv5/dsh-skins",
3
3
  "description": "DSH Web 皮肤插件:多套品牌皮肤侧栏热切换。",
4
- "version": "1.5.7",
4
+ "version": "1.5.8",
5
5
  "homepage": "https://github.com/iasiv5/dsh-skins#readme",
6
6
  "repository": {
7
7
  "type": "git",
@@ -55,18 +55,19 @@
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@deepseek-ai/cordis": "^4.0.1",
58
- "@deepseek-ai/dsh-client-connection": ">=0.1.1-rc.2",
59
- "@deepseek-ai/dsh-client-locale": ">=0.1.1-rc.2",
60
- "@deepseek-ai/dsh-client-runtime": ">=0.1.1-rc.2",
61
- "@deepseek-ai/dsh-client-ui-conversation": ">=0.1.1-rc.2",
62
- "@deepseek-ai/dsh-client-ui-sidebar": ">=0.1.1-rc.2",
63
- "@deepseek-ai/dsh-client-ui-theme": ">=0.1.1-rc.2"
58
+ "@deepseek-ai/dsh-client-connection": ">=0.2.0-rc.1 || >=0.2.1-rc.1",
59
+ "@deepseek-ai/dsh-client-locale": ">=0.2.0-rc.1 || >=0.2.1-rc.1",
60
+ "@deepseek-ai/dsh-client-runtime": ">=0.2.0-rc.1 || >=0.2.1-rc.1",
61
+ "@deepseek-ai/dsh-client-ui-conversation": ">=0.2.0-rc.1 || >=0.2.1-rc.1",
62
+ "@deepseek-ai/dsh-client-ui-sidebar": ">=0.2.0-rc.1 || >=0.2.1-rc.1",
63
+ "@deepseek-ai/dsh-client-ui-theme": ">=0.2.0-rc.1 || >=0.2.1-rc.1"
64
64
  },
65
65
  "license": "MIT",
66
66
  "devDependencies": {
67
67
  "@deepseek-ai/cordis": "^4.0.4",
68
68
  "esbuild": "^0.28.2",
69
- "playwright-core": "1.62.1"
69
+ "playwright-core": "1.62.1",
70
+ "semver": "^7.8.5"
70
71
  },
71
72
  "scripts": {
72
73
  "build": "node scripts/build-client.mjs",