dsh-connect-trae 4.6.7 → 4.6.9

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
@@ -1,5 +1,94 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.6.9 (2026-10-30)
4
+
5
+ > **三家插件的积分读数现已统一在 `conversation.input.right`(模型选择器左边)。**
6
+ > 4.6.8 只迁了 trae 一家,另两家当时仍在左侧——现在 workbuddy 5.15.1 与
7
+ > qoder 1.16.2 已同步,**位置分叉的中间状态结束**。
8
+
9
+ ### 文档
10
+
11
+ - **更正 4.6.8 里那句已过时的说明**:4.6.8 发布时写的是「本版只改 trae 一家……
12
+ 另两家仍在左侧。这是已知且有意的中间状态;同步改动待单独发布」。现在同步
13
+ 已完成,那句「分叉」不再成立。
14
+ - **为什么不直接改 4.6.8 的 CHANGELOG**:`CHANGELOG.md` 是随包文件,已发布的
15
+ tag 是不可变的历史锚点;改它会让 `verify:release` 对 v4.6.8 正确地报「tag
16
+ 之后改动了发布内容」。更正随新版本发布,这是本仓库既有的做法。
17
+
18
+ ### 同步结果
19
+
20
+ | 插件 | 版本 | 座位 |
21
+ | --- | --- | --- |
22
+ | `dsh-connect-trae` | 4.6.8 | `conversation.input.right` |
23
+ | `dsh-connect-workbuddy` | 5.15.1 | `conversation.input.right` |
24
+ | `@dmh2002/dsh-connect-qoder` | 1.16.2 | `conversation.input.right` |
25
+
26
+ - 三个发布包内的 `lib/client.js` 均已核对:`conversation.input.right` 出现,
27
+ `conversation.input.left` 零出现。
28
+ - 两个姊妹仓库各自补了一条**真正的座位断言**(此前都没有):
29
+ workbuddy 补的是「`inject()` 的座位名与 `register({ name })` 必须相等」
30
+ (只改后者时原守卫全绿,而 `name` 才是注册表实际索引的字段);
31
+ qoder 补的是「`input.right#…` 在册,且 `input.left#` 前缀不存在」
32
+ (此前该文件完全没有座位断言)。
33
+
34
+ ### 测试
35
+
36
+ - 本版仅更正文档,**插件代码零改动**。
37
+ - 全仓 **1224** 例通过(96 文件),双 tsconfig 类型检查通过。
38
+
39
+ ## 4.6.8 (2026-10-30)
40
+
41
+ > **积分读数从「权限切换器旁边」挪到「模型选择器左边」。** 两者原本相隔 8px 且都是
42
+ > 可点元素——想去点「完全权限」,结果点到读数、弹出积分浮层。读数不是操作按钮,
43
+ > 紧贴操作按钮只会制造误触。宿主的 `conversation.input.right` 正是渲染在模型选择器
44
+ > 之前的座位,迁过去即可,宿主无需改动。
45
+
46
+ ### 变更
47
+
48
+ - **积分读数改挂 `conversation.input.right`**(#71 第二条建议)。
49
+ - **动机**:`conversation.input.left` 渲染在 `div.tools` 的**最末尾**,紧挨
50
+ `div.modes` 里的权限选择器,间距只有 8px。两个都是可点元素,误触后弹出的是
51
+ 积分浮层——一个纯读数被当成了操作目标。
52
+ - **新位置**:宿主把 `conversation.input.right` 渲染在 `div.trailing` 的
53
+ `standardControls` 内、`conversation.input.model`(模型选择器)**之前**,
54
+ 引用 `dsh-client-ui-conversation` 的 `InputBar` 结构:
55
+ `standardControls: [ renderSlot("conversation.input.right"), renderSlot("conversation.input.model") ]`。
56
+ 迁过去后与权限选择器之间隔开整段空白。
57
+ - **宿主不需要改**:`conversation.input.right` 早已是 `kind: list` / `scope: session`
58
+ 的现成座位。
59
+ - **老 profile 无需迁移**:`creditPosition` 的两个取值(`composer` / `stats`)、
60
+ 设置名、`order: 4` 全部不变。`composer` 的含义是「带模型选择器的那一行」,
61
+ 而 `input.right` 渲染的正是那一行——所以已保存的设置照旧生效。
62
+ - **「输入框下方」那一档不受影响**:`stats` 仍挂 `conversation.composer.dock`,
63
+ 未改动。
64
+ - **文案不改(重要,且与 issue 的建议相反)**:设置里的 `row.creditPositionComposer`
65
+ 值是「输入框工具栏」,hint 写的是「与模型选择同一行」——描述的是**整行**,
66
+ 不是行内某个位置。迁移后读数仍在「与模型选择同一行」,文案依然准确。
67
+ 这一条是核对原文后确认的,不是想当然。
68
+
69
+ ### 说明:本版只改 trae 一家
70
+
71
+ `dsh-connect-workbuddy` 与 `dsh-connect-qoder` 目前仍注册在
72
+ `conversation.input.left`。三家同步是 issue #71 的第三条建议,但本版刻意只做
73
+ trae 一家,原因:
74
+
75
+ - 先在单仓验证视觉效果与挤占情况,回退成本最低(一家的包 vs 三家的包);
76
+ - 那两个仓库当时工作树不干净(workbuddy 有未提交改动、qoder 有 `.tmp-restore/`),
77
+ 在其上改位置会让问题归因变难。
78
+
79
+ **因此本版发布后,同一台机器上三个插件的读数位置是分叉的**——trae 在右侧,
80
+ 另两家仍在左侧。这是已知且有意的中间状态;同步改动待单独发布。
81
+
82
+ ### 测试
83
+
84
+ - `tests/client-activation.spec.tsx` 的座位名单断言与座位过滤条件同步改为
85
+ `conversation.input.right`。
86
+ - **变异验证**:把注册改回 `conversation.input.left`,该用例立刻转红
87
+ (完整名单 `toEqual` 不等),证明守卫真的锁住了座位。
88
+ - 全仓 **1224** 例通过(96 文件),双 tsconfig 类型检查通过。
89
+ - 实测:构建后宿主进程存活(无 `DEVELOPMENT.md` 记录的渲染进程崩溃),
90
+ `lib/client.js` 中只剩一处座位注册且指向 `conversation.input.right`。
91
+
3
92
  ## 4.6.7 (2026-10-30)
4
93
 
5
94
  > **「最早到期:23:59」是明天晚上,不是今晚。** 输入框积分面板用一个只输出时分的
package/lib/client.js CHANGED
@@ -6278,7 +6278,8 @@ window.__ModuleLoader__.load({
6278
6278
  //#endregion
6279
6279
  //#region src/client/ComposerPoints.tsx
6280
6280
  /**
6281
- * Credit readout for the composer tool row (`conversation.input.left`).
6281
+ * Credit readout for the composer row (`conversation.input.right`, rendered
6282
+ * immediately before the model picker).
6282
6283
  *
6283
6284
  * Shows the bound CN account's general credit balance, but ONLY while the
6284
6285
  * session's selected model belongs to this plugin. That condition is the whole
@@ -8093,8 +8094,8 @@ window.__ModuleLoader__.load({
8093
8094
  registerCard("plugins.bundle.config", "dsh-connect-trae");
8094
8095
  registerCard("plugins.row.config", "dsh-connect-trae#dsh-connect-trae");
8095
8096
  /**
8096
- * Credit readout in the composer tool row (`conversation.input.left`, a
8097
- * session-scope list slot).
8097
+ * Credit readout in the composer row (`conversation.input.right`, a
8098
+ * session-scope list slot rendered immediately before the model picker).
8098
8099
  *
8099
8100
  * Provider-scoped on purpose: it renders only while the session's selected
8100
8101
  * model belongs to this plugin. That is what keeps two connector plugins
@@ -8135,7 +8136,7 @@ window.__ModuleLoader__.load({
8135
8136
  console.error(`[dsh-connect-trae] points slot "${slotName}" failed to register (host provider unaffected):`, error);
8136
8137
  }
8137
8138
  };
8138
- registerPointsSlot("conversation.input.left", "dsh-connect-trae-composer-points", 4, "composer");
8139
+ registerPointsSlot("conversation.input.right", "dsh-connect-trae-composer-points", 4, "composer");
8139
8140
  registerPointsSlot("conversation.composer.dock", "dsh-connect-trae-stats-points", 10, "stats");
8140
8141
  /**
8141
8142
  * The upstream's activity badge in the HOST's model picker (ported from the
package/lib/index.d.ts CHANGED
@@ -1236,7 +1236,8 @@ declare function nextRegionEnabled(value: unknown, panel: TraePanel, enabled: bo
1236
1236
  /**
1237
1237
  * The two seats this region's credit readout can occupy.
1238
1238
  *
1239
- * `composer` is the composer tool row (`conversation.input.left`); `stats` is
1239
+ * `composer` is the composer row (`conversation.input.right`, rendered just before
1240
+ * the model picker); `stats` is
1240
1241
  * the ambient dock below the composer card (`conversation.composer.dock`),
1241
1242
  * beside the shell's own round/step/token pills.
1242
1243
  *
@@ -4569,7 +4570,7 @@ interface TraeRegionState {
4569
4570
  *
4570
4571
  * Two seats, because the first one is not always available:
4571
4572
  *
4572
- * - `composer` — the composer tool row (`conversation.input.left`), shared
4573
+ * - `composer` — the composer row (`conversation.input.right`), shared
4573
4574
  * with the shell's own controls. It is the closer, more glanceable seat,
4574
4575
  * and it is the default so nothing moves for anyone who does not choose.
4575
4576
  * - `stats` — the ambient dock below the composer card
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "dsh-connect-trae",
3
3
  "displayName": "DSH Connect Trae",
4
4
  "description": "把本机登录的 Trae 模型接入 DeepSeek Harness:国内版与国际版双供应商并行,提供用量/积分概览与每日签到领取。",
5
- "version": "4.6.7",
5
+ "version": "4.6.9",
6
6
  "author": "dingminhua",
7
7
  "copyright": "Copyright (c) 2026 LaoDing",
8
8
  "license": "MIT",