dsh-ssh-tui 0.8.4-rc.1 → 0.8.4

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
@@ -10,9 +10,61 @@
10
10
 
11
11
  ---
12
12
 
13
+ ## 0.8.4 — 2026-10-24(稳定版)
14
+
15
+ 发版说明:[`docs/release-notes-0.8.4.md`](docs/release-notes-0.8.4.md)。
16
+
17
+ **`0.8.4-rc.2` 观察期结束后的稳定转正。** 产品代码与 RC.2 相同;稳定版只把包版本改为
18
+ `0.8.4` 并更新发布材料。RC.2 已作为候选发布到 npm `next`,正式版发布后 `latest` 与 `next`
19
+ 都指向 `0.8.4`。兼容范围未变;本线不包含 `main` 上的 W-4 Completion 或 W-5 Search Screen。
20
+ RC.2 的 tarball 哈希、测试和人工验收收据保留为历史,不作为 `0.8.4` 稳定 tarball 的哈希。
21
+
22
+ ### Fixed
23
+
24
+ - **FI1 — 首次安装的 Agent Plane 自动补齐**:首次向导保存后、以及旧/不完整 profile 启动时,
25
+ 只补缺失的工具行;写入前保留备份,不覆盖已存在的行,重复执行保持幂等。若行已写入但当前进程
26
+ 尚未组合它们,会明确提示重启,而不是把“已保存”误报成“已生效”。
27
+ - **WIN-CI1.H3 — RTT 探针的 drain 不再吞掉按住的 Esc**:liveness/RTT 探针在输入过滤器仍扣着
28
+ 可能是光标应答开头的单字节时,不再 `reset()` 丢弃它,而是重新安排释放;若后续应答到达则合并为
29
+ 应答,若没有到达则按原本的 hold 规则交还为键入。切开的应答仍不会被当成 Esc。
30
+ - **APPR.BP1 — AI Reviewer 传递真实授权 Session**:Reviewer 的 `GenerateOptions` 增加授权 Agent 的
31
+ `sessionId`;同一 Session 的复核共享身份,不同 Session / 子 Agent 不共享。Reviewer prompt、
32
+ 400-token budget、15 秒 deadline、reasoning effort、授权策略、缓存与 fail-closed 均未变。
33
+ - **DOC.R1 — `/doctor` 路由清单纳入已注册 Adapter**:`doctorRouting()` 合并
34
+ `llm-pi-ai.providers` 与 `ctx.llm.listProviders()`,已注册的 `deepseek-official` 不再被误报为
35
+ “不在已配置路由里”;第三方 Provider 缺失、非法模型和子代理不同族仍会告警。注册/配置只表示
36
+ 路由存在,不表示网络或 API 调用成功;官方模型目录的实时校验仍为 **OPEN**。
37
+
38
+ ### Docs
39
+
40
+ - 修正稳定候选说明:不再把 0.8.4 写成 RC.1 的无变化转正,也不再复用 RC.1 的测试数、tarball
41
+ 文件数、哈希或升级冒烟收据。RC.2 必须生成并绑定自己的收据。
42
+
43
+
44
+ ## 0.8.4-rc.2 — Input, First-install & Diagnostics Fix Candidate
45
+
46
+ 发版说明:[`docs/release-notes-0.8.4-rc.2.md`](docs/release-notes-0.8.4-rc.2.md)。
47
+
48
+ **相对于已发布的 0.8.4-rc.1,本候选包含 FI1、WIN-CI1.H3、APPR.BP1、DOC.R1 四项维护修复。**
49
+ 候选使用与 `release/0.8.4` 相同的产品源代码,仅在隔离分支更新版本号、锁文件和材料。
50
+ 没有合入 W-4/W-5,也没有纳入 PR #8 的 InputReader 调整或 PR #9 的诊断插桩。
51
+
52
+ ### Fixed
53
+
54
+ - **首次安装代理平面**:只补齐缺失的 `tool-ask-user` / `present` 组合行,先备份、提示重启,冷启动与重复运行幂等。
55
+ - **RTT/存活探测丢 Esc**:`TerminalInputPump.drain()` 不再通过 `filter.reset()` 静默丢弃已暂存的输入。
56
+ - **审批 Reviewer Session**:直接模型调用携带请求授权的 Agent Session ID,保留 400-token、15 秒、fail-closed 等现行限制。
57
+ - **官方 Provider 诊断误报**:`/doctor` 将已注册 Adapter 与 `llm-pi-ai.providers` 配置合并去重;网络可用性与官方模型目录校验不在本轮承诺内。
58
+
59
+ ### Release Gate
60
+
61
+ - `0.8.4-rc.2` 只允许在独立发布授权后使用 npm `next`,不得改动 `latest`。
62
+ - 必须在候选精确 SHA 上通过四条 CI;真实 npm tarball、从 `0.8.4-rc.1` 和 `0.8.3` 的升级冒烟、Windows Terminal/conhost 人工 H-1~H-11 均须重新取证。
63
+ - 本 CHANGELOG 条目不是 tag、GitHub Release 或 npm 发布回执;最终 Gate 未通过前不得发布。
64
+
13
65
  ## 0.8.4-rc.1 — 2026-10-17(候选版,只上 `next`)
