@feiyang666/dsh-mobile-remote 1.4.3 → 1.4.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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # 更新日志 / Changelog
2
2
 
3
+ ## v1.4.5 (2026-08-22)
4
+
5
+ ### 修复 / Fixed
6
+ - **客户端插件加载失败**(`lib/client.js`):`window.__ModuleLoader__.load` 的 `id` 写成了无 scope 的裸包名 `dsh-mobile-remote`,而 client-modules 按 loader entry 的完整包名 `@feiyang666/dsh-mobile-remote` 校验注册,导致报 `loaded without registering "@feiyang666/dsh-mobile-remote"`、客户端插件无法加载。本版改为完整包名,与 `dsh-vault`、`dsh-usage-plugin` 的 client bundle 写法一致。
7
+
8
+ ## v1.4.4 (2026-08-22)
9
+
10
+ ### 修复 / Fixed
11
+ - **安装插件后 dsh 服务启动崩溃**(`cordis.patch.yml`):bundle 补丁层 `insert` 块的 `name` 写成了无 scope 的裸包名 `dsh-mobile-remote`,而实际 npm 包名是 `@feiyang666/dsh-mobile-remote`。Cordis loader 按 `name` 去 profile 的 `node_modules` 中 import 该包时找不到(`Cannot find package 'dsh-mobile-remote'`),导致整个插件树加载失败、dsh 服务 `code=1` 退出。本版改为完整包名 `@feiyang666/dsh-mobile-remote`,与 `dsh-vault`、`dsh-usage-plugin` 等官方插件的写法保持一致。
12
+
3
13
  ## v1.4.3 (2026-08-22)
4
14
 
5
15
  ### 修复 / Fixed
package/RELEASE_NOTES.md CHANGED
@@ -1,6 +1,6 @@
1
- # dsh-mobile-remote v1.4.3
1
+ # dsh-mobile-remote v1.4.5
2
2
 
3
- **DeepSeek Harness 移动端远程控制插件** —— 在 Web UI 设置页内置「远程控制」:连接二维码、一键开关、在线设备数,让手机通过局域网访问并操控电脑上的 DeepSeek Harness。本版**修复移动端设置页空白 / 无法滚动**,并新增**内网(非安全上下文)远程连接的 `crypto.randomUUID` 兜底**,让内网直连与手机扫码访问不再失败。
3
+ **DeepSeek Harness 移动端远程控制插件** —— 在 Web UI 设置页内置「远程控制」:连接二维码、一键开关、在线设备数,让手机通过局域网访问并操控电脑上的 DeepSeek Harness。本版**修复客户端插件加载失败**(`client-modules: loaded without registering`)的问题。
4
4
 
5
5
  ## 安装方式
6
6
 
@@ -10,18 +10,26 @@ dsh plugin --profile web add @feiyang666/dsh-mobile-remote
10
10
 
11
11
  安装完成后**重启 dsh web 服务**,打开 `http://127.0.0.1:3080` → **设置 → 远程控制** 即可使用。
12
12
 
13
- ## 本版更新(v1.4.3)
13
+ ## 本版更新(v1.4.5)
14
14
 
15
- ### 🖱️ 移动端设置页:内容空白 + 无法上下滚动
15
+ ### 🐛 修复客户端插件加载失败(client-modules: loaded without registering)
16
16
 
17
- 上一版已把设置弹窗改为全屏单栏,但面板仍是横向布局,导致内容列被压成 0 宽度、设置内容区整块空白;内容列也无法收缩,设置选项区不能上下滑动。本版:
17
+ 安装本插件后 WebUI 报错:
18
18
 
19
- - 面板强制 `flex-direction: column`,导航栏成为顶部横向标签、内容列独占剩余空间;
20
- - 内容列 `min-height: 0` + `overflow: hidden`,设置选项区在手机端可正常上下滚动。
19
+ ```
20
+ Failed to load plugins
21
+ failed to import loader entry 374151e3 (@feiyang666/dsh-mobile-remote):
22
+ client-modules: bundle /plugins/@feiyang666/dsh-mobile-remote/client.js?rev=...
23
+ loaded without registering "@feiyang666/dsh-mobile-remote" via __ModuleLoader__.load
24
+ ```
25
+
26
+ **根因**:client 侧 bundle(`lib/client.js`)中 `window.__ModuleLoader__.load` 的 `id` 写成了无 scope 的裸包名 `dsh-mobile-remote`,而 client-modules 按完整包名 `@feiyang666/dsh-mobile-remote` 校验注册结果,导致校验失败、客户端插件无法加载。
27
+
28
+ **本版修复**:`__ModuleLoader__.load` 的 `id` 改为完整包名 `@feiyang666/dsh-mobile-remote`,与 `dsh-vault`、`dsh-usage-plugin` 等官方插件的 client bundle 写法一致。
21
29
 
