Skip to content

Releases

v2.5.9 — 修复「加载更早」失效

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 04 Nov 04:00

2.5.9 — 2026-11-04

修复:长 / 压缩会话里「加载更早」点到第 3–4 页后按钮失效

向前补页后重建会话视图时,system-message Definition 对已物化的 chat 节点返回 null,装配器抛出
conversation Definition "system-message" withdrew materialized target "chat";该异常被订阅通知层吞掉,
快照不再发布,画面停在旧内容,之后每次点击都同样失败(loadOlder failed 计数始终为 0——翻页请求本身是成功的)。

本版兜底:包住 system-message / request-prompt 的 buildViewNode——原实现返回 null 且该 context 已有
chat 节点时,返回同一 key 并标 visibility:"hidden"(内核错误信息要求的写法,也是核心 assistant-message
Definition 的同款处理);从未物化过节点的 context 仍返回 null,内核恢复返回真节点时立刻恢复可见。

  • 自检:控制台 window.__acWithdrawGuard → { installed, hits, active }
  • 结构认不出就不动作,异常只 warn;不改核心配置、不改会话文件、不碰 app.asar
  • 安装:dsh plugin --profile web add dsh-session-accordion@2.5.9

English

Fix "Load earlier" going dead after three or four pages on long compacted sessions: the conversation
rebuild threw conversation Definition "system-message" withdrew materialized target "chat", the throw was
swallowed by the subscriber notifier and the snapshot was never republished. The plugin now guards
system-message / request-prompt buildViewNode and returns the same key with visibility:"hidden"
instead of null. Diagnostics: window.__acWithdrawGuard.

v2.5.8 · npm 已发布

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 03 Nov 13:23

中文

  • npm 发布完成:dsh-session-accordion@2.5.8(latest),Content 校验含 11-03 状态机修复(hasVisibleRow / hiddenSince)。
  • 2.5.6 已标记 deprecated(缺修复);2.5.7 因 npm staged 发布占用版本号,同代码改以 2.5.8 发布。

English

  • npm release: dsh-session-accordion@2.5.8 is now latest; its tarball was verified to contain the 2026-11-03 state-machine fixes.
  • 2.5.6 is deprecated (missing fixes); the same code ships as 2.5.8 because npm held 2.5.7 as a staged publish.

v2.5.7 · 同名版本修正

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 03 Nov 12:53

中文

  • 版本号跳过 2.5.6:npm 上的 2.5.6 发布于 2026-11-02,不含本轮状态机修复(hasVisibleRow/hiddenSince 缺失),同名不同物。2.5.7 以仓库当前代码为准。
  • 含 11-03 修复:可见性探针、隐藏视图与换会话解耦、虚拟化安全的会话切换判定。

English

  • Version 2.5.6 is skipped: the npm tarball from 2026-11-02 lacks this round's state-machine fixes. 2.5.7 is built from the current repository code.
  • Includes the 2026-11-03 fixes: visibility probe, hidden-view vs session-switch separation, virtualization-safe switch detection.

v2.5.6 · 状态机修复

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 03 Nov 12:45

中文

  • 可见性探针改为「任意一行有盒子即视为可见」:首行被折叠或虚拟化卸载不再误判为"视图隐藏"并重置状态。
  • 视图隐藏与会话切换解耦:隐藏时只跳过渲染、保留展开状态;隐藏超过 1.5 秒后再可见才视为"重新打开",回到最新一条。
  • 会话切换判定改为「整批替换(turn 集合无交集)」,替代"任一历史 id 消失",长会话虚拟化不再误触发重置。
  • 说明:dsh.client.immediately 在 dsh 0.2.1 的 client loader 中不再被解析,字段保留仅为兼容旧宿主。

English

  • Visibility probe now accepts any row with a box, so a folded or virtualized first row no longer looks like a hidden view and resets state.
  • Hidden view is decoupled from session switching: hiding only skips rendering, and a >1.5 s hidden period reopens on the latest turn.
  • Session switch is detected by wholesale replacement (no turn-id overlap) instead of any vanished id, so virtualization no longer resets.
  • Note: dsh.client.immediately is no longer parsed by the dsh 0.2.1 client loader; the field stays only for older hosts.

v2.5.5 · Linux/macOS 兼容修复

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 30 Oct 06:32

