@khorsheed/dsh-room 0.2.1 → 0.2.2

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,11 @@
1
1
  # 变更记录
2
2
 
3
+ ## 0.2.2(2026-10-22)
4
+
5
+ - **房间输入条草稿接入官方 input machine**:草稿不再存组件本地 state,房间接管条与官方回退输入条共享同一份草稿——「引用到当前会话」等外部写入立即在房间里可见(此前写入成功却只渲染在隐藏的回退条里,看似失效);草稿随机器持久化,跨导航/重挂存活;首次拉取窗口期在回退条打的字在接管当选后保留。发送路径不变:仍走房间自己的 `remote.room.postMessage` 派发,`inputActions.submit` 永不调用,机器忙碌准入不会串行化并行成员派发。引用 chip 在纯 textarea 投影为剪贴板文本、编辑即摊平(接受的房间侧降级)。
6
+ - 自隐 tab(成员 tab 等 `conversation.view` 条目)的注册/注销切换延后到下一帧(requestAnimationFrame),避开宿主 ui-conversation `refreshViews` 对已释放会话滞留绑定的 uncaught throw 窗口期——上游修复提案见 docs/upstream-proposals/2026-10-20-refreshviews-stale-binding-robustness.md。
7
+ - 适配宿主 0.2.1 线:peer 区间加宽覆盖 0.2.1;`./tool` 子路径行 locale 重定向到包根,宿主设置清单页显示插件卡片标题而非裸模块名;退役 load 期 invariant 伴生探针并声明 `engines.dsh`。
8
+
3
9
  ## 0.2.1(2026-09-30)
4
10
 
5
11
  无功能变更。加宽 `@deepseek-ai/dsh-*` peer 区间以覆盖宿主 0.2.0(0.2.0 的兼容闸会禁用 peer 区间不覆盖宿主版本的已装插件)。
package/README.en.md CHANGED
@@ -19,7 +19,7 @@ Getting several agents onto one piece of work today means copy-pasting between w
19
19
  - **Members keep their native sessions** — the Members tab holds names, providers, roles, working-directory overrides (blank inherits the Room's directory), effective configurations and session links; breadcrumbs and task links open the member's own conversation with its tools, duration and token usage. Room statistics for the native session are not a sum of member spend.
20
20
  - **Shared model/effort controls** — coordinator and member composers share the core model/effort control; choosing a new configuration mid-run queues it for the next complete turn (tool continuations keep the current one), and frozen evaluation members reject changes. The original native DSH session keeps the host model selector and its semantics — it is not a local-agent member controller.
21
21
  - **Live output, targeted stop** — members stream native text and reasoning into both their own conversation and the Room; final messages and tool records stay authoritative. Stopping a member interrupts only that member and preserves non-empty partial output with an explicit stopped/failed label, duration and session link; long replies expand from a compact preview.
22
- - **Preset-gated chrome, fail-open** — the **Invite agent** header chip and the **Members** tab appear exactly when the session's preset composition grants the `@khorsheed/dsh-room/tool` row, fail open when the composition cannot be read, and always stay visible inside an existing Room.
22
+ - **Preset-gated chrome, fail-open** — the **Invite agent** header chip and the **Members** tab appear exactly when the session's preset composition grants the `@khorsheed/dsh-room/tool` row, fail open when the composition cannot be read, and always stay visible inside an existing Room. Registration switches apply on the next animation frame (requestAnimationFrame) instead of inside the session switch's synchronous flush, sidestepping the host ui-conversation `refreshViews` uncaught-throw window on a released session's stale binding (upstream proposal docs/upstream-proposals/2026-10-20-refreshviews-stale-binding-robustness.md).
23
23
 
24
24
  <img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/room-invite.png" width="640" alt="the Members tab: the empty state that turns the session into a multi-agent collaboration room, and the session header's Invite agent entry">
25
25
 
@@ -42,7 +42,7 @@ Uninstalling removes the plugin's surfaces; persisted Room journals stay in thei
42
42
  ## Compatibility
43
43
 
44
44
  - npm release line (`@deepseek-ai/dsh@0.1.5-rc.1`): ✅ supported with one designed degrade — 0.1.5-rc.1 full-line boot-verified (42 packages including capture, 2026-09-25) through the three compat layers ([preset-registry dual-name probe](../../.agents/notes/implemented/bug-fix/2026-09-25-preset-registry-dual-name-probe.md), [dual-shape typert codecs](../../.agents/notes/implemented/bug-fix/2026-09-25-typert-codec-dual-shape.md), [typert faces carrying zod@4](../../.agents/notes/implemented/bug-fix/2026-09-25-typert-faces-carry-zod-v4.md)); `minHost` is pinned at 0.1.5-rc.1. External members require the local-agent family (core + providers), which is not yet published on npm: without it, member preparation, shared model/effort controls and the authenticated member tools answer unavailable, while native DSH Room functionality stays complete. Candidate-tarball fresh-install and upgrade checks on the npm host pass, retaining existing Room state.
45
- - source line (deepseek-harness master): ✅ (verifiedHost: 0.1.7-rc.2 — also the 3080 production-verified line) — Session V4 adaptation: the main-agent followup's source moved to the producer-owned kind `room` (V4 native admission refuses the retired `kind: 'plugin'` wrapper at the durable write; a 0.1.5 host's `user/message` admission accepts any non-empty kind, so both lines write durably), and the read side accepts `room`, `plugin:@khorsheed/dsh-room` (the V3→V4 migrated form) and the released V3 wrapper. The `conversation.chat.node` rc.1 contract re-verified (the 5 room renderers touch neither hookContext nor the disclosure factory). DSH/Kimi coordinators, delegation, two-stage review and interruption recovery are exercised end to end — see the [acceptance record](../../docs/acceptance/room-coordinator-2026-09-19.md).
45
+ - source line (deepseek-harness master): ✅ (verifiedHost: 0.2.1-rc.1) — host-021 wave: full build+test green against the 0.2.1-rc.1 tree (3080 production deployment acceptance included); no other surface changes. Session V4 adaptation: the main-agent followup's source moved to the producer-owned kind `room` (V4 native admission refuses the retired `kind: 'plugin'` wrapper at the durable write; a 0.1.5 host's `user/message` admission accepts any non-empty kind, so both lines write durably), and the read side accepts `room`, `plugin:@khorsheed/dsh-room` (the V3→V4 migrated form) and the released V3 wrapper. The `conversation.chat.node` rc.1 contract re-verified (the 5 room renderers touch neither hookContext nor the disclosure factory). DSH/Kimi coordinators, delegation, two-stage review and interruption recovery are exercised end to end — see the [acceptance record](../../docs/acceptance/room-coordinator-2026-09-19.md).
46
46
 
