主界面与会话

侧栏的组织方式,以及重命名、导出、分支、归档、回退这些会话操作各自动了什么。

侧栏

  • 新对话:开启一个普通会话。
  • 项目:为一个工作目录建立项目,项目内的会话围绕真实文件和命令展开。普通对话与项目对话分开管理。
  • 最近对话:历史会话列表。
  • 定时任务:定时任务及其运行记录。

会话操作

每个会话支持:重命名、导出、在新任务中继续(从当前会话分支出新会话,标记为「分支会话」)、归档、删除。已归档会话在「设置 → 已归档会话」中查看、搜索、取消归档或删除。

  • 分支是快照:建立分支的那一刻把原会话的记录复制一份,之后两条线各走各的,原会话后面新增的消息不会再流进分支。原会话正在跑时会先等这一轮结束(最多 20 秒)再分支,否则分支只拿到半截对话。也可以从某条消息处分支,只带那条消息之前的内容。分支继承原会话的项目与工作目录。
  • 从某条消息「回退」和「删除之后的内容」不是一回事:回退要把对话回滚到那一轮之前,同时把工作目录里的文件也恢复到进入那一轮时的检查点;删除只动对话,不动文件。
  • 文件检查点默认是关着的,界面上也没有这个开关(只能在引擎配置 ~/.klaus/config.toml 里把 checkpointing 打开)。所以默认情况下「回退」只回滚对话,并明确告诉你没有可用检查点、文件没能恢复——它不是一个能把改坏的代码撤回来的撤销键,真要这么用得先把它开上。
  • 开着的时候,快照记在一个影子 git 仓库里(~/.klaus/checkpoints/<项目指纹>/):工作树指着你的项目,历史却落在影子仓库,所以你自己的 .git、分支、暂存区完全不被碰,项目本身也不需要是 git 仓库(只要机器上有 git)。恢复是破坏性的:已跟踪文件被改回去,未跟踪文件被清掉,快照之后的活儿一并没了。文件恢复只在对话回滚成功之后才执行,否则会出现文件被改回去、对话却还留在后面的错位。
  • 归档不是删除:会话从侧栏移到「设置 → 已归档会话」,可以随时取消归档,也可以从已归档的会话直接分支继续。归档要求这条会话当前没有在跑。