dsh-composer-ux 0.26.1 → 0.27.0

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
@@ -2,6 +2,41 @@
2
2
 
3
3
  本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
4
4
 
5
+ ## [0.27.0] — 2026-10-28(左侧「全局面板」默认折叠:收成一条 / 只留图标,设置里选)
6
+
7
+ 用户 2026-10-28(截图圈住侧边栏那 5 个入口):「给我的插件添加一个打开后默认折叠这个区域的功能」,
8
+ 追问后选 **A + B 都做、在设置里选**:A = 收成一条「全局面板」,B = 只留图标(悬停出名字)。
9
+
10
+ **做了什么**
11
+
12
+ 1. **一条细行代替那一组**(默认,A):`插件 / 自动化任务 / 上下文洞察 / MCP连接器 / 更多`
13
+ 收成一行「全局面板 ▾」,点一下展开(箭头变 ▴),状态记在磁盘上,下次打开沿用。
14
+ 2. **只留图标**(B):那一行只显示图标,悬停出名字(`title`)。图标那一颗靠 `svg` 判定,
15
+ 文字那些逐个 `display:none` —— 不认宿主哈希类名。
16
+ 3. **不折叠**:等价于关掉,宿主原样。
17
+ 4. 设置页 →「输入体验」→「设置面板」卡里多了「侧边栏」一组:形态三档 + 「现在收起」开关。
18
+ **默认就是收起状态**(用户要的"打开后默认折叠"),不用先去设置里点一下。
19
+
20
+ **实现上的三个坑(都撞了真机才看清)**
21
+
22
+ 1. **不能做成宿主设置字段**:客户端那条 `settings/mutate` 必带 `expectedRevision`,而宿主半启动时
23
+ 会自己写设置(请求头清理 / 终端状态回写),revision 一落后就 `settings/conflict`
24
+ (浏览器里抓到的原文:`expected revision 0, now 2`)—— 表现是"点开关没反应、一句提示都没有"。
25
+ 2. **本插件的写会落到 `settings-legacy.yaml`,而界面读的是 patch 层**:老接口
26
+ (`settings.register`)与配置层是两套存储,写进去了也看不见。所以折叠状态改存
27
+ **插件自己的小文件** `$DSH_HOME/composer-ux-nav-fold.json`(与 `quick-prompts.json` 同一套路),
28
+ 读写走 `/composer-ux/nav-fold`(GET/POST,宿主半无条件写,写完广播回客户端)。
29
+ 3. **「更多」那颗的文字不是普通 span**:宿主把它的标签包在带自己样式的 `span.panelTitle` 里,
30
+ 纯 CSS 属性选择器在部分宿主版本上盖不住。所以图标模式逐个元素判定(含 `svg` 的保留,
31
+ 其余 `display:none`),并在关掉时**全部还原**。
32
+
33
+ **顺手修的**
34
+
35
+ - 设置写入失败现在会把**原因**说出来(以前只 console.warn 一句),冲突会自动重试一次。
36
+
37
+ **测试**:新增 `test/sidebar-nav.mjs`(26 条:三档 × 展开/收起的属性映射、找宿主节点、
38
+ 贴上去/撤干净、重复贴不叠加);总 **35 个套件 · 2887 条 · 0 失败**。
39
+
5
40
  ## [0.26.1] — 2026-10-28(升到 DSH 0.2.2-alpha.2 实测:三处真机 bug)
6
41
 
7
42
  用户 2026-10-28:「更新网页端到最新版,并在上面测试插件稳定性修bug」。按他选的 **B**
package/README.md CHANGED
@@ -735,9 +735,9 @@ node build.mjs # 产出 lib/index.js + lib/client.js
735
735
  # ⚠️ 宿主半会**内联** schemastery / cosmokit:
736
736
  # 优先用 DSH 检出里的 vendor 副本,检出不在时退到 node_modules
737
737
  # 里同版本的 npm 包(两者逐字节相同)——CI 上走的就是退路
738
- npm test # 34 个套件;当前 2858 passed, 0 failed(2026-10-28 实测;CI 三平台同样全绿)
738
+ npm test # 35 个套件;当前 2889 passed, 0 failed(2026-10-28 实测;CI 三平台同样全绿)
739
739
  # 走 scripts/run-tests.mjs:顺带把"多少套件/多少条"记进 test/.last-run.json
740
- npm run test:mutations # 手动跑:变异测试,证明那套护栏真的在咬人(229 条,须单独跑)
740
+ npm run test:mutations # 手动跑:变异测试,证明那套护栏真的在咬人(233 条,须单独跑)
741
741
  # 同样记录结果,供下面的文档门禁核对
742
742
  npm run gates # 发版门禁三条一起跑:tag 指向 / 包内容 / 文档数字
743
743
  npm run check:tag # ① tag 名里的版本 == 该 tag 所指提交里的 package.json 版本
package/dsh-plugin.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "manifestVersion": "0.15",
4
4
  "id": "dsh-composer-ux.input-experience",
5
5
  "name": "dsh-composer-ux",
6
- "version": "0.26.1",
6
+ "version": "0.27.0",
7
7
  "license": "MIT",
8
8
  "facets": {
9
9
  "host": {