47
47
  ## Known Limitations
48
48
 
@@ -71,7 +71,7 @@ Uninstalling removes the plugin's surfaces; persisted Room journals stay in thei
71
71
 
72
72
  **Model experience.** The current goal rides the top of the roster section in every member prompt; there is deliberately no blackboard fold — member prompts never consume the room's running log (speech/dispatch events are journaled for UI projection and replay only). Model-facing tools arrive with the session's preset grant, tagged by the package's own `./tool` row.
73
73
 
74
- **Identity triangle.** cordis row id `room` (`cordis.patch.yml`) = `clientBundle('@khorsheed/dsh-room')` (`tsdown.config.ts`) = `src/invariant.ts` `PACKAGE_NAME`. Exports: `.` host service, `/client` (plugin `apply`/`inject` plus the `RoomRemote` type), `/tool` the session-granted model tool row, `/types`, `/typert`, `/remote`, `/invariant`.
74
+ **Identity.** cordis row id `room` (`cordis.patch.yml`) = `clientBundle('@khorsheed/dsh-room')` (`tsdown.config.ts`). Exports: `.` host service, `/client` (plugin `apply`/`inject` plus the `RoomRemote` type), `/tool` the session-granted model tool row, `/types`, `/typert`, `/remote`.
75
75
 
76
76
  </details>
77
77
 
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # last confirmed-consistent state. Both languages carry equal authority; after
3
3
  # editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/room/README.en.md
5
- packages/room/README.en.md: e618b146703f23e87a1f4ad5c02b041aa9b42609
6
- packages/room/README.md: 50cce309cba3611d7117ddb791fabcd14b0a9ca1
5
+ packages/room/README.en.md: fcd45ca632a100f84dc65f712f9c7913ba638543
6
+ packages/room/README.md: 30ed1d20305953ddc5460ef0ec6bb07c17f4f83e
package/README.md CHANGED
@@ -19,7 +19,7 @@
19
19
  - **成员保留原生会话**——成员页记录名称、provider、角色、工作目录覆盖(留空继承 Room 目录)、有效配置与会话入口;面包屑与任务入口能进入成员自己的会话,查看工具、耗时与 token 用量。Room 原生会话的统计不是所有成员消耗的总和。
20
20
  - **共享模型/强度控制**——协调者与成员输入栏共用同一套 core 模型/effort 控制;运行中选择新配置会排到下一完整轮次(工具续跑沿用本轮配置),冻结的评测成员拒绝变更。原生 DSH 主会话仍使用宿主模型选择器及其语义——它不是 local-agent 成员控制器。
21
21
  - **实时输出与定向停止**——成员把原生正文与推理增量同时呈现在自己的会话和 Room 中;最终消息与工具记录仍是权威内容。定向停止只中断该成员,非空部分输出带明确的停止/失败标记、耗时与会话入口保留;长回答可从紧凑预览展开。
22
- - **入口随 preset 授权显隐、失败放行**——「邀请 agent」chip 与「成员」tab 只在当前会话的 preset 组合授予 `@khorsheed/dsh-room/tool` 行时出现;读不到组合时保持可见(fail-open);已是 Room 的会话始终保留界面。
22
+ - **入口随 preset 授权显隐、失败放行**——「邀请 agent」chip 与「成员」tab 只在当前会话的 preset 组合授予 `@khorsheed/dsh-room/tool` 行时出现;读不到组合时保持可见(fail-open);已是 Room 的会话始终保留界面。注册/注销的切换延后到下一帧生效(requestAnimationFrame),不在会话切换的同步刷新里改注册——避开宿主 ui-conversation `refreshViews` 对已释放会话的滞留绑定抛 uncaught 的窗口期(上游修复提案 docs/upstream-proposals/2026-10-20-refreshviews-stale-binding-robustness.md)。
23
23
 