中文

  • 修复 scripts/install.ps1 在 PowerShell 5.1 下给 package.json 写入 BOM 的问题——BOM 会让 Linux/macOS 上的 node/pnpm 读不了 JSON(本次实测:写入后首字节为 {,node 可正常解析)。
  • 时间胶囊支持时区覆盖:Console 执行 window.__dshAccordion = { timeZone: 'Asia/Shanghai' } 后刷新;默认仍取浏览器时区。
  • 尊重 prefers-reduced-motion(系统「减少动态效果」);补 font-smoothing 提升 macOS/Linux 高分屏清晰度。
  • README 新增「兼容性」矩阵:Windows / macOS / Linux(Chromium) / Linux(Firefox) 与已知限制。

English

  • Fixed scripts/install.ps1 writing a BOM into package.json under PowerShell 5.1; a BOM breaks node/pnpm JSON reads on Linux/macOS.
  • Optional time-zone override for the time pill (window.__dshAccordion = { timeZone }); browser zone remains the default.
  • Respects prefers-reduced-motion; added font smoothing for macOS/Linux HiDPI.
  • README now documents a compatibility matrix (Windows, macOS, Linux Chromium, Linux Firefox) and its limits.

v2.5.4 · 可作为 DSH 插件安装 Installable plugin

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 30 Oct 06:29

中文

  • 客户端 loader id 改为 dsh-session-accordion,与包名一致;现在可以用官方方式安装(插件管理器 install_bundle 或 dsh plugin add),不再依赖 @local/* 别名。

English

  • The client-half loader id now matches the package name, so the bundle installs through the normal DSH plugin path (install_bundle / dsh plugin add) instead of a @local/* alias.

v2.5.3 · Linux/macOS 兼容 · Cross-platform install

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 30 Oct 04:09

中文

  • Linux / macOS 兼容:README 补齐 bash 安装(绝对路径符号链接)、按宿主区分 desktop / web profile、rm 卸载写法。
  • 新增 scripts/install.sh(POSIX)与 scripts/install.ps1:支持 --dry-run / --apply,改 package.json 前自动备份。
  • 新增 scripts/check.mjs:校验包名 kebab-case、exports 落地文件、dsh.bundle.patch、LF/BOM、大小写、无 Windows 绝对路径。
  • 新增 GitHub Actions ci:ubuntu / macos / windows × node 20/22,跑语法检查、清单校验、bash -n、打包与两条安装路径的冒烟测试。

English

  • Linux/macOS compatibility: bash install with an absolute symlink, desktop vs web profile guidance, rm uninstall.
  • Added scripts/install.sh (POSIX) and scripts/install.ps1, both supporting --dry-run / --apply and backing up package.json.
  • Added scripts/check.mjs: kebab-case name, exports resolution, dsh.bundle.patch, LF/BOM, casing and Windows-path checks.
  • Added a GitHub Actions ci workflow: ubuntu, macOS and Windows on node 20/22 — syntax, manifest, bash -n, pack and both install smoke tests.

v2.5.2 · 市场适配 Marketplace rename

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 29 Oct 06:04

中文

  • 仓库更名 dsh-session-accordion(kebab-case),满足各插件市场的仓库命名规则(如 dsh.so 的 ^[a-z0-9]+(-[a-z0-9]+)*$)。
  • package.json 补 repository / homepage / bugs,便于市场读取元数据。
  • 附 npm 预构建包,市场可走「Release 预构建包」快装路径。

English

  • Repository renamed to dsh-session-accordion (kebab-case) to satisfy market naming rules such as dsh.so's ^[a-z0-9]+(-[a-z0-9]+)*$.
  • Added repository / homepage / bugs to package.json for marketplace metadata.
  • Ships a prebuilt npm tarball so markets can use the fast release-asset install path.

v2.5.1 · 会话级重置 Session-scoped reset

Choose a tag to compare

@ayuanxx-max ayuanxx-max released this 29 Oct 05:41

中文

  • 2.5.0:展开态改为全局唯一的 expandedId。打开任何会话只展开最近一条;切换工作区/会话、历史节点消失、追加新轮都会把展开态重置到最新一轮(此前手动展开的轮次一并折叠)。
  • 2.5.1:修复 2.5.0 回归 —— conversation.chat.flow 是 display: contents 锚点(自身无盒子),getClientRects() 恒为空导致插件不执行;改为用行节点探测可见性。本机验证通过。

English

  • 2.5.0: the open state is a single global expandedId; opening any session expands only the newest turn, and session switches, vanished nodes or appended turns reset it.
  • 2.5.1: fixed the 2.5.0 regression where the display: contents anchor made getClientRects() empty, so the plugin did nothing; visibility is probed from a row node. Verified on the author machine.