Repository navigation
Releases
v2.5.9 — 修复「加载更早」失效
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 已发布
中文
- 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.8is nowlatest; its tarball was verified to contain the 2026-11-03 state-machine fixes. 2.5.6is deprecated (missing fixes); the same code ships as 2.5.8 because npm held 2.5.7 as a staged publish.
v2.5.7 · 同名版本修正
中文
- 版本号跳过 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 · 状态机修复
中文
- 可见性探针改为「任意一行有盒子即视为可见」:首行被折叠或虚拟化卸载不再误判为"视图隐藏"并重置状态。
- 视图隐藏与会话切换解耦:隐藏时只跳过渲染、保留展开状态;隐藏超过 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.immediatelyis no longer parsed by the dsh 0.2.1 client loader; the field stays only for older hosts.
v2.5.5 · Linux/macOS 兼容修复
中文
- 修复
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.ps1writing a BOM intopackage.jsonunder 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
中文
- 客户端 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
中文
- Linux / macOS 兼容:README 补齐 bash 安装(绝对路径符号链接)、按宿主区分
desktop/webprofile、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,
rmuninstall. - Added
scripts/install.sh(POSIX) andscripts/install.ps1, both supporting--dry-run/--applyand backing uppackage.json. - Added
scripts/check.mjs: kebab-case name, exports resolution,dsh.bundle.patch, LF/BOM, casing and Windows-path checks. - Added a GitHub Actions
ciworkflow: ubuntu, macOS and Windows on node 20/22 — syntax, manifest,bash -n, pack and both install smoke tests.
v2.5.2 · 市场适配 Marketplace rename
中文
- 仓库更名
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/bugstopackage.jsonfor marketplace metadata. - Ships a prebuilt npm tarball so markets can use the fast release-asset install path.
v2.5.1 · 会话级重置 Session-scoped reset
中文
- 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: contentsanchor madegetClientRects()empty, so the plugin did nothing; visibility is probed from a row node. Verified on the author machine.