dsh-composer-ux 0.26.0 → 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 +78 -0
- package/README.md +2 -2
- package/dsh-plugin.json +1 -1
- package/lib/client.js +1388 -1011
- package/lib/client.js.map +4 -4
- package/lib/index.js +181 -7
- package/lib/index.js.map +4 -4
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,84 @@
|
|
|
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
|
+
|
|
40
|
+
## [0.26.1] — 2026-10-28(升到 DSH 0.2.2-alpha.2 实测:三处真机 bug)
|
|
41
|
+
|
|
42
|
+
用户 2026-10-28:「更新网页端到最新版,并在上面测试插件稳定性修bug」。按他选的 **B**
|
|
43
|
+
(`dsh-v0.2.2-alpha.2`)把源码 checkout 升上去、起在备用端口 3977(不动桌面端 6913),
|
|
44
|
+
在**隔离 profile**(`ux-alpha`,只装本插件)上把功能过了一遍。
|
|
45
|
+
|
|
46
|
+
**三处真机 bug(都不是"看起来坏了",而是"看起来正常、数字是错的")**
|
|
47
|
+
|
|
48
|
+
1. **会话 id 形状变了 ⇒ 所有会话都显示 ¥0**(最严重)。
|
|
49
|
+
0.2.2-alpha.2 起 `sessionQuery.readSession()` 只认 `session-<uuid>` 全写;客户端半传下来的是
|
|
50
|
+
裸 uuid(0.2.1 及以前两种写法都不认错)。实测同一个会话:裸 uuid ⇒
|
|
51
|
+
`session "…" not found`、`session-…` ⇒ **4036 条事件 / 4 条 route / 2 个子代理**。
|
|
52
|
+
修法:宿主半两种写法都试,并把成功的那种**记住**(下次不再多问一次)。
|
|
53
|
+
2. **读日志失败被静默吞掉**。这条路由过去 `catch { return undefined }`,于是失败 ⇒ 全 0 的账 ⇒
|
|
54
|
+
屏幕上是一个「¥0」,看起来像"这个会话没花钱"。现在宿主半回 `readError`,浮层写明
|
|
55
|
+
「读不到会话日志:…(金额按 0 计)」。
|
|
56
|
+
3. **自检卡永远写「DSH (拿不到)」**。不是拿不到,是那一行**从来没去读**(写死空串)。
|
|
57
|
+
新增 `src/runtime-version.ts`:按官方 `app-boot` 的判据读它自己的 `package.json`
|
|
58
|
+
(入口解析 → profiles 扫描 → 都没有就空串,绝不猜版本号),实测读到 `0.2.2-alpha.2`。
|
|
59
|
+
|
|
60
|
+
**另外两件与新版宿主有关的事(不是代码 bug,但会让人以为插件坏了)**
|
|
61
|
+
|
|
62
|
+
- **持久终端工具在 alpha 上被宿主禁用**:`@deepseek-ai/dsh-tool-terminal` 的版本要求是
|
|
63
|
+
**精确**的(`0.2.1-rc.4` 只认 rc.4 运行时),而 npm 的 semver 规则让我们的依赖区间
|
|
64
|
+
(`>=0.2.1-alpha.1 <0.3.0`)解析不到 `0.2.2-alpha.2`。修法是**在 profile 里装匹配版本**:
|
|
65
|
+
`dsh plugin --profile <名字> add @deepseek-ai/dsh-tool-terminal@0.2.2-alpha.2`(装完自检卡那一行变
|
|
66
|
+
`ok`,模型拿回那 6 个 `terminal_*` 工具)。这轮已在 `ux-alpha` 上验证。
|
|
67
|
+
- **dsh-purge 会改源码仓**(用户问「装在客户端为什么影响网页端」):它的补丁按**文件**解析,
|
|
68
|
+
`web-app` 这类键在找不到已装包时会回退到 `<repo>/packages/bundle/...`,所以客户端点「应用」
|
|
69
|
+
会把共享 checkout 里 web 的那份也改掉。升级前已按用户意见**丢弃**这 10 个补丁
|
|
70
|
+
(桌面运行时那份独立存在,不受影响)。
|
|
71
|
+
|
|
72
|
+
**验证(都在 0.2.2-alpha.2 真机上跑过)**
|
|
73
|
+
|
|
74
|
+
- 市场/宿主:插件加载、46 个设置字段全在 schema、12 张卡渲染、`?` 说明、开关写入(`sections: 快捷指令、键位`);
|
|
75
|
+
- 金额:胶囊 `$1.67 订阅内`、浮层两套口径并列(额度 $1.67 / 折算 ¥11.52 / 占月额度 2.09%)、
|
|
76
|
+
额度窗口 5h 1% · 本周 5% · 本月 55%(官方接口实时);
|
|
77
|
+
- 额度路由:`GET /composer-ux/quota` 首帧 `pending`、后台刷新后拿到真实窗口;
|
|
78
|
+
- 控制台:0 error / 0 warning。
|
|
79
|
+
|
|
80
|
+
**测试**:34 套件 **2858 条** 0 失败(新增 §6 会话 id 形状 4 条 + 运行时版本探测 4 条);
|
|
81
|
+
变异 **229 条全部咬住**(新增 `SP`/`SQ`/`SR`)。
|
|
82
|
+
|
|
5
83
|
## [0.26.0] — 2026-10-27(订阅通道的**额度**口径 + 设置页整体换肤)
|
|
6
84
|
|
|
7
85
|
用户 2026-10-27:「**我总感觉子代理计费还是不准**,你参考一下这个是用什么方式计费的
|
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 #
|
|
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 # 手动跑:变异测试,证明那套护栏真的在咬人(
|
|
740
|
+
npm run test:mutations # 手动跑:变异测试,证明那套护栏真的在咬人(233 条,须单独跑)
|
|
741
741
|
# 同样记录结果,供下面的文档门禁核对
|
|
742
742
|
npm run gates # 发版门禁三条一起跑:tag 指向 / 包内容 / 文档数字
|
|
743
743
|
npm run check:tag # ① tag 名里的版本 == 该 tag 所指提交里的 package.json 版本
|