Skip to content

Releases: BangBang-03/dsh-client-ui-quote

v0.14.1

Choose a tag to compare

@github-actions github-actions released this 31 Oct 03:09

Changed

  • 引用高亮在回合结束后收回:引用作为胶囊发出后,回合尾的 data-dshq-turn 作为完成信号,paintAnchors 把对应 source 标成 spent;坐标保留(跳回/卡片/清单照常),高亮与序号不再绘制。keepHighlight: true 可保留常亮。新增 1 组断言。

Docs

  • DSH 0.2.1-rc.5 兼容性复核:engines.dsh 保持 >=0.2.0-rc.2(只有下限、没有上限),DSH 的加载前检查在 0.2.1-rc.5 上判定通过,不会像写了上界的插件那样被禁用。实机复核了宿主半路由(同源围栏返回本插件的 403 JSON)、webServer.register / connection.requestRejection / agents.create 的 seed 与 inheritedEventCount、subagent/descriptor v3,以及客户端槽位与 DOM 属性(conversation.chat.turnTail、data-chat-turn、reference-chip)。README「已知限制」与 docs/design.md 的声明说明同步更新;插件行为与离线断言数不变。

断言

离线断言 728 组(check 12 + capsule 506 + panel 163 + host 47)。


npm: dsh-client-ui-quote@0.14.1 · install: dsh plugin --profile web add dsh-client-ui-quote

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 04:49

0.14.0 — 2026-10-29

Added

  • 界面语言开关(language):"auto"(默认)跟随宿主语言,"zh" / "en" / "ru" 把本插件文案固定为中文 / 英文 / 俄文,不受宿主设置影响。translateFor() 在 auto 之外直接查对应词典,缺失的键回退为键名而不是另一种语言。新增 5 组断言(默认 auto、固定 ru、固定 en、非法值丢弃、恢复 auto)。
  • 俄语词典(ru):合并社区 PR #3(@skyfishalex)——lib/client.js 的 ru 词典(85 键)、locale/ru.json(卡片标题与描述)、test/check.mjs 的 locale 目录校验扩到 zh/en/ru;README 的语言说明改为「中文/英文/俄文」。此前俄语界面回退到中文。

Changed

  • 合并后补齐 ru 词典里缺的 sideChatEmpty(贡献者分支早于 0.13.4 才有的键),并把 locale/README.md 与 CONTRIBUTING.md 里「两份字典成对」的约定扩到三语。

断言

离线断言 727 组(check 12 + capsule 505 + panel 163 + host 47)。

v0.13.4

Choose a tag to compare

@github-actions github-actions released this 29 Oct 04:33

