s08/s15: 将 snip_compact 触发器和目标分离,以避免重复写入转录

作者: JiangYuxin-Jim创建于 2026年9月22日更新于 2026年9月28日

`snip_compact` 在 S08 和 S15 中使用 `max_messages=50` 作为触发阈值和保留的消息数。对于没有工具对交叉切点的历史,第一次压缩会生成正好 50 条消息。添加下一个助理/用户交换后,生成 52 条消息并触发另一次完整转录写入,再次返回 50。由于在每次模型调用之前都会执行准备运行,因此这种情况不仅在一个用户请求内的连续工具使用轮次中,而且在不同的问题中也会发生。每次写入都会将当前整个历史序列化为一个新的 `.transcripts/*.jsonl` 文件,其中存在大量的快照重叠。

内容来源: shareAI-lab/learn-claude-code