@wenbin_wb/dsh-bridge 2.10.0 → 2.10.1

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,25 +4,25 @@
4
4
 
5
5
  ---
6
6
 
7
- ## [v2.10.0] - 2026-09-01
7
+ ## [v2.10.1] - 2026-09-01
8
+
9
+ ### 🧹 说明
8
10
 
9
- > **本次为远程锁屏/解锁流程修复版**:重点修复远程访问场景下锁屏不显示、解锁后无限循环、会话失效后无法恢复等一连串问题,并新增「管理保护」独立开关与 DSH 宿主版本显示。建议升级前备份 `~/.dsh/dsh-bridge/config.json`。
11
+ - 无代码变更:修正 npm 包内升级提示(releaseNotes)措辞,与 v2.10.0 发布说明保持一致(仅突出新增功能,不再罗列内部修复细节)。
10
12
 
11
- ### 🔐 远程锁屏/解锁流程修复
13
+ ---
12
14
 
13
- - **修复解锁后无限锁屏循环**:DSH 重启或访问会话过期后,旧 cookie 失效,所有接口被代理以 HTTP 401 拦截。此前即使管理密码解锁成功(`authAdminUnlock` 已豁免),解锁后 `getStatus` 依旧 401 → 面板把锁重置回 true → 无限循环。现在检测到访问会话失效(HTTP 401 / transport failure)时,**整页重载回绿色图标登录页**重新输入访问密码获取新会话,不再困在锁屏;带防循环保护(重载一次未恢复则提示手动刷新)。
14
- - **修复锁屏状态下无法解锁(401)**:锁屏时访问会话可能已失效,`authAdminUnlock` 请求此前也被 HTTP 访问认证拦截,导致锁屏永远解不开;现豁免该端点的访问认证(内部仍校验管理密码,安全不受影响)。
15
- - **修复关闭「访问认证」后锁屏不显示**:锁屏此前依赖访问认证开关,关闭后远程设备不再锁定(管理保护形同虚设);现管理保护独立生效,关闭访问认证后远程设备仍显示锁屏,仅凭管理密码可解锁。
16
- - **修复关闭「访问认证」后仍要求密码**:`enabled` 开关豁免管理 gate(否则"关闭访问认证"这个动作本身会被管理保护锁死)。
17
- - **修复远程首次进入设置页不显示锁屏**:现在远程设备首次进入即显示完整全屏锁屏(输入管理密码后方可操作)。
18
- - **修复远程目录选择器卡死**:目录浏览被鉴权拦截时内嵌解锁入口,解锁后自动继续;`local_only` 策略下明确提示远程不可解锁。
19
- - **修复解锁成功后操作丢失**:被拦截的操作暂存队列,解锁成功后自动重放,无需重新点击。
15
+ ## [v2.10.0] - 2026-09-01
20
16
 
21
17
  ### ✨ 新功能
22
18
 
23
- - **新增「管理保护」独立开关**:与访问认证解耦的独立安全开关(安全认证页可切换)。关闭后管理操作免 adminToken,与访问认证开关互不干扰。
19
+ - **新增「管理保护」独立开关**:与访问认证解耦的独立安全开关(安全认证页可切换)。此前远程锁屏依附于访问认证开关,关闭访问认证后管理保护随之失效;现在两者完全独立,远程设备的管理权限始终受「管理保护」约束,仅凭管理密码可解锁。
24
20
  - **面板显示 DSH 宿主版本**:版本条新增灰色 `DSH vX.Y.Z` 标签(服务端惰性探测 `dsh --version` 并缓存,零轮询开销),与插件版本并排展示。
25
21
 
22
+ ### 🐞 修复
23
+
24
+ - 修复远程锁屏/解锁流程的多处问题:会话失效(DSH 重启/过期)后自动跳回登录页重新登录,不再困在锁屏;锁屏状态下可正常输入管理密码解锁;关闭访问认证后锁屏仍生效、且不再误要求密码;远程首次进入设置页即显示全屏锁屏;目录选择器解锁不再卡死。
25
+
26
26
  ### 🧹 内部优化
27
27
 
28
28
  - 统一 adminToken 缓存为单一来源,删除死代码与重复实现(unlock-manager 未接入 API、组件内冗余 state、重复的 loopback-token 逻辑等)。
