dsh-input-traffic 0.3.1 → 0.4.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 +8 -8
- package/README.en.md +15 -7
- package/README.md +13 -5
- package/dsh.plugin.json +1 -4
- package/lib/client.js +1433 -1433
- package/lib/client.js.map +1 -1
- package/lib/types/client/freeze-button.d.ts +16 -16
- package/lib/types/client/index.d.ts +51 -47
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +117 -117
- package/lib/types/client/index.js.map +1 -1
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
所有重要变更与 bug 修复记录于此。版本遵循语义化版本(`dsh plugin --profile web add dsh-input-traffic` 安装)。
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
### 修复:等待队列尾部按钮被「调整对话宽度」把手抢走点击
|
|
5
|
+
## Unreleased
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
- **根因**:把手位于 `.body`(`position: absolute`、`z-index: 8`),而 composer 座位 `.composerSeat` 是 `z-index: 7` 的层叠上下文;本插件的 `.dock` 原为 `width: 100%`(铺满 composer 栈),比输入卡片宽约 32px,尾部控件因此伸进把手的命中带。作为层叠上下文内的后代,dock 无法用 `z-index` 越出撤销层级,只能从几何上让位。
|
|
11
|
-
- **修复**:`.dock` 收敛到官方 `QueueDock` 同款卡片列——按「两侧 clearance + 两侧 dock inset」从栈宽扣除、上限为 composer 卡片宽减去 dock inners、`margin: 0 auto` 居中、inset 以 `padding` 返还,使面板仍与输入卡片对齐;并额外用 `min()` 叠加顶层 `--dsh-chat-content-width` 上限,让面板右缘距把手内缘稳定留出 24px 安全带(窄栏下该把手宽度为 0,`min()` 自动回落为卡片列宽)。离线 Chrome 几何探针:对齐场景把手到面板间距 24.5px → 48.5px,位移 16px 的错位场景 8.5px → 32.5px,四个按钮 `elementFromPoint` 命中自身。
|
|
12
|
-
- **跨线核对(本线专属)**:0.1.2 宿主几何与 0.1.5 线逐字一致,因此本条为 verbatim 移植而非改写——`dsh-v0.1.2-rc.1` 的 `ConversationRoot.module.css` 中 `.widthHandle` 为 `z-index: 8` / `width: min(40px, calc((100% - var(--dsh-chat-content-width)) / 2 - 24px - 24px))`,`[data-side='right']` 为 `left: calc(50% + var(--dsh-chat-content-width) / 2 + 24px)`,且 `--dsh-composer-card-max-width`(= 内容列宽 + 32px)/`--dsh-composer-side-clearance`(16px)/`--dsh-composer-dock-inset`(8px)取值与 0.1.5 线相同。修复注释中「条带内缘在内容列外 24px」的前提在 0.1.2 成立。
|
|
7
|
+
### 变更:仅支持 DSH 0.1.5+,compat/0.1.5 线(0.2.12-beta.1)
|
|
13
8
|
|
|
14
|
-
|
|
9
|
+
- **`engines.dsh` 收窄为 `>=0.1.5-alpha.1 <0.2.0-0`**:0.1.5 引入 Session V3(surface node)、dockkit Sidebar 重写与 Lexical composer。核查确认本插件依赖的三个 slot 锚点(`conversation.input.dock` / `conversation.input.right` / `settings.general.item`)在 0.1.5 全部保留,`session.updateQueue` / `prompt` / `cancel` remote 无破坏记录,因此**代码零结构改动**,仅收窄支持分段。DSH 0.1.2/0.1.3 用户请留在 main 线(0.2.11-beta.1)。
|
|
10
|
+
- **全部 `@deepseek-ai/*` peer 区间同步收窄**到 `>=0.1.5-alpha.1 <0.2.0-0`(`@deepseek-ai/cordis` 保持 `^4.0.1`)。
|
|
11
|
+
- **类型契约锚点**:`src/types/contracts.d.ts` 的镜像锚点已于 2026-09-11 对照 `dsh-v0.1.5-rc.2` 验证,本版仅把头部 supported segment 更新为 0.1.5 分段。
|
|
12
|
+
- **注释现代化**:`src/client/index.ts` 与 `freeze-button.tsx` 中 0.1.1/0.1.2 双版本历史注释改写为 0.1.5 现状(含 0.1.5 新增相邻 slot `conversation.composer.dock` / `conversation.input.left` 说明)。无行为变更。
|
|
13
|
+
- **README 新增「0.1.5 已知回归」节**(宿主侧,非插件 bug):fork 继承排队 prompt(#6314/#6197)、Lexical composer IME(#6231/#6052)、阻塞等待期间 steer 无法抢占(#6030)、升级后 client combo 缓存陈旧需强制刷新(#5999/#6374)。
|
|
14
|
+
- ⚠️ **无实机验证声明**:本版在无 DSH 0.1.5 实机环境下发布(lint/test/build/assembly 通过 + 文档契约静态核对),`input.for(actx)` / `blocks.set` / dock 注入 props 三个未文档化面待实机回归(清单见仓库 checklist.md)。
|
|
15
15
|
|
|
16
16
|
### 破坏性:仅支持 DSH 0.1.2+,完成 `dsh-client-runtime` 移除替换(0.2.11-beta.1)
|
|
17
17
|
|
package/README.en.md
CHANGED
|
@@ -23,16 +23,24 @@
|
|
|
23
23
|
- [日本語 changelog](./CHANGELOG.ja.md)
|
|
24
24
|
- [한국어 changelog](./CHANGELOG.ko.md)
|
|
25
25
|
|
|
26
|
-
> **▼ DSH version support**
|
|
27
|
-
> | DSH version |
|
|
28
|
-
> | --- | --- | --- |
|
|
29
|
-
> | 0.1.
|
|
30
|
-
> | 0.1.
|
|
26
|
+
> **▼ DSH version support** (compat/0.1.5 line, since 0.2.12-beta.1)
|
|
27
|
+
> | DSH version | Status | Notes |
|
|
28
|
+
> | --- | --- | --- |
|
|
29
|
+
> | ≥ 0.1.5-alpha.1 | ✅ Supported | Verified against 0.1.5-rc.1 / rc.2 (type contracts mirrored from dsh-v0.1.5-rc.2) |
|
|
30
|
+
> | < 0.1.5-alpha.1 | ⚠️ Not supported | Stay on the `main` line (0.2.11-beta.1, DSH 0.1.2+) or older |
|
|
31
31
|
>
|
|
32
|
-
> - **
|
|
33
|
-
> - **Only the two-release intersection is consumed**: the queue strip lives in `conversation.input.dock` (owner `InputZone` in both releases, and `input.draft` exists in both); the freeze button lives in `conversation.input.right`, whose owner was removed in 0.1.2, so the component reads only `useSession` / `sessionId` — both present in `SessionStandardProps` on both releases.
|
|
32
|
+
> - **The boundary is 0.1.5**: Session V3 (surface nodes), the dockkit Sidebar rewrite, and the Lexical composer are 0.1.5's structural changes. All three slot anchors this plugin shadows (`conversation.input.dock` / `conversation.input.right` / `settings.general.item`) survive in 0.1.5, and the service face (`send` / `cancel` / `updateQueue` / `blocks.set`) has no recorded break — so the code needs zero structural changes; only the supported segment is narrowed.
|
|
34
33
|
> - **Queue strip position**: registered with `order: 1000`, so it sorts after every known contributor of the `conversation.input.dock` band (todo 0 / goal 10 / official queue 20 / dsh-perm-gate notice 30) and sits directly on top of the composer card. DSH has no "last" slot semantics, so this is a convention rather than a structural guarantee — a third-party plugin registering a larger `order` could still land below it.
|
|
35
34
|
|
|
35
|
+
> **▼ Known DSH 0.1.5 regressions (host-side, not plugin bugs)**
|
|
36
|
+
>
|
|
37
|
+
> | Issue | Impact on this plugin | Discussion |
|
|
38
|
+
> | --- | --- | --- |
|
|
39
|
+
> | Forking a session inherits the parent's queued-not-yet-run prompts and re-runs them | This is exactly the queue this plugin manages: a forked child may replay the parent's pending queue | [#6314](https://github.com/deepseek-ai/deepseek-harness/discussions/6314) / [#6197](https://github.com/deepseek-ai/deepseek-harness/discussions/6197) |
|
|
40
|
+
> | Lexical composer breaks under IME composition / browser translation | Affects the "pull back into composer" draft back-fill and send paths | [#6231](https://github.com/deepseek-ai/deepseek-harness/discussions/6231) / [#6052](https://github.com/deepseek-ai/deepseek-harness/discussions/6052) |
|
|
41
|
+
> | Steer cannot preempt during a blocking tool wait (up to ~10 min) | The yellow "insert at next turn" tier is inert during that window — users may misattribute it to the plugin | [#6030](https://github.com/deepseek-ai/deepseek-harness/discussions/6030) |
|
|
42
|
+
> | After upgrading an old profile, a stale client combo leaves the whole plugin tree inactive | First troubleshooting step: **hard-refresh the browser (clear cache)** | [#5999](https://github.com/deepseek-ai/deepseek-harness/discussions/5999) / [#6374](https://github.com/deepseek-ai/deepseek-harness/discussions/6374) |
|
|
43
|
+
|
|
36
44
|
> **Compatibility note:** v0.2.9 ships Japanese (`ja`) and Korean (`ko`) dictionaries, but the current official DSH releases expose only `zh` and `en` through `LocaleRuntime`. On stock DSH, selecting `ja` or `ko` fails with `locale "<id>" is not registered`. These languages will work after official DSH adds the locale IDs. Advanced users can use a DSH fork that updates `LOCALE_IDS` (locale-settings.ts) and `LOCALES` labels (client/index.ts), then rebuild. Changing this plugin alone cannot extend DSH's global locale list.
|
|
37
45
|
|
|
38
46
|
> While the agent is busy, "interrupt" and "queue" are no longer mutually exclusive: red interrupts and sends now, yellow inserts at the next turn, green queues until the end — all three coexist. Near DeepSeek peak pricing hours, one click freezes the session; resume later during off-peak pricing.
|
package/README.md
CHANGED
|
@@ -27,17 +27,25 @@
|
|
|
27
27
|
|
|
28
28
|
> **▼ DSH 版本适配**
|
|
29
29
|
>
|
|
30
|
-
>
|
|
30
|
+
> 本插件(compat/0.1.5 线,0.2.12-beta.1 起)**仅支持 DSH v0.1.5+**。
|
|
31
31
|
>
|
|
32
32
|
> | DSH 版本 | 状态 | 说明 |
|
|
33
33
|
> | --- | --- | --- |
|
|
34
|
-
> | ≥ 0.1.
|
|
35
|
-
> | < 0.1.
|
|
34
|
+
> | ≥ 0.1.5-alpha.1 | ✅ 支持 | 面向 0.1.5-rc.1 / rc.2 验证(类型契约已对照 dsh-v0.1.5-rc.2) |
|
|
35
|
+
> | < 0.1.5-alpha.1 | ⚠️ 不支持 | 请留在 main 线(0.2.11-beta.1,支持 0.1.2+)或更早版本 |
|
|
36
36
|
>
|
|
37
|
-
> - **分界点在 0.1.
|
|
38
|
-
> - **旧版为什么不能配新版 DSH**:旧版产物中的 `.d.ts` 仍引用已删除的 `@deepseek-ai/dsh-client-runtime/client`,在 v0.1.2+ 上做类型检查会解析失败。运行时 bundle 虽自包含,仍请一律升级到本版本。
|
|
37
|
+
> - **分界点在 0.1.5**:Session V3(surface node)、dockkit Sidebar 重写、Lexical composer 是 0.1.5 的结构性变更。本插件的三个 slot 锚点(`conversation.input.dock` / `conversation.input.right` / `settings.general.item`)在 0.1.5 全部保留,服务面(`send` / `cancel` / `updateQueue` / `blocks.set`)无破坏记录,因此代码零结构改动,仅收窄支持分段。
|
|
39
38
|
> - **队列条位置**:注册 `order: 1000`,排在 `conversation.input.dock` 带内所有已知条目(todo 0 / goal 10 / 官方 queue 20 / dsh-perm-gate 提示 30)之后,紧贴输入卡片。DSH 没有 "last" 语义,这是约定而非结构性保证——第三方插件若注册更大的 `order` 仍可能插到它下面。
|
|
40
39
|
|
|
40
|
+
> **▼ DSH 0.1.5 已知回归(宿主侧,非本插件 bug)**
|
|
41
|
+
>
|
|
42
|
+
> | 问题 | 对本插件的影响 | 讨论 |
|
|
43
|
+
> | --- | --- | --- |
|
|
44
|
+
> | fork 会话继承父会话「已入队未执行」的 prompt 并自动重跑 | 正是本插件管理的等待队列:fork 出的子会话可能重放父会话排队中的消息 | [#6314](https://github.com/deepseek-ai/deepseek-harness/discussions/6314) / [#6197](https://github.com/deepseek-ai/deepseek-harness/discussions/6197) |
|
|
45
|
+
> | composer 迁移 Lexical 后 IME 组合期 Enter 被当换行、浏览器翻译插件打崩输入框 | 影响「拉回编辑器回填草稿」与发送路径 | [#6231](https://github.com/deepseek-ai/deepseek-harness/discussions/6231) / [#6052](https://github.com/deepseek-ai/deepseek-harness/discussions/6052) |
|
|
46
|
+
> | 阻塞式工具等待期间 steer 无法抢占(最长约 10 分钟) | 黄色「下一轮插入」档位在该窗口不生效,用户可能误以为是插件问题 | [#6030](https://github.com/deepseek-ai/deepseek-harness/discussions/6030) |
|
|
47
|
+
> | 升级旧 profile 后 client combo 缓存陈旧,插件树整体不激活 | 排障第一步:**强制刷新浏览器(清缓存)**再排查 | [#5999](https://github.com/deepseek-ai/deepseek-harness/discussions/5999) / [#6374](https://github.com/deepseek-ai/deepseek-harness/discussions/6374) |
|
|
48
|
+
|
|
41
49
|
> **兼容性说明:** v0.2.9 已包含日语(`ja`)和韩语(`ko`)字典,但当前官方 DSH 只通过 `LocaleRuntime` 提供 `zh` 和 `en`。在原版 DSH 中选择 `ja` 或 `ko` 会失败,并提示 `locale "<id>" is not registered`。需要等待官方 DSH 增加对应 locale ID 后才能正常使用。高级用户可以维护 DSH fork,在 `packages/client/locale/src/locale-settings.ts` 更新 `LOCALE_IDS`,在 `packages/client/locale/src/client/index.ts` 更新 `LOCALES` 标签,并补齐核心字典和测试,然后重新构建并运行 fork 版本。仅修改本插件无法扩展 DSH 的全局 locale 列表。
|
|
42
50
|
|
|
43
51
|
> 智能体忙碌时不再只有"打断"或"排队"二选一:红色打断立即输入、黄色下一轮插入、绿色排队到最后,三档并存;邻近 DeepSeek 高峰收费时段可一键冻结会话,错峰再恢复继续。
|
package/dsh.plugin.json
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "dsh-external/dsh-input-traffic",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.12-beta.1",
|
|
4
4
|
"main": "./lib/index.js",
|
|
5
5
|
"description": "Busy-time input queue: three-tier planning, drag-to-reorder, interject/interrupt, batch clear, session freeze.",
|
|
6
|
-
"engines": {
|
|
7
|
-
"dsh": ">=0.1.2-alpha.1 <0.2.0-0"
|
|
8
|
-
},
|
|
9
6
|
"contributes": {
|
|
10
7
|
"tools": [],
|
|
11
8
|
"skills": []
|