dsh-composer-ux 0.28.1 → 0.29.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,31 @@
2
2
 
3
3
  本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
4
4
 
5
+ ## [0.29.0] — 2026-10-29(侧边栏**底部区**也能收:整块收成一行「账号与用量」)
6
+
7
+ 用户 2026-10-29(截图圈住左下角「今日消耗金额」卡片 + 下面那行账号):
8
+ 「这个位置的这些按钮也让它能收缩起来,兼容所有在这个部位的按钮」。
9
+ 追问两轮定下:**整个底部区一起收**(插件卡片 + 官方账号/设置行),形态是**一行细条**、点一下展开。
10
+
11
+ **为什么"整块藏"才是最兼容的做法**
12
+
13
+ 这个位置是**插槽拼出来的**:宿主在 `sidebar.footer.action` 与 `sidebar.settings` 两个槽里渲染内容,
14
+ 任何插件都能往里加东西(`@kenz1117/dsh-ui-usage-billing` 的用量卡片就走前一个槽)。这些内容的
15
+ 结构、类名、数量都不可预知,所以:
16
+
17
+ - 我们**不碰任何一个子节点**(不标属性、不改样式、不改文字);
18
+ - 只在外层容器上挂 `data-ux-footer-fold="folded"`,由一条 CSS 收起整块 —— 展开时一切原样,
19
+ 插件自己的按钮、卡片、弹层、事件监听全都没被动过。
20
+
21
+ **怎么找到那个容器**(不认哈希类名):宿主结构是 `aside > [nav, regionArea, footArea]`,
22
+ 所以 **nav 的父节点就是侧边栏根,根的最后一个元素子节点就是 `footArea`**。找不到 nav 时退一步:
23
+ 从账号菜单按钮往上退两层(`footArea > settingsArea > 账号按钮`),只求不崩、不误收整只侧边栏。
24
+
25
+ **设置位置**:输入体验 →「设置面板」卡 →「侧边栏」组 →「底部区」开关(默认**收起**)。
26
+
27
+ **测试**:新增 `test/sidebar-footer.mjs`(18 条:结构定位、整块藏/显、**不碰第三方节点**、幂等、找不到时不介入);
28
+ 变异新增 SZ / TA / TB(认错容器 / 样式丢了 / 细条重复插)。
29
+
5
30
  ## [0.28.1] — 2026-10-29(兼容「往这一组里放按钮」的其它插件)
6
31
 
7
32
  用户 2026-10-29(截图圈住侧边栏那一行图标):「如果有其他插件在这里放按钮会怎么样,需要兼容所有往这里放按钮的插件」。
package/README.md CHANGED
@@ -132,6 +132,16 @@ dsh plugin --profile web add <你克隆或解压出来的目录>
132
132
  所以跟着一起折叠;而**直接往 DOM 里塞**的按钮/包装层**一个字都不改**——收成一条时它们原地留着、
133
133
  照样能点(这时只藏面板行,不藏整只 `nav`)。这条有 9 条测试盯着(`test/sidebar-nav.mjs` 第 6 节)。
134
134
 
135
+ ### 侧边栏底部区(0.29.0)
136
+
137
+ 左下角那一块(账号行 + 插件塞在这里的卡片,比如「今日消耗金额」)也能收:**整块收成一行
138
+ 「账号与用量 ▾」**,点一下展开。设置 → 输入体验 →「设置面板」卡 →「侧边栏」组 →「底部区」(默认收起)。
139
+
140
+ 做法是**整块藏/显**:只在最外层容器挂一个属性,**不碰里面任何一个节点** —— 所以别的插件往这个插槽里
141
+ 放什么都不会被我们改坏(用量卡片就是 `@kenz1117/dsh-ui-usage-billing` 放在 `sidebar.footer.action` 里的)。
142
+ 容器靠结构定位:nav 的父节点是侧边栏根,根的最后一个子节点就是底部区;找不到 nav 时从账号按钮往上退两层。
143
+ 这条有 18 条测试盯着(`test/sidebar-footer.mjs`)。
144
+
135
145
  ## 快捷指令与提示词优化
136
146
 
137
147
  输入框工具行里、「展开」按钮的左侧有一个同款胶囊按钮「快捷指令」(槽位 `conversation.input.right`,order 89 < 官方「展开」的 90)。点开展开面板:
@@ -669,9 +679,9 @@ node build.mjs # 产出 lib/index.js + lib/client.js
669
679
  # ⚠️ 宿主半会**内联** schemastery / cosmokit:
670
680
  # 优先用 DSH 检出里的 vendor 副本,检出不在时退到 node_modules
671
681
  # 里同版本的 npm 包(两者逐字节相同)——CI 上走的就是退路
672
- npm test # 29 个套件;当前 2603 passed, 0 failed(2026-10-28 实测;CI 三平台同样全绿)
682
+ npm test # 30 个套件;当前 2621 passed, 0 failed(2026-10-28 实测;CI 三平台同样全绿)
673
683
  # 走 scripts/run-tests.mjs:顺带把"多少套件/多少条"记进 test/.last-run.json
674
- npm run test:mutations # 手动跑:变异测试,证明那套护栏真的在咬人(200 条,须单独跑)
684
+ npm run test:mutations # 手动跑:变异测试,证明那套护栏真的在咬人(203 条,须单独跑)
675
685
  # 同样记录结果,供下面的文档门禁核对
676
686
  npm run gates # 发版门禁三条一起跑:tag 指向 / 包内容 / 文档数字
677
687
  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.28.1",
6
+ "version": "0.29.0",
7
7
  "license": "MIT",
8
8
  "facets": {
9
9
  "host": {