@@ -0,0 +1,40 @@
1
+ # 发布流程规则(RELEASE PROCESS)
2
+
3
+ > 本文件是**发布操作的红线规则**,任何一次对外发布(npm / GitHub Release)都必须遵守。
4
+
5
+ ## 铁律:发布前必须人工确认
6
+
7
+ **任何版本(正式版 / 补丁版)在推 tag、npm publish、创建 GitHub Release 之前,必须先向仓库所有者(wenbin-wb)确认,得到明确同意后才可执行。**
8
+
9
+ 原因(2026-09-01 教训):v2.10.0 发布时未先确认就自行完成了 合并 → 打 tag → 推送 → npm publish 全流程,随后发现发布说明措辞需要修订,而 npm 不允许覆盖已发布版本,只能再补 v2.10.1 修正,造成不必要的版本噪音。
10
+
11
+ ### 确认清单(发布前发给所有者)
12
+
13
+ 1. **版本号**:下一个版本号(如 `v2.10.1`)是否认可?
14
+ 2. **发布说明(releaseNotes / CHANGELOG)**:内容是否准确?是否只包含用户可感知的变更(新功能、真实修复),不包含开发过程细节?
15
+ 3. **发布范围**:npm 发布 + GitHub Release + tag,是否全部执行?
16
+
17
+ 得到「可以发布」的明确回复后,才允许执行发布动作。
18
+
19
+ ## 发布流程
20
+
21
+ 1. **改版本**:`package.json` 的 `version` + `releaseNotes`
22
+ 2. **写 CHANGELOG**:`CHANGELOG.md` 顶部新增对应版本条目
23
+ 3. **构建与测试**:`npm run build:lark` + `npm run build:client` + `npm run build:banner` + `npm test`(全量 166 项)
24
+ 4. **提交**:合并到 `main`(fast-forward),提交信息 `release: vX.Y.Z — ...`
25
+ 5. **打 tag**:`git tag vX.Y.Z && git push origin vX.Y.Z`(触发 GitHub Actions 自动创建 Release)
26
+ 6. **npm 发布**:`npm publish`(prepack 自动构建产物)
27
+ 7. **验证**:npm 线上版本 + GitHub Release body 是否正确
28
+
29
+ ## 发布说明写作规范
30
+
31
+ - ✅ 只写**用户可感知**的变更:新功能、真实修复(用户报告的问题)
32
+ - ❌ 不写开发过程中自己引入又修复的内部 bug
33
+ - ❌ 不罗列内部重构/清理细节(一句话概括即可)
34
+ - ✅ 修复类条目建议**合并成一条概括**,不逐条展开技术实现
35
+
36
+ ## 注意事项
37
+
38
+ - npm **不允许覆盖已发布版本**(403)。发布后发现说明要改,只能 bump 补丁版本——所以发布前确认说明尤其重要。
39
+ - `release.yml` workflow 只创建 GitHub Release,npm 发布是手动步骤,不要漏。
40
+ - 发布后如发现问题,走补丁版本(`vX.Y.Z+1`),不要尝试覆盖。
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@wenbin_wb/dsh-bridge",
3
- "version": "2.10.0",
3
+ "version": "2.10.1",
4
4
  "description": "手机扫码即可在移动端/公网继续用 DeepSeek Harness,人不在电脑前也能接着干。一键局域网二维码、Cloudflare 公网隧道、自建隧道与微信 / QQ / 飞书 / Telegram Bot(多工作区/会话持久化/媒体/卡片审批/流式输出),无需自己搭公网服务器。",
5
- "releaseNotes": "【v2.10.0 远程锁屏/解锁流程修复】\n• 🔐 修复解锁后无限锁屏循环:访问会话失效(DSH 重启/过期)时自动跳回绿色登录页重新登录;修复锁屏状态下无法解锁(401);修复关闭访问认证后锁屏失效 / 仍要求密码;远程首次进入设置页即显示全屏锁屏;目录选择器解锁不再卡死\n• 🆕 新增「管理保护」独立开关(与访问认证解耦);面板显示 DSH 宿主版本\n• 🧹 统一 adminToken 缓存,清理死代码与重复实现",
5
+ "releaseNotes": "【v2.10.1】\n• 🧹 v2.10.0 代码一致:修正升级提示措辞,与发布说明对齐\n\n【v2.10.0】\n• 🆕 新增「管理保护」独立开关:与访问认证解耦,远程设备管理权限始终受管理保护约束,仅凭管理密码可解锁\n• 🆕 面板版本条新增 DSH 宿主版本显示\n• 🐞 修复远程锁屏/解锁流程多处问题(会话失效后自动回登录页、锁屏可正常解锁、关闭访问认证后锁屏仍生效、首次进入即显示锁屏等)\n• 🧹 内部:统一 adminToken 缓存,清理死代码与重复实现",
6
6
  "type": "module",
7
7
  "main": "lib/index.js",
8
8
  "exports": {