Fixed

  • 隐藏线程第二次发送报 subagent/not-resumable(issue #2):真实原因是会话存储要求第一个 surface 节点是受保护的系统头(system/message append),而旧种子把上下文 user/message 放在最前——首个真实回合的 system/message 在重载时被判 system/message requires a protected first surface head,之后每次发送都以 subagent/not-resumable 失败(v4 的收口回合缺这个头,v5 的无回合种子更不用说)。现在种子是一个收口回合:turn/start → step/start → 空内容的 system/message(头) → 隐性上下文 → step/end → turn/end → descriptor(+ 可选 model/selection)。2026-10-29 真机验证通过:同一线程连发两条,磁盘日志里 system 头是 kind=system-prompt、content=0,turn 2 与 turn 3 都是 completed,各有 request/header。侧边对话在本插件自己的 quote-sidechat 页签里进行,发送走标准会话路径,从磁盘打开这份合法的日志;子 agent 创建完、定完标题就 dispose(活句柄会让宿主的子代理 resume 失败——真机里 v6 子会话的历史加载就是这样被拒的)。隐藏线程形状版本戳升到 v: 6,旧线程下一次点击自动替换。断言:种子形状改写为「受保护 system 头 + 收口回合 + 上下文位置」,另有「自营页签注册后 hidden 线程开自营页」1 组。
  • 自营侧聊页的 blank 兜底(v6 种子通常不会走到):宿主 ui-conversation 的 ConversationContent 在 hero 为真时渲染欢迎页(「探索未至之境」)与 hero 输入条(未选工作区时禁用),引用芯片落不进去。自营页固定 hero: false、phase 走 settling → active;宿主若仍把子会话判成 blank,空态块兜底。断言补「blank 子会话仍走聊天态」「打开中/父会话可用性未知时先 settling」2 组。
  • blank 兜底:视图区没有 DOM 时侧聊页只剩输入卡(宿主 ConversationSession 在 session.blank 时直接 return null):输入卡被排到页签栏下方,引用 ×N 条盖住页签条。自营页在视图槽里补一个空态块(首条消息后自动隐藏),把输入条放回页底。断言补「视图区空态」1 组。离线断言 715 组(check 12 + capsule 493 + panel 163 + host 47);新增 4 组:自营页签、blank 仍走聊天态、settling、视图区空态。

(下一轮)


npm: dsh-client-ui-quote@0.13.4 · install: dsh plugin --profile web add dsh-client-ui-quote

v0.13.3

Choose a tag to compare

@github-actions github-actions released this 28 Oct 16:40

Changed

  • 删掉 0.13.2 里的临时诊断路由 resume.diag(定位 issue #2 用的脚手架)及其 2 组断言:它是同源围栏内的只读诊断,对用户不可见,但不该随包长期发布。侧聊的模型选择修复本身不变。离线断言 712 → 711(host 48 → 47)。

npm: dsh-client-ui-quote@0.13.3 · install: dsh plugin --profile web add dsh-client-ui-quote

v0.13.2

Choose a tag to compare

@github-actions github-actions released this 28 Oct 16:29

Fixed

  • 隐藏侧聊线程首次发送必失败(issue #2):种子里那个「收口的小回合」从未真正请求过模型,子会话因此没有 modelSelection 投影,标准 preset 的 persona 里 {{model}} 取不到值,任何一轮都会以 prompt variable "{{model}}" has no value for this assembly (section "deployment:persona-prefix") 结束。现在创建线程时按宿主自己的做法(api-session-controller)补两件事:setup 里装 system-prompt/assemble 钩子注入 provider / model,种子里追加一条 model/selection 让投影有值(重建时也读得到)。父会话的模型路由本来就取到了,只是没落到子会话。
  • 离线断言 712 组(check 12 + capsule 489 + panel 163 + host 48):新增「种子带父会话模型路由」「setup 装钩子并 append 一次」。

Added

  • 临时诊断路由 POST /ui-quote/api/resume.diag(同源围栏内,只读诊断):在宿主进程里直接调 agents.resume,把被 subagent/not-resumable 吞掉的真实错误原样带回——用于定位 issue #2(隐藏侧聊线程首次发送即失败)。定完位就删。
  • 离线断言 710 组(check 12 + capsule 489 + panel 163 + host 46);新增 2 组:诊断路由对「父会话不在线」的答复、以及把 resume 的 message / code / cause 原样回传。

Changed

  • 删掉 canary 预发布频道:main 的 push 只跑测试,不再往 npm 发 -lab.N(它占了全部 62 个版本里的 45 个)。发版只在打 v* 标签时发生;lab dist-tag 冻结在 0.13.1-lab.61,老命令仍可安装但不再更新。要验证打包产物用本机 npm pack 后装 tarball。

npm: dsh-client-ui-quote@0.13.2 · install: dsh plugin --profile web add dsh-client-ui-quote

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 15:16

Added

  • 引用清单页最底下一行:★ 在 GitHub 上 Star。它是插件里唯一能回到仓库的入口,是一个普通 <a target="_blank" rel="noreferrer noopener">——不点击就不会打开任何页面,插件自身仍然不发任何请求(R11 不变)。
  • 离线断言 708 组(check 12 + capsule 489 + panel 163 + host 44);新增 2 组:「底部有一条指向仓库的链接(a + target=_blank + noreferrer)」「这行链接自身不触发任何动作」。

Docs

  • 根 README 从 540 行收到 233 行的落地页:首屏改成三句卖点 + 入口链接,界面截图提到功能表之前。深度内容按主题移出——设计原理与同类对照 → docs/design.md,四套断言细节 → docs/testing.md,开发与发布/推送通道 → docs/release.md,英文全文 → docs/README.en.md。功能表与「已知限制」仍留在根 README(验收口径与宿主契约出处不变)。
  • R17 的同步位置随之变成:README.md 四处 + docs/design.md 一处(真机验证)+ CHANGELOG.md 一处。

npm: dsh-client-ui-quote@0.13.0 · install: dsh plugin --profile web add dsh-client-ui-quote

v0.12.9

Choose a tag to compare

@github-actions github-actions released this 28 Oct 13:40

Fixed

  • 等待晚到的 inputTriggers / shortcuts 服务,并在服务提供者卸载时释放旧注册、重载后在新实例注册引用源与四个命令。(来自 @samwei12 的 #1)
  • 移除无法通过宿主校验的 Web 默认快捷键;保留 Web 命令及用户自定义能力,桌面仍为 Alt+Q/C/B/L。
  • 离线断言 706 组(check 12 + capsule 489 + panel 161 + host 44);新增 10 组回归断言,覆盖服务晚到、独立替换为新实例、旧实例释放、新实例恰好注册一次、插件卸载清理,以及 Web 无默认绑定。

npm: dsh-client-ui-quote@0.12.9 · install: dsh plugin --profile web add dsh-client-ui-quote

v0.12.8

Choose a tag to compare

@github-actions github-actions released this 27 Oct 14:31

Fixed

  • 发送引用后,输入框上方的 引用 ×N 条有时不消失,只剩一个 引用 ×1 的空条——宿主发送后会把芯片节点回收成空输入框的 placeholder,我们打在芯片上的 data-dshq-chip 标记留在了被复用的节点上。旧逻辑按标记数算条数,于是把一个已经解析不出引用的节点也算成一条;它没有条目可点,却一直挂在输入框上方。现在 wireChips 与 syncDraftBars 都以 chipInfoFor 能否解析出引用为准:解析不出的标记会被摘掉、不计入条数;真芯片与残留标记并存时计数也只算真芯片。
  • 离线断言 696 组(check 12 + capsule 480 + panel 160 + host 44);新增 4 组断言:「回收节点上的残留标记不再撑起聚合条」「残留标记被摘掉」「真芯片与残留标记并存时计数仍为 1」「移除真芯片后条消失」。

npm: dsh-client-ui-quote@0.12.8 · install: dsh plugin --profile web add dsh-client-ui-quote

v0.12.7

Choose a tag to compare

@github-actions github-actions released this 27 Oct 12:42

Fixed

  • 插件加载/重载后,已经发出的引用消息有时一直显示为线格式原文(> ❝ … │q1:…),而不是胶囊:消息文本本身就是持久载体(❝ / ❞ / │q1: 是设计好的线格式,换客户端、刷新、没装插件时都还在),胶囊是客户端插件画上去的增强层;如果一条消息在插件重载/启动的缝隙里渲染,MutationObserver 可能没报到它,插件就不会再管它。现在每次安装都会全量重扫一遍已渲染的 transcript,另外窗口重新可见或获得焦点时也会 rescanCapsules() 补扫一次,把漏掉的 run 重新做成胶囊并隐藏原文。没有加载插件的窗口(例如另一个 profile 的浏览器)仍会原样显示这段线格式——这是设计上的兜底,不是消息损坏;看到原文时先确认该窗口是否启用了插件,刷新后应在几十毫秒内变成胶囊。
  • 离线断言 692 组(check 12 + capsule 476 + panel 160 + host 44);新增 2 组断言:「晚渲染的引用在重扫前保持原文」「窗口唤醒后的重扫把它变成胶囊并隐藏原文」。

npm: dsh-client-ui-quote@0.12.7 · install: dsh plugin --profile web add dsh-client-ui-quote

v0.12.6

Choose a tag to compare

@github-actions github-actions released this 27 Oct 12:28

Fixed

  • 高亮偶尔失效、第二条引用「没有高亮」:v0.12.5 的收回逻辑有两条时间缝。其一,收回一旦跑在胶囊出现之后,坐标会卡在 draft,而转正只发生在胶囊创建那一刻——之后没有任何人再把它改回来,那条引用就一直不落色。现在 paintAnchors 把「draft + 页面上已经有它的胶囊」当作已发出的证据:下一次重画(滚动、任何 DOM 变化)就把它转正并补画,落库后刷新也不再生变。其二,发送后消息先以纯文本出现、胶囊晚一拍才增强,芯片在这道缝里消失曾被当成「读者反悔」把已发出的那句收回;现在收回前先看 transcript 文本里有没有这句的 │q1: 坐标,有就让路。用户 19:49 那次「两条引用一起发」留下的 draft 坐标,升级后回到那个会话、胶囊在页面上时会被自动补回来。
  • 离线断言 690 组(check 12 + capsule 474 + panel 160 + host 44);新增 4 组断言:「胶囊已在页面上时 draft 坐标照常落色」「这次迟到的转正会落库」「线上文本里已有坐标时芯片离开不收回」「那句已发出去的引用保持高亮」。

npm: dsh-client-ui-quote@0.12.6 · install: dsh plugin --profile web add dsh-client-ui-quote