@wenbin_wb/dsh-bridge 2.10.12 → 2.10.14

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
@@ -4,9 +4,54 @@
4
4
 
5
5
  ---
6
6
 
7
+ ## [v2.10.14] - 2026-09-25
8
+
9
+ > 本版为移动端设置页的体验修复:解决内容被静默裁切、窄屏菜单拥挤、弹窗「✕」位置错乱,以及插件市场的安装确认框被设置弹窗盖住(点「安装」没反应)/ 矮屏下超出屏幕点不到按钮等问题。纯前端样式与交互调整,刷新页面即生效。
10
+
11
+ ### 🐞 修复
12
+
13
+ - **手机设置页内容被静默裁切、页签点不到**:插件此前给设置内容区强制 `overflow-x: hidden`,把宿主本可横向滚动的内容降级成「看不到也滑不出来」(375px 下溢出 42px);第三方设置页(如插件市场)的「已安装」等页签因此完全不可达。现恢复为可滚动,任何设置页的内容至少可达。
14
+ - **窄屏设置菜单拥挤、内容列过窄**:≤480px 改为「分类列表 → 内容页」两级导航,内容列由 277px 提升到 355px(+28%),分类文字由 10.5px 恢复到 15px、触控行 52px;481–767px 保留左侧轨道但放宽到 88px / 11.5px,并去掉会从词中间断字的 `word-break: break-all`。
15
+ - **横屏小屏设置分类末项被切**:导航单元格不再被压缩,并对矮视口单独收紧,6 个分类无需滚动即全部落位(此前末项被切约 7px)。
16
+ - **设置弹窗「✕」位置错乱**:宿主 DOM 中「✕」属于内容区头部、标题属于导航区,此前两者被拆到两行(列表页「✕」在标题上一行、内容页「✕」在返回行下一行)。现「✕」回到面板右上角并与标题/返回行同一行;宿主与第三方的页面操作按钮统一下沉为底部动作栏。
17
+ - **插件市场点「安装」没有反应**:本插件把设置弹窗抬到 `z-index: 10002`,而第三方安装确认框的模态根只有 `1000`;其内部对话框虽被既有规则抬到 `10005`,但 `z-index` 逃不出祖先层叠上下文,整棵子树被盖死。现按「`<body>` 直接子级 + 自带遮罩/含 `role=dialog` 子元素」这一结构特征,把此类浮层抬到设置弹窗之上(仅在设置弹窗打开时生效,不硬编码第三方类名)。
18
+ - **矮屏下安装确认框超出视口、按钮点不到**:该确认框固定 584px 高且 `overflow-y: hidden`,横屏手机(375px 高)下被居中撑开后上下同时被切、底部按钮落到视口外。现约束其不超过视口并允许框内滚动(自限性:正常竖屏下不产生任何视觉变化)。
19
+ - **「远程访问」版本状态行把「检查更新」按钮顶出可视区**:状态行左组补 `flexWrap`/`minWidth:0`,按钮补 `nowrap` + `flexShrink:0`。
20
+ - **设置页内页签被切断却无从得知可以横滑**:Tab 条增加边缘渐隐提示,切换时当前页签自动滚入可视区。
21
+
22
+ ### 🧪 测试
23
+
24
+ - 新增 `test/mobile-settings-narrow-layout.test.mjs`(12 条):断点与产物同步、钻取布局与就绪开关门控、`✕` 同行与让位、第三方模态框层叠与视口约束、跨文件断点一致性等结构断言,并配四套变异自检(共 32 组绕过尝试,全部被拦下)。
25
+
26
+ > ⚠️ 生效说明:纯前端改动,刷新页面即可生效,无需重启 dsh。
27
+
28
+ ---
29
+
30
+ ## [v2.10.13] - 2026-09-23
31
+
32
+ > 本版为可靠性与兼容性加固:修复 cloudflared 连接器"假死"(进程存活但边缘连接全掉)造成的公网隧道静默失效(新增运行时健康探针与输出落盘);跟随 DSH 0.1.5 的官方目录选择器,让本机访问不再误弹插件的远程抽屉;并修复添加工作区弹窗的状态泄漏卡死。
33
+
34
+ ### ✨ 新功能
35
+
36
+ - **cloudflared 运行时健康探针**:解析 cloudflared 自报 metrics 地址并每 30s 探活官方 `/ready`(判据与上游一致:HTTP 200 且 `readyConnections > 0`)。连续 3 次失败(约 90s)→ 面板状态可见降级「⚠️ 连接器已无健康边缘连接」;连续 10 次(约 5min)→ 判定假死、终止进程并走既有自愈链路强制重建。重建链路(含重启后握手失败)**永不进入终态**——网络恢复后会自动自愈,不再需要人工干预。
37
+ - **cloudflared 输出落盘**:子进程输出写入 `~/.dsh/dsh-bridge/cloudflared.log`,超 5MB 自动轮转为 `.1`;隧道 Token 落盘前强制脱敏(含跨输出块切分、以及 Token 前缀残留等边界,确保任何 Token 片段都不落盘)。
38
+
39
+ ### 🐞 修复
40
+
41
+ - **公网入口静默失效数天无人发现**(现象:HTTP 530 + `error code: 1033`):旧逻辑只监听子进程退出,而假死连接器既不退出也不报错,故永不触发自愈。探针上线后最迟约 5 分钟即可自动重建。
42
+ - **本机点「添加工作区」误弹插件的远程抽屉**(issue #28 第 2 条):DSH 0.1.5 起自带官方目录选择器(`dsh-host-directory-picker-auto` 按宿主能力分发 native / browse),且注册到与插件完全相同的 Slot;DSH 的 slots 是 shadow 语义(动态注册的插件天然覆盖内置实现),于是本机 `127.0.0.1:3080` 也被插件的远程目录选择器接管。现改为「本机访问 且 官方 picker 可用」时**不注册**该 Slot,让位给 DSH 官方——macOS / Windows 走系统原生文件夹对话框,无桌面环境的 Linux 走官方网页选择器;**旧版 DSH 与远程 / 移动访问仍由插件接管**,保留管理密码解锁与 `local_only` 目录策略。
43
+ - **添加工作区弹窗点过「已注册工作区」后永久卡死**(PR #42):`switchToWorkspace()` 只置位 `isSubmitting` 而从不复位,同一弹窗实例的 `loadDirectory()` / `doSubmit()` 守卫让弹窗彻底无响应(点目录不进目录、点添加无反应且按钮停在「正在添加并切换…」);改为与 `doSubmit()` 对称的 `try/finally` 复位,`render()` 抛错与将来新增的提前 return 都不会再泄漏。
44
+ - **探针自身异常不得拖垮宿主**:畸形 metrics 地址、日志通道自身抛错等任何探针路径异常都不会变成未处理 rejection 结束 DSH 主进程(独立子进程实验验证)。
45
+ - **新增 18 条探针回归测试**(含防误杀正常重连连接器、防终态、脱敏泄漏/吞字符、跨 chunk 脱敏、崩溃回归等)。
46
+ - **新增 15 条回归测试**:12 条目录选择器让位(让位判定真值表、官方 picker 探测、Slot 注册顺序结构断言、产物同步)+ 3 条添加工作区弹窗 `isSubmitting` 复位与产物同步。
47
+
48
+ > ⚠️ 生效说明:本版需要重启一次 dsh(`systemctl --user restart dsh-web.service` 或面板「重启 DSH」)才加载新代码;重启会短暂中断当前会话与公网隧道(数十秒)。
49
+
50
+ ---
51
+
7
52
  ## [v2.10.12] - 2026-09-16
8
53
 
9
- > v2.10.11 未正式发布到 npm,其内容已并入本版。
54
+ > 本版汇总 v2.10.11 的修复内容,并含 4 处可靠性加固(systemctl 退出码判定、单元名解析、助手失败日志、注入分段判重)。
10
55
 
11
56
  ### 🐞 修复
12
57