22
- ### 🔐 内网远程连接:`crypto.randomUUID` 兜底
30
+ > 本版同时包含 v1.4.4 的修复:`cordis.patch.yml` 的 `name` 改为完整包名(修复 dsh 服务启动崩溃 `Cannot find package 'dsh-mobile-remote'`)。
23
31
 
24
- 当前 DSH 客户端多处裸调用 `crypto.randomUUID()`,该 Web Crypto API 仅在 HTTPS 或 localhost 存在。内网 http 直连(非安全上下文)下缺失(或存在但调用即抛),导致连接与所有 RPC 失败,模型设置页因此报 `settings are unavailable in this browser`。本版在插件注入 `<head>` 的脚本里,用 `crypto.getRandomValues`(非安全上下文也可用)补一个 RFC 4122 v4 `crypto.randomUUID` 兜底,覆盖应用内全部调用点,内网访问 / 扫码连接恢复正常;DSH 自行修复后该兜底自动失效,无副作用。
32
+ > 已安装旧版本的用户:请先卸载本插件(桌面端「插件管理」或 `dsh plugin --profile web remove @feiyang666/dsh-mobile-remote`),再重新安装本修复版。
25
33
 
26
34
  ## 已知事项
27
35
 
package/cordis.patch.yml CHANGED
@@ -1,7 +1,11 @@
1
1
  # dsh-mobile-remote 插件 bundle 补丁层。
2
- # 通过 `dsh plugin --profile web add dsh-mobile-remote`(或桌面端「插件管理 → 自定义安装」)
2
+ # 通过 `dsh plugin --profile web add @feiyang666/dsh-mobile-remote`(或桌面端「插件管理 → 自定义安装」)
3
3
  # 安装后,本文件会在 dsh web 启动时被挂载,把下面的插件行插入到宿主组合中。
4
4
  #
5
+ # 注意:name 必须是完整的 npm 包名(含 scope)。Cordis loader 会按 name 去 profile 的
6
+ # node_modules 里 import 该包,若写成无 scope 的裸包名会导致整个插件树加载失败
7
+ # (Cannot find package 'dsh-mobile-remote'),dsh 服务启动即崩溃(code=1)。
8
+ #
5
9
  # 插件是 host + client 双面插件:
6
10
  # - host 侧(lib/index.js,inject [webServer]):
7
11
  # * 通过 ctx.webServer.tapIndex 注入移动端响应式 CSS / JS;
@@ -11,5 +15,5 @@
11
15
  # * 由 dsh-client-modules 扫描加载,注册「设置 → 远程控制」section。
12
16
  - insert:
13
17
  - id: dsh-mobile-remote
14
- name: 'dsh-mobile-remote'
18
+ name: '@feiyang666/dsh-mobile-remote'
15
19
  inject: [webServer]
package/lib/client.js CHANGED
@@ -8,9 +8,13 @@
8
8
  //
9
9
  // 打包格式:浏览器 module loader(window.__ModuleLoader__.load)标准 bundle,
10
10
  // 与官方 client 插件一致。纯 React.createElement,无 JSX 构建依赖。
11
+ //
12
+ // 注意:__ModuleLoader__.load 的 id 必须是完整的 npm 包名(含 scope)。client-modules
13
+ // 按 loader entry 的包名(@feiyang666/dsh-mobile-remote)校验注册,若写成裸包名会报
14
+ // "loaded without registering ..." 导致客户端插件加载失败。
11
15
 
12
16
  window.__ModuleLoader__.load({
13
- id: 'dsh-mobile-remote',
17
+ id: '@feiyang666/dsh-mobile-remote',
14
18
  factory: (require) => {
15
19
  var module = { exports: {} };
16
20
  var exports = module.exports;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feiyang666/dsh-mobile-remote",
3
- "version": "1.4.3",
3
+ "version": "1.4.5",
4
4
  "description": "DeepSeek Harness mobile remote-control plugin: LAN/external remote control (QR / on-off toggle / remote-access password gate), rich telemetry (expandable device details, system CPU/memory/load, DSH app state: version/sessions/workspaces/plugins/models), real external-tunnel status detection (frpc token / reconnect diagnostics), plus mobile-first UI polish and faster remote loading.",
5
5
  "keywords": [
6
6
  "deepseek",