Repository navigation
Releases: a179-sanae/dsh-auto-collapse
Releases · a179-sanae/dsh-auto-collapse
Release list
v0.2.1:使用astra重写
v0.1.8: 修复设置卡启动竞态与状态文案热更新
v0.1.8 更新日志
修复 DSH 0.1.2-rc.1 下客户端服务启动时序导致“状态提示词”设置卡缺席的问题。
修复
- 设置服务可重连:核心折叠保持立即启动,
settingsScope/slots改由ctx.inject()等待并接入;服务晚到、detach 或重新提供时均能正确收敛。 - 设置卡生命周期完整:服务 detach / HMR 时注销卡片、取消订阅并清理样式,重连后自动恢复。
- 状态提示词热更新:从一个非空自定义值切换到另一个非空值时,当前运行状态行立即更新,不再等待宿主重渲染。
- 版本元数据一致:
package.json与package-lock.json根版本统一为 0.1.8。
验证
npm run check全绿,包括 40/40 乱序收敛以及新增的 20 项客户端设置生命周期断言。npm publish --dry-run --access public通过,产物包含 11 个文件。- DSH 0.1.2-rc.1 真机验证:设置卡唯一出现、现有值可读取,原生回合摘要协作正常,插件状态为 active,浏览器无错误。
兼容性
0.1.8 支持 DSH 0.1.2-rc.1+。DSH 0.1.1 用户请继续使用 0.1.6。
v0.1.7: 适配 DSH 0.1.2(修复 #21 启动失败)
v0.1.7 更新日志
适配 DSH 0.1.2-rc.1。修复 #21(0.1.2 下插件无法启动)。
DSH 0.1.2 适配
- 原生回合摘要行协作:DSH 0.1.2+ 自带原生回合摘要行(工具调用 · 消息 · subagent 计数)时,一级行向它让位不再单独显示;插件 overlay(chip / 合并思考行)跟随原生行的开合状态隐藏与恢复;成员行交由宿主 CSS 管理,插件永不触碰。无按钮空壳原生行视为不存在,双方摘要都不丢。
- settings 新 API 兼容:0.1.2 删除了
installSettingsSection/settingsNamespace导出。宿主半改为可选消费者接线(ctx.inject(['settings'])+SettingsProvider#register同构模式),不再 import@deepseek-ai/dsh-settings,避免随上游版本漂移导致加载失败。 - 客户端注入改走
dsh-client-modules:服务全部改为可选(ctx.get()),任何服务缺失只降级设置卡片,不阻塞核心折叠。 - 状态文案兼容:官方运行状态行更新为中文「深度求索中...」,替换逻辑同时匹配新旧文案(
Deep diving.../深度求索中...);宿主追加的用时后缀(如33秒)原样保留。
修复:折叠行下方 16px 幻影间距
正文消息的 think 行被并入前一个块折叠后,其父包装层塌成 0 高度可见空壳;消息体是 flex + gap:16px 容器,空壳仍参与 gap,导致 chip / 已处理行与下方正文之间凭空多出 16px(视觉 34px,上方仅 ~19px)。修复:
- 掏空包装层的发现与对账范围从
block.host推广到每行所属的消息(flow 直接子级),覆盖「think 并入前块」的场景; - 一级收起分支补上对账,收起态不再被
restoreUnusedDisplays逐轮复活。
修复后 chip / 已处理行与下方正文的间距与上方一致(~18px)。
部署(Linux/macOS 用户)
isExpectedDshWeb路径比对不再经过resolve(),跨平台路径样式(CI Linux / Windows fixture、env 覆盖)不再被改写为 cwd 相对路径导致身份核验误判。
兼容性
0.1.7 仅保证 DSH 0.1.2-rc.1+;DSH 0.1.1 用户请继续使用 0.1.6。
v0.1.6: flow 重挂载滚动修复 + npm 市场元信息
v0.1.6 更新日志
修复
- flow 重挂载后滚动容器刷新(#19):React 把 flow 重新挂到新的滚动容器时,贴底钉回不再向旧容器写
scrollTop(按 flow 身份缓存失效)。
其他
- 补充 repository / homepage / bugs 元信息,供 npm 市场与 dsh.so 插件市场链接。
- 适配 DSH 0.1.1.x;0.1.2 用户请升级到 0.1.7。
v0.1.5: 修复长会话滚动抖动并支持跨平台本地部署
v0.1.5 更新日志
滚动性能修复(issue #14)
长会话(90+ 流程节点、56 次 tool-call)滚动到底部时的卡顿与纵向抖动,根因是折叠插件的几何写入与上游 ChatView 的贴底跟随(FOLLOW_THRESHOLD=24)互相拉锯。本版系统性收敛:
- audit 轻量对账(#16):审计循环不再做完整重建,改为对比显示快照(
auditDisplays)做最小重收敛;isRelevantMutation过滤插件自身写入引发的突变,避免自触发循环。 - 快照复用(#17):结构未变时复用上一轮
findBlocks结果;正文缓存(bodyTextCache)按 body 翻转精确失效,不再整表清空。 - markDirty 精确定位(#17):childList 突变经
flowChildOwner归属到具体消息,characterData/attributes 不再触发全量失效。 - 贴底钉回(#17):折叠写入改变 scrollHeight 且视口处于贴底阈值内时,同帧把 scrollTop 钉回新底部;远离底部时不干预。
- parseTurnDuration 记忆化(#17):按边界元素 WeakMap 缓存解析结果,消除流式期间的重复解析。
部署与构建
- 跨平台本地部署(#18):
npm run deploy支持 Windows / Linux / macOS;Unix 端用HOME+npm root -g定位 DSH 包,端口监听核验改用lsof+ps,进程终止走信号。Windows 行为不变。 - lib 产物改为构建生成(#15):
lib/index.js、lib/types/*由build.mjs从src生成,消除手工维护漂移。
自动化测试
- 新增 issue14-followup(快照复用、定向失效、贴底钉回、远离底部不干预)与 deploy-platform(双平台路径解析)回归。
v0.1.4: 优化二级展开动效并修复收起间距竞态
v0.1.4 更新日志
动效与视觉优化
- 二级展开动效统一:移除了 CSS \margin-bottom\ 过渡,消除复用 chip 时的三级行下推现象,统一为空间 1 帧瞬开 + 向上纯净淡入(与上下文注入观感一致)。
- 收起间距精准钉住:手势收起时通过 JS 账本在淡出期间锁定 16px 间距,在最后一条在途渐隐自然结算(settle)后同帧归零,彻底解决收起间距瞬跳缺陷。
- 收起动画竞态防御:修复中间 pass 误清内联 margin 导致的瞬跳竞态;完善反向展开即时清空、合并思考块同步纳入钉住、以及 flow-chip 豁免等边界处理。
自动化测试
- 新增场景 M-1 ~ M-4 完整覆盖正常钉住与中间 pass 保持、反向展开、思考块合并钉住及 flow-chip 豁免逻辑。