#1343·cc-haha

[feature] 支持编辑历史 user 消息并从该处回滚重写

Author: yy1588133Created Sep 18, 2026Updated Sep 18, 2026

提交前确认

问题描述

希望 cc-haha 支持在会话中直接编辑历史 user 消息并从该处回滚重写:在任意一条历史 user 消息上提供「编辑」入口,修改其内容后,会话回滚到该条消息之前,并以新内容重新执行该轮。

参考同类工具 Zcode 的交互:user 消息悬停时出现「编辑」按钮,点击后进入编辑态,确认后从该条消息处重新生成。

使用环境

  • 使用方式: 桌面端
  • 操作系统: Windows
  • 系统版本: Windows 11
  • 桌面端版本: 最新版本(设置页 -> 关于 可查看)
  • 安装来源: GitHub Release

使用场景

模型输出中断(如上游截断 finish_reason=length、网络异常)导致该轮回复不可用时,目前只能新建会话或整轮回退后重新描述需求。若能直接编辑该轮 user 消息重发,只需微调措辞或补充约束即可原地恢复,成本最低。

已有能力与差异说明

我确认 cc-haha 已具备以下能力:

  1. 助手会话分叉:assistant 消息处支持 fork 出新会话分支,原会话不变;
  2. 撤销当前轮次文件变更:回合结束后可按 checkpoint 回滚该轮文件改动;
  3. 仅回退对话(#1273、#962,v0.6.0 已发布):纯对话或失败回合可退回该轮之前,不恢复磁盘文件。

以上能力组合后仍无法实现「修改某条 user 消息的内容,再从该条消息处重写该轮」:

  • 「仅回退对话」只能整轮退回,不能编辑消息内容
  • 「助手会话分叉」是产生副本,不是在原会话内原地修改;
  • 「撤销当前轮次」只处理文件,不处理消息文本。

本 issue 申请的即是在现有回滚/检查点机制上补齐这一交互。

期望方案

  • 在历史 user 消息上提供「编辑」入口(如悬停按钮,交互可参考 Zcode);
  • 编辑确认后会话回滚到该条消息之前,以新内容重新执行该轮;
  • 编辑回滚时磁盘文件的处理,建议对齐现有「撤销当前轮次」的 checkpoint 行为(回滚该轮及之后的文件改动),具体策略由维护者定夺;
  • 失败/被截断的轮次同样支持编辑重发。