卷四 08|restore / session recovery:系统怎么把这条线重新接活¶
导读¶
- 所属卷:卷四:上下文与状态怎么维持系统持续工作
- 卷内位置:08 / 08
- 上一篇:卷四 07|compact / compaction:主动减负机制本体
- 下一篇:卷五:外部扩展与多代理能力
如果卷四只讲到 projection、collapse 和 compact,那么它解释的仍然只是系统怎样防止自己被历史压垮;但卷四真正要回答的是更完整的问题:这套系统怎样在治理之后继续活着。所以最后必须把 restore / session recovery 拉回来。它们不只是把旧消息读一遍,而是把一条会话工作线、连同必要状态与当前工作条件,一起接回当前 runtime。
这篇要回答的问题¶
为什么治理之后还需要恢复与续接,session recovery 又怎样把工作线重新接起来?
这篇要留下的判断是:
卷四真正要解释的,不是系统怎样压短历史,而是它怎样在治理之后把工作线重新接活。
先给恢复链主图¶
flowchart TD
A[会话档案 / state 仍然存在] --> B[整理出可接的恢复包]
B --> C[restore 接回当前 runtime]
C --> D[重新组织当前工作面]
D --> E[工作线继续推进]
这张图就是本篇最该留下的残影:恢复链不是回看过去,而是把一条还能继续工作的线重新接回当前现场。
recovery 不是“把旧聊天翻出来”,而是先整理出可接的工作包¶
恢复链的第一步,不是把 transcript 原样重贴到屏幕上,而是从会话档案里整理出一份还能继续工作的恢复包。
cc/src/assistant/sessionHistory.ts 提供的是分页读取 session events 的能力,这说明系统恢复依赖的是事件线,而不是单一聊天文本。也因此,recovery 关心的重点是:
- 当前要恢复的是哪条 session
- 这条 session 留下了哪些事件和状态线索
- 哪些内容值得进入新的工作起点
所以 recovery 更像 从档案层重新提炼出可工作的入口。
restore 才是“把这份工作包接回当前 runtime”¶
恢复链的第二步才是 restore。cc/src/bridge/createSession.ts 说明 session 可以带着已有 events 被创建出来;这意味着 restore 的重点不是回看过去,而是让当前运行现场重新拥有:
- 一条有效的 session 壳
- 可继续承接的事件历史
- 能重新组织当前工作面的起点
从这个意义上说,restore 更像“把工作包重新落回当前运行现场”,而不是简单“读档”。
图:恢复不是单层动作,而是“读出工作包 -> 接回运行现场”¶
flowchart TD
A[会话档案] --> B[恢复包]
B --> C[restore 到当前 runtime]
C --> D[继续 query / 继续工作]
这张图能把 recovery 和 restore 的分工压清:前者偏读取与整理,后者偏接回与落地。
补图:restore 与 transcript replay 的区别¶
flowchart TD
A[只把旧 transcript 翻出来] --> A1[看见过去发生过什么]
A1 --> A2[不等于当前就能继续工作]
B[recovery / restore] --> B1[整理可接的工作包]
B1 --> B2[接回当前 runtime]
B2 --> B3[重新进入可继续推进的工作线]
这张补图值在它能把 restore 最容易被误解的一点直接打掉:restore 不是重新展示过去,而是把一条还能继续推进的工作线重新接回当前现场。
为什么恢复不是附属功能,而是持续工作闭环的最后一环¶
如果把恢复理解成一个可有可无的附属能力,卷四就会在 07 停住:
- 系统会治理
- 系统会压缩
- 系统会减负
但这还不等于系统真的具备持续工作能力。持续工作真正困难的地方在于:
工作线被治理过、被重组过、被阶段化之后,还能不能重新成为一个可继续推进的现场。
所以 restore / recovery 在卷四里不是“讲完治理以后顺手补一下”的尾声功能,而是这条链最终成立的证据。没有它,前面的 projection、collapse、compact 都只是在说明系统会处理负担;有了它,卷四才能说明系统会把处理过的工作重新接成活线。
把卷四压回一句闭环判断¶
到卷尾,卷四真正留下的不是 8 篇文章目录,而是这句:
Claude Code 之所以能持续工作,不是因为它把历史一直背着走,而是因为它会分清对象边界、构造当前工作面、在过重时治理,并在必要时把这条工作线重新接活。
自然导向后续,但不抢后续职责¶
卷四收在这里,刚好把读者送到后续两卷:
- 卷五继续解释:系统怎样接入 skills、agents、MCP 等外部扩展能力。
- 卷六继续解释:命令、工作流与产品入口怎样把这些能力收成今天的 Claude Code。
但卷四自己的任务到这里已经完成:它解释的不是系统怎样长出更多能力,也不是这些能力怎样被用户入口调度,而是 这套系统为什么能一直工作。
一句话收口¶
restore / session recovery 在卷四里的作用,不是把旧聊天重新读出来,而是把会话档案、当前工作条件与新的运行现场重新接成一条线;它不是附属功能,而是持续工作闭环的最后一环。