14
66
 
15
- 发版说明:[`docs/release-notes-0.8.4-rc.1.md`](release-notes-0.8.4-rc.1.md)。
67
+ 发版说明:[`docs/release-notes-0.8.4-rc.1.md`](docs/release-notes-0.8.4-rc.1.md)。
16
68
  **输入归属 + 发布安全门的候选版。** 与 0.8.3 相比**有 runtime 行为变化**(下列 Fixed / Changed);
17
69
  发布准备这一轮只为兼容加了一处垫片(见 Changed 的第三条),没有别的 runtime 改动。`latest` 仍为 `0.8.3`。
18
70
 
@@ -80,7 +132,7 @@
80
132
 
81
133
  ## 0.8.3 — 2026-10-13(`latest` + `next`)
82
134
 
83
- 发版说明:[`docs/release-notes-0.8.3.md`](release-notes-0.8.3.md)。
135
+ 发版说明:[`docs/release-notes-0.8.3.md`](docs/release-notes-0.8.3.md)。
84
136
  **紧急修复**:三个缺陷都是 0.8.2 把首启向导改成 Screen 时引入的,全部在"首次安装 / `/setup`"这条路上。
85
137
 
86
138
  ### Fixed
@@ -104,8 +156,8 @@
104
156
 
105
157
  ## 0.8.2 — 2026-10-05(`latest` + `next`)
106
158
 
107
- 发版说明:[`docs/release-notes-0.8.2.md`](release-notes-0.8.2.md);候选版说明保留在
108
- [`docs/release-notes-0.8.2-rc.1.md`](release-notes-0.8.2-rc.1.md)。
159
+ 发版说明:[`docs/release-notes-0.8.2.md`](docs/release-notes-0.8.2.md);候选版说明保留在
160
+ [`docs/release-notes-0.8.2-rc.1.md`](docs/release-notes-0.8.2-rc.1.md)。
109
161
  本版由 **0.8.2-rc.1**(2026-10-04,只上 `next`)沉淀一周后转正,**内容与候选版相同**,
110
162
  下列变更即候选版以来累积的全部变更。
111
163
 
@@ -113,8 +165,8 @@
113
165
  > have not changed. —— `dsh-ssh-tui` 现在以 DSH Relay 为产品名展示;包名与安装命令没有变化。
114
166
 
115
167
  B2("what deserves to exist")的六个阶段 B2.1 – B2.6 已完成并通过最终审计,本节汇总用户能看到的
116
- 部分。详细证据与冻结记录见 [`docs/checkpoints.md`](checkpoints.md) 与
117
- [`docs/decisions/b2-architecture-decisions.md`](decisions/b2-architecture-decisions.md) §20。
168
+ 部分。详细证据与冻结记录见 [`docs/checkpoints.md`](docs/checkpoints.md) 与
169
+ [`docs/decisions/b2-architecture-decisions.md`](docs/decisions/b2-architecture-decisions.md) §20。
118
170
 
119
171
  ### Added
120
172
 
@@ -134,7 +186,7 @@ B2("what deserves to exist")的六个阶段 B2.1 – B2.6 已完成并通过
134
186
  ### Changed
135
187
 
136
188
  - **反馈分流**:控制面的确认去页脚(echo,最低优先级,直到下一次输入),警告/失败去身份行(notice),
137
- 只有会改变历史的事实才进转写([`docs/checkpoints.md`](checkpoints.md) B2.3b)。
189
+ 只有会改变历史的事实才进转写([`docs/checkpoints.md`](docs/checkpoints.md) B2.3b)。
138
190
  - **`/copy` 语法**:`/copy` 或 `/copy reply` 复制模型最后一条回复(默认);`/copy highlight` 复制焦点卡片;
139
191
  `/copy error` 复制最新的错误/诊断行。复制键保留"取不到焦点就退回回复"的语义。
140
192
  - **工作区在方向键后的停留**:resume 进来不再从窗口中间开始滚动,直接停在最新内容。
@@ -178,9 +230,9 @@ B2("what deserves to exist")的六个阶段 B2.1 – B2.6 已完成并通过
178
230
 
179
231
  ### Docs
180
232
 
181
- - [`docs/release.md`](release.md) 新增"发布前人工门槛":Windows 实机清单、fresh-home 首启探针命令、
233
+ - [`docs/release.md`](docs/release.md) 新增"发布前人工门槛":Windows 实机清单、fresh-home 首启探针命令、
182
234
  以及 `npm run freeze` / `npm run bench` 两条发版自检。