24
24
  <img src="https://raw.githubusercontent.com/Khorsheed/dsh-basic/main/docs/screenshots/room-invite.png" width="640" alt="成员标签页:空态的「把会话变成多 agent 协作间」与会话头部的「邀请 agent」入口">
25
25
 
@@ -42,7 +42,7 @@ dsh plugin --profile web remove @khorsheed/dsh-room
42
42
  ## Compatibility
43
43
 
44
44
  - npm 发布线(`@deepseek-ai/dsh@0.1.5-rc.1`):✅ 支持、带一处设计内降级——0.1.5-rc.1 全量 boot 实证通过(42 包含 capture,2026-09-25),经三层兼容修复([preset-registry 双名探测](../../.agents/notes/implemented/bug-fix/2026-09-25-preset-registry-dual-name-probe.md)、[typert codec 双形状](../../.agents/notes/implemented/bug-fix/2026-09-25-typert-codec-dual-shape.md)、[face 自带 zod@4](../../.agents/notes/implemented/bug-fix/2026-09-25-typert-faces-carry-zod-v4.md));`minHost` 钉在 0.1.5-rc.1。外部成员依赖 local-agent 家族(core + provider),该家族尚未发布到 npm:缺失时成员准备、共享模型/强度控制与认证成员工具返回不可用,原生 DSH Room 功能保持完整。候选 tarball 在 npm 宿主上的全新安装与升级检查通过,旧 Room 状态得到保留。
45
- - 源码线(deepseek-harness master):✅(verifiedHost: 0.1.7-rc.2——也是 3080 生产实证线)——Session V4 适配:主 agent followup 的 source 改为生产者归属 kind `room`(V4 原生准入在落盘写入时拒收退役的 `kind: 'plugin'` 包装;0.1.5 宿主的 `user/message` 准入只查 kind 非空,两条线都能落盘),读侧兼认 `room`、`plugin:@khorsheed/dsh-room`(V3→V4 迁移形态)与 V3 包装存量。`conversation.chat.node` rc.1 契约复验通过(5 个 room 渲染器均不触 hookContext 与 disclosure 工厂)。DSH/Kimi 协调者、委派、两阶段验收与中断恢复已端到端实测——见[验收记录](../../docs/acceptance/room-coordinator-2026-09-19.md)。
45
+ - 源码线(deepseek-harness master):✅(verifiedHost: 0.2.1-rc.1)——host-021 波对 0.2.1-rc.1 树全量 build+test 绿(含 3080 生产部署验收),无其它表面变化。Session V4 适配:主 agent followup 的 source 改为生产者归属 kind `room`(V4 原生准入在落盘写入时拒收退役的 `kind: 'plugin'` 包装;0.1.5 宿主的 `user/message` 准入只查 kind 非空,两条线都能落盘),读侧兼认 `room`、`plugin:@khorsheed/dsh-room`(V3→V4 迁移形态)与 V3 包装存量。`conversation.chat.node` rc.1 契约复验通过(5 个 room 渲染器均不触 hookContext 与 disclosure 工厂)。DSH/Kimi 协调者、委派、两阶段验收与中断恢复已端到端实测——见[验收记录](../../docs/acceptance/room-coordinator-2026-09-19.md)。
46
46
 
47
47
  ## 已知限制
48
48
 
@@ -71,7 +71,7 @@ dsh plugin --profile web remove @khorsheed/dsh-room
71
71
 
72
72
  **模型体验。** 当前目标随每个成员提示词的名册段顶部下发;刻意不做黑板折叠——成员提示词从不消费房间的运行日志(speech/dispatch 事件只为 UI 投影与回放落日志)。面向模型的工具随会话 preset 授予到达,由本包的 `./tool` 行打标。
73
73
 
74
- **身份三角。** cordis 行 id `room`(`cordis.patch.yml`)= `clientBundle('@khorsheed/dsh-room')`(`tsdown.config.ts`)= `src/invariant.ts` 的 `PACKAGE_NAME`。导出:`.` 宿主服务、`/client`(插件 `apply`/`inject` 与 `RoomRemote` 类型)、`/tool` 按会话授予的模型工具行、`/types`、`/typert`、`/remote`、`/invariant`。
74
+ **身份同名。** cordis 行 id `room`(`cordis.patch.yml`)= `clientBundle('@khorsheed/dsh-room')`(`tsdown.config.ts`)。导出:`.` 宿主服务、`/client`(插件 `apply`/`inject` 与 `RoomRemote` 类型)、`/tool` 按会话授予的模型工具行、`/types`、`/typert`、`/remote`。
75
75
 
76
76
  </details>
77
77