# 更新记录 ## 0.4.1 **修掉「合并结果为空」这个最容易被误判成 bug 的情况。** 它其实不是后端出错——是你勾中的对话本身没有内容。DSH 里可以存在「建了但一句话没说」的 空对话,它的日志里只有三条初始化事件(`permission/preset`、`sandbox/mode`、`approval/policy`)。 这种对话在选择面板里和正常对话长得一模一样,勾进去合并,剥掉噪音之后自然什么都不剩。 改了三处: - 选择面板把空对话灰掉、标「空对话」、点了没反应,鼠标悬停会说明原因 - 合并失败时的提示不再是干巴巴四个字,而是逐个列出「这个对话读到 N 条,截取最近 K 轮后剩 M 条」, 读到 0 条就直接告诉你是那个对话没有历史 - 事件层的 `tool/call`、`tool/result` 也一并丢掉(正文里的工具调用块早就剥了,事件层还留着, 宿主会报 `tool/call call_00_xxx has no advertised tool lifecycle`) ## 0.4.0 **合并会话正式可用。** 0.3.1 把它修通了,这一版把它扶正:按钮上不再标「实验」,文档从头讲清楚它装了什么、剥了什么、 什么情况下内容会显得少。 同时补完了几处之前含糊的地方: - README 新增「新对话里到底装了什么」——四类被剥掉的内容各自为什么被剥 - 已知限制重写:加上「逐条写几千条事件要几百毫秒到几十秒,中间没有进度条」 和「同一个对话同时只能有一个写入者(`session/writer-held`)」 - 技术细节那节重写:`/weld` 不再是「自己造文件」,改成讲清楚 `sessionPersistence.create` + `append` + `flush` 三步,以及为什么第一步不能省 - 目录结构更新到当前实际文件 ## 0.3.1 **`/weld` 合并会话终于能用了。** 之前它老是失败:新会话确实出现在侧栏,点开却是「加载失败」。原因是我们在自己拼日志文件, 而宿主对日志的校验非常挑——turn 编号要连续、引用不能指向不存在的事件、assistant 消息要带 `stream` 字段……照着报错猜了四轮结构,一次都没猜对。 现在改成让宿主自己写: - 先 `sessionPersistence.create()` 建日志文件和写句柄(这一步不能省,没有写句柄时 `flush` 会静默什么都不做,事件全留在内存里——账本有 id、磁盘没文件) - 再 `sessions.create()` + 一条条 `append()`,seq 由宿主自己发,天然连续 - 最后 `handle.flush()` 真正落盘 顺带修掉三处只有走这条路才会暴露的问题: - 图片卸载、上下文压缩这类事件的引用会悬空,直接丢掉(`image/offload`、 `compaction/*`) - `assistant/message.data.stream` 不能整段删,重建节点时会报 `stream is not iterable`, 改成留空数组 - header 载荷不要带 `type`(会被判 `unexpected field type`),但必须带 `version` 实测:两个会话各取最近 20 轮 → 8207 条事件 → 1.2 MB 日志,新会话正常打开、能接着聊。 ## 0.3.0 **联合视图只显示你和 AI 说的话** 以前一屏里混着三种噪音,现在都滤掉了: - **AI 的思考过程**:不显示,也不参与合并。之前的判断读的是内容块的 `type` 字段, 实际字段叫 `kind`,所以一条都没命中——这是思考过程一直没被剥掉的真因。 - **工具调用与工具结果**:`[调用 read_image]` 这类行不再出现,几十条连着刷屏的情况没了。 - **系统注入**:``、`Time sampled while preparing turn 12…`、 `Browser time zone for this request…`、`[Compressed conversation section]`、 `Current working directory…` 这些宿主塞给 AI 的内容,以前被当成用户说的话掺上了屏, 现在按整块/逐行规则过滤。 **代价**:源对话里 AI 光调工具不说话的段落,剥完就只剩几行字——看着内容少,是原文本身如此。 ## 0.2.0 **合并时不再带思考过程** `/weld` 生成新对话时剥掉 reasoning(包括 `data.stream` 里那份逐 token 回放)、 剥掉工具内容块与 `tool/call`、`tool/result` 事件、剥掉会话开头重复的初始化事件、 引用去重。实测 588 条事件焊出来 331 KB,带思考时是 5 MB。 ## 0.1.0 首个版本。 - 在对话标签栏里加一个「联合视图」:勾选多个会话,把它们的转录拼成一屏,三种摆法 (按时间排/左右分栏/一问一答对齐) - 只读:不写日志、不进模型上下文、不改动任何会话 - `/weld` 把多个会话焊成一个新会话(实验)