183
- - [`docs/decisions/b2-architecture-decisions.md`](decisions/b2-architecture-decisions.md) §20 记录 B2 冻结:
235
+ - [`docs/decisions/b2-architecture-decisions.md`](docs/decisions/b2-architecture-decisions.md) §20 记录 B2 冻结:
184
236
  八条不变量、七条退役路径、以及"表示的分类必须与它包裹的行一致"这条规则。
185
237
 
186
238
  ### Internal
@@ -214,13 +266,13 @@ B2("what deserves to exist")的六个阶段 B2.1 – B2.6 已完成并通过
214
266
  - **0.8.2-rc.1 → 0.8.2 无代码变更**:转正只改版本号与发版材料,包内 `lib/` 与候选版逐字节相同
215
267
  (候选版沉淀期间未收到新的回归报告)。
216
268
  - Windows / ConPTY **实机人工验收已完成**(2026-10-03,维护者逐条走过 12 项清单,结论见
217
- [`docs/checkpoints.md`](checkpoints.md)「Windows 实机轮」):可自动化的部分由 `verify-batch --home
269
+ [`docs/checkpoints.md`](docs/checkpoints.md)「Windows 实机轮」):可自动化的部分由 `verify-batch --home
218
270
  <dir>` 覆盖(12 PASS · 2 SKIP · 0 FAIL),**没有自动化、只能人眼的两目(输入法组合、多行中文粘贴)
219
271
  已确认通过**。两处 `SKIP` 是覆盖边界、不是通过:ConPTY 自己回 `CSI 6n`,"慢链路"与"静默但没断连"
220
272
  这两个形状它扮演不了(这两个形状在 Linux 腿上真跑)。
221
273
  - fresh-home 首启有两条探针覆盖(`scripts/tui-setup-probe.mjs` 断言向导自动出现 + 第二次启动不再出现;
222
274
  `scripts/probe-onboarding.mjs` 供工作区探针识别"这是首启"并 `SKIP:` 而不是误报),命令在
223
- [`docs/release.md`](release.md)。只读 pnpm store 的沙箱建不出 home,那是环境限制,不是覆盖缺口。
275
+ [`docs/release.md`](docs/release.md)。只读 pnpm store 的沙箱建不出 home,那是环境限制,不是覆盖缺口。
224
276
  - ~~`scripts/tui-drop-probe.mjs` 约 1/7 概率因自身的 `/status` 重试竞态误报~~ —— **本版已修**:
225
277
  改为一次请求在飞、按每次请求的输出判定、并按"当前是否真有 Screen"决定关闭,连跑 20 次无失败。
226
278
  - 打包:`npm pack --dry-run` 实测 **243 个文件 / 1.4 MB(tarball)/ 解包 4.2 MB**,CHANGELOG 随包发布;
@@ -230,7 +282,7 @@ B2("what deserves to exist")的六个阶段 B2.1 – B2.6 已完成并通过
230
282
 
231
283
  ## 0.8.1 — 2026-09-30(`latest` + `next`)
232
284
 
233
- 发版说明:[`docs/release-notes-0.8.1.md`](release-notes-0.8.1.md)。
285
+ 发版说明:[`docs/release-notes-0.8.1.md`](docs/release-notes-0.8.1.md)。
234
286
 
235
287
  ### Fixed
236
288
 
@@ -246,5 +298,5 @@ B2("what deserves to exist")的六个阶段 B2.1 – B2.6 已完成并通过
246
298
 
247
299
  ## 0.8.0 — 2026-09-29(`next`,随后提升为 `latest`)
248
300
 
249
- 发版说明:[`docs/release-notes-0.8.0.md`](release-notes-0.8.0.md)。基线切到上游 `0.2.0-rc` 线
301
+ 发版说明:[`docs/release-notes-0.8.0.md`](docs/release-notes-0.8.0.md)。基线切到上游 `0.2.0-rc` 线
250
302
  (桌面版 Harness 的基线),兼容窗口与 CI 腿随之上移。
package/README.en.md CHANGED
@@ -82,11 +82,12 @@ dsh --profile tui
82
82
  Current `dsh` requires `--profile` (`dsh plugin add …` errors without it).
83
83
  Swap `tui` for another profile name.
84
84
 
85
- **Which host line?** `0.8.3` is `latest` (0.8.4-rc.1 is the `next` candidate) and supports the `0.2.0-rc` line (the desktop harness's baseline) as well as `0.2.1-rc.2` (upstream `next`); the `0.1.7` line was dropped in 0.8.4-rc.1 and is refused by the launcher's version check, as is everything older. **0.1.5 and older hosts are no longer supported as of 0.8.0.**
85
+ **Which host line?** `0.8.4` is the stable release promoted from the observed `0.8.4-rc.2` candidate; `0.8.4-rc.1` was the earlier candidate. It supports the `0.2.0-rc` line (the desktop harness's baseline) as well as `0.2.1-rc.2` (upstream `next`). The `0.1.7` line was dropped in 0.8.4-rc.1 and is refused by the launcher's version check, as is everything older. **0.1.5 and older hosts are no longer supported as of 0.8.0.**
86
86
 
87
- **Updates must use `@latest`.** `dsh plugin` forwards the rest of the line to
87
+ **Stable updates must use `@latest`.** `dsh plugin` forwards the rest of the line to
88
88
  pnpm in the profile directory. A bare `add dsh-ssh-tui` keeps the version
89
- already pinned in `pnpm-lock.yaml` (often 0.3.7). Do not put `--profile`
89
+ already pinned in `pnpm-lock.yaml` (often 0.3.7). RC testers should use `@next`
90
+ or an exact `-rc.N` version instead; `@latest` stays on the stable channel. Do not put `--profile`
90
91
  after `add`: `dsh plugin add --profile tui add dsh-ssh-tui` is not valid.
91
92
  Remove with `dsh plugin --profile tui remove dsh-ssh-tui`.
92
93
 
@@ -0,0 +1,72 @@
1
+ # 0.8.4-rc.2 — First-install, Input & Doctor Reliability Candidate
2
+
3
+ > **发布通道:仅 npm `next`,不得触及 `latest`。**
4
+ > 此文档是候选版的发版说明;它本身不表示已经创建 Tag、GitHub Release 或完成 npm 发布。
5
+ > 候选来源:从 `release/0.8.4@127617b99101820ff548f6fa8b61f319b5084d24` 切出的独立发行准备分支。
6
+ >
7
+ > DSH Relay 仍使用 npm 包名 `dsh-ssh-tui`,没有改名、没有存储格式迁移。
8
+
9
+ ## 为什么需要 RC.2
10
+
11
+ `0.8.4-rc.1`(2026-10-17)已经作为 prerelease 发布;它提供 Reader → Router → Owner 输入归属整理,以及首次安装向导、工作区粘贴和发布 tarball 的 CI 门禁。
12
+
13
+ 此后维护分支进行了四项**实际运行时修复**,因此 RC.2 **不是** RC.1 的无变化重打包,不能沿用 RC.1 的字节、哈希、测试或人工验收收据。
14
+
15
+ ## RC.1 之后的修复
16
+
17
+ ### FI1 — First-install Agent Plane Repair
18
+
19
+ 全新安装或旧的不完整 Profile 可能缺少 `tool-ask-user` 与 `present` 的 Agent Plane 组合行。TUI 现在能检测并定向补齐缺失项,写前备份、不覆盖已存在行、重复启动幂等。已写入但本进程尚未组合的工具会明确提示**重启才生效**,不把保存成功误报为运行时就绪。
20
+
21
+ ### WIN-CI1.H3 — RTT Probe 不再丢弃 Esc
22
+
23
+ Launcher 的 `TerminalInputPump.drain()` 原先会把正在等待判别的 ESC 通过 `filter.reset()` 丢弃:用户按下 Esc 后,恰逢 RTT/存活探测,`/view` 选择器可能无法取消。现在保留暂存字节、重新安排释放;完整或分片的光标应答仍由过滤器识别,不以强制转发半截应答换取按键恢复。
24
+
25
+ ### APPR.BP1 — Reviewer 绑定授权 Session
26
+
27
+ AI Reviewer 的直接 `llm.stream()` 调用携带 `request.agent.session.id`,保留同一会话身份、隔离不同 Agent Session 和子代理。Reviewer prompt、400-token 输出预算、15 秒 deadline、`reasoningEffort: off`、授权策略、缓存与 fail-closed 保持原样。未对完整真实线上审批延迟作保证。
28
+
29
+ ### DOC.R1 — 官方 Provider 路由诊断
30
+
31
+ `/doctor` 的路由事实来自 `llm-pi-ai.providers` 与实际注册的 `ctx.llm.listProviders()` 的并集。官方 `deepseek-official` 已注册时不再被误报为“既未注册也未配置”,仍保留第三方非法模型与子代理不同族警告。**注册不等于联网调用成功**,官方模型目录的实时成员校验仍为 OPEN。
32
+
33
+ ## 未纳入本候选
34
+
35
+ - W-4 Completion / W-5 Search Screen(`main` 开发线),未进入 `release/0.8.4`;
36
+ - PR #8 的独立 InputReader 粘贴尾部 Esc 边界修复(慢粘贴 payload ESC 语义权衡仍未收口);
37
+ - PR #9 的 Host/Relay 诊断插桩;
38
+ - 官方模型目录实时校验、Reviewer 延迟预算重设计,以及其他未获授权的兼容范围变化。
39
+
40
+ ## 兼容范围
41
+
42
+ 与 RC.1 一致:
43
+
44
+ ```text
45
+ >=0.2.0-rc.1 <0.2.1 || >=0.2.1-rc.2 <0.2.2
46
+ ```
47
+
48
+ 默认宿主开发线为 `0.2.1-rc.2`,兼容测试仍覆盖 `0.2.0-rc.1` / `0.2.0-rc.2`。0.1.7 及更旧宿主不在本候选支持范围内。
49
+
50
+ ## 发布前证据门槛
51
+
52
+ 以下证据**必须绑定最终候选 Commit 与其 tarball**,不能沿用 RC.1 或 Stable 的旧收据:
53
+
54
+ | Gate | 必需结果 |
55
+ |---|---|
56
+ | 源码与包身份 | `package.json` 和 lockfile 同为 `0.8.4-rc.2`;候选 Git SHA 冻结 |
57
+ | 四条 CI | Linux 三线及 Windows `test-windows` 全部 SUCCESS |
58
+ | 三道阻塞门 | Fresh-home 向导、Paste Probe、Packed Artifact 在默认 Linux 和 Windows 真实执行 |
59
+ | 产物可重复性 | 干净构建、`npm pack` 文件清单、bytes、shasum、integrity 与候选 SHA 对应 |
60
+ | 升级验证 | `upgrade-smoke --from 0.8.4-rc.1 --pack`;并核对 `0.8.3 → RC.2` |
61
+ | Windows 人工 | 真正 Windows Terminal / conhost、IME、中文粘贴、复制、重连、首次安装,H-1~H-11 逐项 PASS |
62
+ | 最终发布许可 | 维护者明确授权 Tag / GitHub prerelease / `npm publish --tag next` |
63
+
64
+ 本文件不预先给出未生成的 RC.2 tarball 哈希、文件数或 CI 成功结论,人工 Gate 亦不得由 ConPTY 自动探针代替。
65
+
66
+ ## 安装与发布通道
67
+
68
+ 在 RC.2 正式发布之前,registry 的可用版本请以实际 packument 为准;既有历史记录中 `latest` 为 `0.8.3`,`next` 为 `0.8.4-rc.1`。
69
+
70
+ 获得正式 RC.2 发布授权后,候选用户才能通过 `dsh plugin --profile tui add dsh-ssh-tui@0.8.4-rc.2` 或更新后的 `@next` 安装。正式 `0.8.4` 发布另走 `latest`,不在这次候选动作范围内。
71
+
72
+ 历史候选记录:[0.8.4-rc.1](release-notes-0.8.4-rc.1.md)。正式稳定版准备说明:[0.8.4](release-notes-0.8.4.md)。
@@ -0,0 +1,129 @@
1
+ # 0.8.4 — Input Ownership & Release Hardening (Stable)
2
+
3
+ > **稳定版:`0.8.4-rc.2` 观察期结束后的正式转正。** 包版本为 `0.8.4`;产品代码与最终 RC.2
4
+ > 相同,只有版本元数据和发布材料变化,没有新增功能、兼容范围变化或存储迁移。
5
+ > 正式 tag、GitHub Release 与 npm `latest` 在最终四腿 CI 和规范 tarball 验证通过后创建;
6
+ > `next` 同步到 `0.8.4`,不再停留在旧候选。
7
+ >
8
+ > `0.8.4-rc.2` 的候选说明与收据保留在
9
+ > [`release-notes-0.8.4-rc.2.md`](release-notes-0.8.4-rc.2.md);`0.8.4-rc.1` 的历史记录保留在
10
+ > [`release-notes-0.8.4-rc.1.md`](release-notes-0.8.4-rc.1.md),不追溯改写。
11
+ >
12
+ > `dsh-ssh-tui` 现在以 **DSH Relay** 为产品名展示;npm 包名与安装命令没有变化。
13
+
14
+ ## 版本状态
15
+
16
+ - `0.8.4-rc.1` 的 annotated tag 是 `a2645c9134646f83d8a5db758743476285f9840b`,其指向的提交是
17
+ `0e1342a9f4a7cbb922971891e9b26a311a7c7026`(2026-10-17)。
18
+ - `0.8.4-rc.2` 的 annotated tag 是 `aa1688264c9ae246eb20651caced38bfd69d68d1`,其指向的提交是
19
+ `5795f6052cdaba565b0db9bf1982aa622f40ac05`(2026-10-24),已作为候选发布到 npm `next`。
20
+ - `0.8.4` 从该 RC.2 转正;稳定版只把包版本改为 `0.8.4` 并更新发布材料,没有产品代码变化。
21
+ Stable 维护来源是 `release/0.8.4`,不是 `main`;`main` 上的 W-4 Completion 或 W-5 Search Screen
22
+ 不属于本线。
23
+ - 正式发布后 npm `latest` 和 `next` 都指向 `0.8.4`。RC.2 的 tarball 哈希和测试收据保留为历史,
24
+ 不作为 `0.8.4` 稳定 tarball 的哈希。
25
+
26
+ ## 本版包含(RC.1 之后)
27
+
28
+ ### FI1 — 首次安装的 Agent Plane 自动补齐
29
+
30
+ 首次向导保存后、以及旧或不完整 profile 启动时,TUI 只补当前组合缺少的 Agent Plane 工具行;
31
+ 已存在的行不重复写入,写入前保留备份,重复启动保持幂等。若行已经写入但当前进程尚未组合它们,
32
+ 界面会明确提示重启,而不是把“已保存”误报成“已生效”。这不是安装钩子,也不会把所有缺失行
33
+ 无条件重写。
34
+
35
+ ### WIN-CI1.H3 — RTT 探针的 Drain 不再丢弃按住的 Esc
36
+
37
+ RTT/liveness 探针开始时,输入过滤器可能正扣着一个单字节,因为它还可能是光标应答 `CSI ... R`
38
+ 的开头。`TerminalInputPump.drain()` 不再重置过滤器并丢掉这个字节,而是保留它并重新安排释放:
39
+ 如果后续应答到达,字节合并为应答;如果窗口结束仍不完整,就按原有规则交还为键入。切开的应答
40
+ 仍不会被误认成 Escape。
41
+
42
+ ### APPR.BP1 — AI Reviewer 传递真实授权 Session
43
+
44
+ Reviewer 的 `GenerateOptions` 现在携带授权 Agent 的真实 `sessionId`。同一 Session 的复核共享
45
+ 身份,不同 Session 或子 Agent 不共享。Reviewer prompt、400-token budget、15 秒 deadline、
46
+ reasoning effort、授权策略、缓存与 fail-closed 行为均未改变;该修复不写入用户对话记录。
47
+
48
+ ### DOC.R1 — `/doctor` 纳入已注册 Adapter
49
+
50
+ `doctorRouting()` 保留 `llm-pi-ai.providers`,并合并 `ctx.llm.listProviders()` 返回的实际注册
51
+ Adapter ID,去重后用于路由自洽性检查。已注册的 `deepseek-official` 不再被误报为“不在已配置
52
+ 路由里”;第三方 Provider 缺失、已配置 Provider 的非法模型、以及子代理跨 Provider Family
53
+ 仍会继续告警。LLM 服务缺失或 `listProviders()` 抛错时回退到已配置集合,`/doctor` 不会崩溃。
54
+
55
+ “已注册或已配置”只表示路由存在,**不表示网络或 API 调用成功**。官方模型目录的实时校验仍是
56
+ **OPEN**:`routeModels` 为空时继续按“目录未知”处理,不会伪造 Model Missing。
57
+
58
+ ## 兼容性
59
+
60
+ 声明窗口与 `0.8.4-rc.1` 相同,没有新增兼容声明:
61
+
62
+ ```text
63
+ >=0.2.0-rc.1 <0.2.1 || >=0.2.1-rc.2 <0.2.2
64
+ ```
65
+
66
+ - `0.2.1-rc.2` 仍是默认开发线。
67
+ - `0.2.0-rc.1` / `0.2.0-rc.2` 继续保留兼容表态与 CI 腿。
68
+ - `0.1.7` 线自 `0.8.4-rc.1` 起为 `incompatible`。
69
+ - `0.1.5` 及更早从 `0.8.0` 起不再支持。
70
+
71
+ ## 验证记录
72
+
73
+ 0.8.4 与最终 RC.2 的产品代码相同;以下测试收据来自 RC.2 的最终验证,稳定版只改版本和发布材料:
74
+
75
+ - `npm run build`:通过。
76
+ - `npm run typecheck`:通过。
77
+ - `npm test`:**1540 项,1536 通过,0 失败,4 跳过**。
78
+ - `npm run freeze` / `npm run freeze:input`:通过。
79
+ - `npm run bench`:五个动作均为增量绘制,0 次整屏清屏。
80
+ - `npm run bench:report -- --check`:通过。
81
+ - `scripts/artifact-smoke.mjs`:RC.2 候选 tarball 通过,包清单 **252 files**。
82
+ - `scripts/upgrade-smoke.mjs --from 0.8.4-rc.1 --pack` 与 `--from 0.8.3 --pack`:通过
83
+ (manifest、bundle 入口、凭据与会话存储均保留)。
84
+ - 最终 `0.8.4` 的四腿 CI、规范 tarball 的 bytes / SHA1 / SHA256 / integrity 与 Registry
85
+ 回读结果记录在独立发布回执中;本文件不把 RC.2 的哈希写成稳定 tarball 的哈希。
86
+
87
+ Windows Terminal、conhost、IME 中文输入、多行中文粘贴、鼠标复制与 SSH 恢复仍按
88
+ [`release.md`](release.md) 的人工验收清单执行;H-2 的 conhost / ASCII 边框确认已由维护者完成,
89
+ 其余未实际人工执行的项目仍保持 **PENDING**,不引用旧版本结果冒充本版验收。自动化 PASS 不是
90
+ 人工 Gate PASS。
91
+
92
+ ## 已知限制
93
+
94
+ - **官方模型目录校验仍 OPEN**:`/doctor` 可以看到已注册的官方 Provider,但尚未异步读取
95
+ `llm.listModels('deepseek-official')` 来校验官方模型成员;自定义官方 Catalog 缺少所选模型时
96
+ 仍可能漏诊。
97
+ - **过滤框对非 BMP 字符的限制(未修)**:picker 的过滤框仍以 `text.length === 1` 判单字符,
98
+ `'🚀'.length === 2`,因此星平面字符在过滤框中会被丢弃。Composer、借用字段与向导字段正常。
99
+ - **陈旧 `lib/` 的打包风险(未修)**:`tsc` 不清理旧输出,`prepack` 也不跑 `clean`;发布必须从
100
+ 干净树构建。`artifact-smoke` 的清单检查是纪律证据,但脚本本身不阻止脏树打包。
101
+ - **时间敏感的 Windows 单元测试**:`session-list.test.mjs` 中 150ms mock 竞速用例在慢跑器上可能
102
+ 失败;这是测试 oracle 问题,不是产品行为,本版未修。
103
+ - **ConPTY 无法覆盖的帧级断言**:ConPTY 会重写行寻址并自行插入清屏,逐行寻址/不清屏类检查在
104
+ Windows 上标记为 `NOT_MEASURED`;功能断言照常执行。
105
+ - **发布后 registry 比对仍是人工步骤**:发布前自动化 pack → 清单 → 安装 → 探针;发布后从
106
+ registry 取回 tarball、核对 shasum/integrity 与 `lib/` 仍按 `docs/release.md` 执行。
107
+
108
+ ## 安装
109
+
110
+ 稳定版走 `latest`,当前正式版本为 `0.8.4`:
111
+
112
+ ```bash
113
+ dsh plugin --profile tui add dsh-ssh-tui@latest
114
+ dsh --profile tui
115
+ ```
116
+
117
+ `@next` 也已同步到 `0.8.4`;需要固定版本时可显式使用 `dsh-ssh-tui@0.8.4`。
118
+
119
+ 历史候选仍可按精确版本安装:
120
+
121
+ ```bash
122
+ # 历史 RC.2
123
+ dsh plugin --profile tui add dsh-ssh-tui@0.8.4-rc.2
124
+
125
+ # 历史 RC.1
126
+ dsh plugin --profile tui add dsh-ssh-tui@0.8.4-rc.1
127
+ ```
128
+
129
+ 已安装 `0.8.3`、`0.8.4-rc.1` 或 `0.8.4-rc.2` 的用户可以升级;配置、凭据和会话记录不需要迁移。
package/lib/doctor.js CHANGED
@@ -71,21 +71,49 @@ export function doctorChecks(facts) {
71
71
  const generation = facts.generation ?? 'legacy';
72
72
  if (generation === 'forms') {
73
73
  const missing = analysis.parseable ? missingRosterRows(analysis.rows, rosterRows(generation)) : [];
74
+ const toolsKnown = facts.services.askUserTool !== undefined || facts.services.presentTool !== undefined;
75
+ const toolsMissing = [
76
+ ...(facts.services.askUserTool === false ? ['ask_user_question'] : []),
77
+ ...(facts.services.presentTool === false ? ['present'] : []),
78
+ ];
79
+ // A tool a bundle already registered does not need a profile row. Only the
80
+ // rows whose tools are genuinely absent are reported or repaired.
81
+ const missingTools = toolsKnown
82
+ ? missing.filter(row => row.id === 'tool-ask-user'
83
+ ? facts.services.askUserTool === false
84
+ : facts.services.presentTool === false)
85
+ : missing;
74
86
  if (!analysis.parseable) {
75
87
  checks.push({ id: 'agent-plane', status: 'warn', summary: t('doctor.forms.unknown'), details: [] });
76
88
  }
77
- else if (missing.length === 0) {
89
+ else if (toolsKnown && toolsMissing.length === 0) {
90
+ // Both tools are registered, whether the profile patch spells them or a
91
+ // bundle supplied them. There is nothing to repair.
78
92
  checks.push({ id: 'agent-plane', status: 'ok', summary: t('doctor.forms.ok'), details: [] });
79
93
  }
80
- else {
94
+ else if (missingTools.length > 0) {
81
95
  checks.push({
82
96
  id: 'agent-plane',
83
97
  status: 'warn',
84
98
  summary: t('doctor.forms.warn'),
85
- details: missing.map(row => t('doctor.detail.missingRow', { id: row.id })),
99
+ details: missingTools.map(row => t('doctor.detail.missingRow', { id: row.id })),
86
100
  fixable: true,
87
101
  });
88
102
  }
103
+ else if (toolsKnown && toolsMissing.length > 0) {
104
+ // The row is in the patch but the running composition never registered
105
+ // the tool. Adding the row again would only mount a duplicate; report the
106
+ // gap instead of turning a write into a claim of readiness.
107
+ checks.push({
108
+ id: 'agent-plane',
109
+ status: 'fail',
110
+ summary: t('doctor.forms.notActive', { missing: toolsMissing.join(', ') }),
111
+ details: toolsMissing.map(id => t('doctor.detail.unregisteredTool', { id })),
112
+ });
113
+ }
114
+ else {
115
+ checks.push({ id: 'agent-plane', status: 'ok', summary: t('doctor.forms.ok'), details: [] });
116
+ }
89
117
  }
90
118
  else if (facts.services.roster) {
91
119
  checks.push({ id: 'roster', status: 'ok', summary: t('doctor.roster.ok'), details: [] });
@@ -388,7 +416,16 @@ export function rowsToRepair(facts) {
388
416
  // base composes the agent process-wide, and the three rows a terminal profile
389
417
  // owns are the ones the patch text either declares or does not.
390
418
  if (generation === 'forms') {
391
- return missingRosterRows(facts.patch.analysis.rows, rosterRows(generation));
419
+ const missing = missingRosterRows(facts.patch.analysis.rows, rosterRows(generation));
420
+ // A tool the running composition already registered must not be mounted
421
+ // again: another copy would fail the loader ("service ... has been
422
+ // registered") or shadow the row the bundle supplied. Old snapshots do not
423
+ // carry these facts, so their textual behaviour is preserved.
424
+ const toolsKnown = facts.services.askUserTool !== undefined || facts.services.presentTool !== undefined;
425
+ if (!toolsKnown)
426
+ return missing;
427
+ return missing.filter(row => (row.id === 'tool-ask-user' && facts.services.askUserTool === false)
428
+ || (row.id === 'present' && facts.services.presentTool === false));
392
429
  }
393
430
  const missing = missingRosterRows(facts.patch.analysis.rows);
394
431
  return missing.filter(row => (row.id === ROSTER_ROWS[0]?.id && !facts.services.roster)
package/lib/doctor.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
package/lib/i18n/en.js CHANGED
@@ -326,6 +326,8 @@ export const en = {
326
326
  'doctor.forms.ok': 'the agent plane is ready: persona (the host default), ask_user_question and present are all there',
327
327
  'doctor.forms.warn': 'this host composes its agent process-wide, so the profile mounts these rows itself (/doctor --fix writes them)',
328
328
  'doctor.forms.unknown': 'the patch does not parse, so the agent-plane rows cannot be judged',
329
+ 'doctor.forms.notActive': 'the profile declares the agent-plane rows, but the running composition is missing {missing}; the rows are already present, so adding them again would not help',
330
+ 'doctor.detail.unregisteredTool': 'declared but not registered: {id}',
329
331
  'doctor.duplicates.ok': 'no row is mounted twice',
330
332
  'doctor.duplicates.fail': '{count} rows are mounted twice: the second mount fails with "service has been registered"',
331
333
  'doctor.bundle.ok': 'the profile layer and the bundle layer mount no row twice',
@@ -338,7 +340,7 @@ export const en = {
338
340
  'doctor.scope.fail': '{count} copies of @deepseek-ai/dsh-scope found: preset composition refuses an unscoped context',
339
341
  'doctor.routing.ok': 'the default route and the subagent model are self-consistent',
340
342
  'doctor.routing.warn': '{count} routing self-consistency problems',
341
- 'doctor.routing.providerMissing': 'the default provider {provider} is not a configured route (configured: {routes})',
343
+ 'doctor.routing.providerMissing': 'the default provider {provider} is neither registered nor configured (registered or configured: {routes})',
342
344
  'doctor.routing.modelMissing': 'the model {model} is not in the {provider} route model list',
343
345
  'doctor.routing.subMismatch': 'the subagent model {model} is not the same family as its parent route {provider}',
344
346
  'doctor.fixHint': 'fix: /doctor --fix (backs up before writing)',
@@ -584,6 +586,9 @@ export const en = {
584
586
  'onboard.settingsMissing': 'settings service unavailable; custom provider was not saved.',
585
587
  'onboard.providerSaved': 'Provider {id} saved → {path}',
586
588
  'onboard.customDone': 'Saved {id} / {model}. Other providers keep their models and keys; /provider switches on the next request.',
589
+ 'onboard.agentPlaneAdded': 'The profile patch was missing agent-plane rows; added the missing rows to {path}. This session still runs without them — restart the TUI to compose them: dsh --profile {profile}',
590
+ 'onboard.agentPlaneRestart': 'The agent-plane rows are in {path}, but this session did not compose them; restart the TUI: dsh --profile {profile}. If they are still missing, run /doctor.',
591
+ 'onboard.agentPlaneFailed': 'Could not repair the agent-plane rows: {error}. This session still lacks the agent tools; fix {path}, then run /doctor --fix.',
587
592
  'onboard.saveFailed': 'Failed to save config: {error}',
588
593
  'onboard.credSaved': '{env} saved → {path}',
589
594
  'onboard.envShadowWin': 'Environment variable {env} already wins; overwrote via setx + env.cmd. Open a new terminal.',