| name | log-compress |
| description | 压缩对话留痕日志 —— 把 conversation-log 里较早的逐条记录浓缩成简短摘要,近期记录保持原样。由 UserPromptSubmit hook 在到达压缩周期时提醒触发,也可手动调用。 |
log-compress — 留痕日志压缩
把 cctrail 留痕目录下的逐条记录浓缩,避免日志无限膨胀,
同时保留"用户找我做过什么"的脉络。
留痕目录默认在 ~/.claude/cctrail/conversation-log/
(若设了 CCTRAIL_HOME / CCTRAIL_PER_PROJECT 则随之变化)。
步骤
- 列出留痕目录下的月度日志文件(
YYYY-MM.md),逐个读取。
- 按时间划分每条记录:
- 近 5 天的记录:原样保留,不要改动。
- 更早的记录:按天 / 按主题归并浓缩 —— 每天压成 1~3 行,
抓住"用户要做什么 + 结果如何",丢掉寒暄、过程细节、回答原文。
- 重写日志文件:
- 顶部一段
## 历史摘要,放浓缩后的早期记录。
- 下方保留近 5 天的逐条原文(
- HH:MM 问:… / ↳ 答:…)。
- 更新压缩标记:把当前时间以 ISO 格式(
YYYY-MM-DDTHH:MM:SS)
写入留痕目录下的 .last-compressed,覆盖原内容 —— hook 据此判断下次周期。
- 若日志本就很短、没有 5 天前的记录可压:只更新
.last-compressed,不改日志内容。
原则
- 压缩是为了"可读的脉络",不是删除 —— 浓缩后仍要能看出当时在做什么。
- 不臆造、不补充日志里没有的内容。
- 若日志里不慎混入敏感信息(token / 密码 / key),压缩时顺手删除。
- 触发周期由 hook 的
CCTRAIL_COMPRESS_DAYS 控制(默认每天 1 次);
"近 5 天原样保留" 是浓缩窗口,与触发周期是两件事,无需同步。
但该窗口要与 SessionStart 注入的「近 N 天」(CCTRAIL_RECENT_DAYS,默认 5) 对齐:
这样历史摘要与近 N 天原文无缝衔接,注入里不留盲区。改一个就同步改另一个。