变更收件箱与文件历史
让 AI 改你的稿子,前提是你能看见它改了什么、能撤回。
顶栏的变更按钮就是这个入口。
它记录什么
每一次文件写入都会进账本,不管是谁做的:
- 你在编辑器里的保存
- Agent 的
write/edit/apply_patch - 外部工具直接改磁盘(由文件监听对账补记)
账本是只追加的事件流加内容寻址快照——记录不会被改写,同样的内容不会存两份。
收件箱
Agent 输入框上方有一张默认收起的变更卡片,展开就能看到这一轮改了哪些文件。要深度审查就打开完整的历史对话框。
每条变更你可以:
- 接受:确认这次改动,从待办里消掉
- 撤回:把文件还原到改动前
接受位点是按用户、按路径记的,会话游标是按会话记的——所以多个人、多个会话同时工作时各自的"我看过哪些"互不干扰。
撤回和恢复本身也是一等事件,会重新出现在提醒通道里。
Agent 那边看到什么
Agent 每轮会收到一份文件变更通知,Git 风格的英文摘要,告诉它上一轮之后有哪些文件被谁改了。
这个通知的详细程度按 profile 分档:leader 收完整版,writer 收精简版,Inline AI 不收。单文件 diff 有长度上限(默认 512 行),超了只报事实不贴全文。
有两类路径只报事实、不给内容:敏感路径和已删除路径。它们不会承诺出现在收件箱里,正文也不会在服务端被读出来。
数据在哪
每个项目一个独立的历史库:
text
<项目>/.nbook/history.sqlite保留策略是分层稀疏的——近期全量保留,更早的按天保留末版。参数可配。
分享前必读
history.sqlite 含全文快照,包括你已经删掉的内容。项目下载包会包含它的快照,前端会提示这一点。
要把作品发给别人,直接发 manuscript/ 下的 Markdown 文件。它不会进入可分享日志包——那个走白名单,只有日志。详见 隐私边界。
还没做的部分
单文件时间线视图和删除找回的完整界面还没做完,当前主要入口是收件箱。底层事件流已经支持这两个视图。