Continue CLI 如何恢复或分叉之前的会话?
【免费下载链接】continueopen-source coding agent项目地址: https://gitcode.com/GitHub_Trending/co/continue
你在终端里用 Continue CLI(cn)跑一个多步骤任务,中途中断了:想接着上次的对话继续,或者想从某次历史对话的某个点另起一条分支实验,而不用重新粘贴上下文。cn提供了两条对应的路径——--resume用于恢复上一次会话,--fork <sessionId>用于从已有会话分叉出新会话。两种模式(TUI 交互模式和 headless 模式)都有恢复入口。
恢复最近一次会话
--resume恢复的是最近一次会话(quickstart 的常用标志表中对该标志的说明就是 "Resume the most recent session")。有两种用法:
启动时直接带上标志:
# Resume the most recent session cn --resume或者已经进入会话后,用斜杠命令切换回去:
> /resume恢复的效果是完整的对话历史被还原,agent 记得之前的上下文,可以直接接着原来的任务继续(来源:tui-mode 文档)。
Headless 模式下恢复
如果你在脚本或自动化里用cn -p(headless 模式),也可以恢复会话而不带新的交互输入:
cn -p --resume文档对这个用法的说明是:它会重放(replay)之前会话的历史,适合在自动化场景里检查过往结果(来源:headless-mode 文档)。注意 headless 模式的一般规则是-p需要一个 prompt,而--resume属于例外之一——--resume本身就允许在无新输入时运行(CLI 的报错提示中也给出了cn -p --resume这个用法示例)。
从已有会话分叉
分叉用于"不改动原会话历史,从它的上下文另开一条线"。两个入口:
会话内用
/fork:在 TUI 里输入/fork,它会基于当前历史创建一个分叉会话命令。命令的实际输出形如:cn --fork <sessionId>其中
<sessionId>是当前会话的真实 ID——/fork会把带上了具体 session ID 的完整命令打印出来(并复制到剪贴板),你无需自己查找或构造 session ID,直接把输出的命令在终端运行即可进入分叉会话(实现见 slashCommands.ts)。启动时直接指定:
cn --fork <sessionId>--fork标志的定义是 "Fork from an existing session ID"(见 CLI 入口)。<sessionId>是你要替换的占位符:替换成/fork命令输出的那串 session ID,或者你自己已知的历史会话 ID。
限制与常见报错
CLI 在参数校验层对两个标志做了硬性约束(见 flagValidator.ts),触发时会直接报错退出,不会进入会话:
--resume和--fork不能同时使用。两者一起出现时报错:Error: Cannot use both --resume and --fork flags together--fork必须带 session ID,留空或只给空格时报错:Error: --fork requires a session ID (e.g., --fork abc123)--resume恢复的是"最近一次"会话;文档中描述的恢复范围就是这个,没有提供按任意会话 ID 恢复的参数,需要指定历史会话时用--fork。
验证恢复是否生效
判断标准直接来自文档描述的行为:执行cn --resume(或/resume)后进入的会话中,完整的对话历史应已还原,agent 在回答中能引用此前的上下文(例如你之前让它修改过的文件、约定过的方案)。如果 agent 回答表现得"失忆",说明恢复的不是你想要的那次会话——--resume只指向最近一次,此时改用/fork输出带明确 session ID 的命令来定位正确的历史。
【免费下载链接】continueopen-source coding agent项目地址: https://gitcode.com/GitHub_Trending/co/continue
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考