10 月 26 日发生了什么变化
这一变化只是冗长发布说明中的一行。在数十项修复中,v2.1.311 列出了“改进了 /teleport 和 claude --teleport,以便在从最后一次压缩加载已压缩的云端会话时发出警告,因为其摘要的消息不在本地副本中”。
这句话中有两个细节至关重要。首先,警告是针对已压缩的会话,因此从未压缩过的短云端会话不受影响。其次,主体是本地副本。claude.ai/code 上的云端会话仍然存在;说明描述的是你的终端会话开始时包含的内容。
同一版本还修复了压缩本身的一个相关问题:“修复了在会话早期编辑过 MEMORY.md 和 CLAUDE.md 文件后,Claude 在自动压缩后立即看到过时的文件内容的问题”。它还更改了处理缺失摘要的方式:“当模型的回复中没有摘要时,Claude Code 现在通常会在替换对话之前再次请求摘要”。这两点都指向同一件事:压缩后,摘要是会话运行的基础,因此 Anthropic 正在收紧进入摘要的内容,并在你继承摘要时使其可见。
teleport 带到终端的内容
Teleport 是将云端会话移动到你自己机器上的方式。Claude Code 的云端会话文档列出了几种操作方法:运行 claude --teleport 使用会话选择器,或运行 claude --teleport <session-id> 指定特定会话;在现有 CLI 会话中运行 /teleport 或 /tp;在 /tasks 中的后台会话上按 t;或从 claude.ai/code 的会话菜单中复制命令。
文档描述了接下来的过程:“当你 teleport 一个会话时,Claude 会验证你是否在正确的仓库中,从云端会话获取并检出分支,并将完整的对话历史记录加载到你的终端。”
这句话是针对一般情况编写的。结合 10 月 26 日的发布说明来看,“完整的对话历史记录”指的是会话当前持有的历史记录。如果云端会话已压缩,该历史记录将从压缩摘要开始,之前的消息则不属于本地副本。
文档还明确指出结果是一个独立的副本:“终端会获得会话的专属副本:在那里的新工作将保持在本地,不会出现在 claude.ai 或 Claude 移动应用上的云端会话中。”
它还将 teleport 与 resume 区分开来。--resume “从本机的本地历史记录中重新打开对话,且不列出云端会话”,而 teleport 则拉取云端会话及其分支。如果你正在寻找在本机上开始的会话,我们的查找并恢复 Claude Code 会话历史指南涵盖了这方面的内容。
teleport 首先检查的内容
在满足四个要求之前,teleport 不会启动。文档的表格列出了这些要求:
- 干净的 git 状态。 “你的工作目录必须没有未提交的更改。如果需要,Teleport 会提示你暂存 (stash) 更改。”
- 正确的仓库。 你从同一个仓库的检出副本中运行它,而不是从 fork 中运行。
- 分支可用。 “云端会话的分支必须已推送到远程仓库。”
- 相同账号。 你必须登录到与云端会话中使用的相同的 claude.ai 账号。
这些检查是为了保护代码。其中没有一项是关于对话的,这就是为什么 10 月 26 日的警告很重要:代码会完全按照云端会话留下的状态到达,而对话则以会话当前持有的任何形式到达。
为什么长云端会话可能已经压缩
压缩是 Claude Code 维持长会话运行的方式。/compact 命令“总结对话以释放上下文”,当窗口填满时,自动处理程序也会执行同样的操作。
云端会话的压缩触发时间可能比你预期的要早。文档解释道:“云端会话会自行设置 CLAUDE_AUTOCOMPACT_PCT_OVERRIDE,因此压缩会在自动压缩窗口的中途触发,而不是在窗口填满时触发。”
你无法通过环境设置来推迟这一过程。下一句写道:“该值会覆盖你在环境变量中添加的值,因此在那里添加变量不会改变压缩触发的时间。”你可以改变的是窗口本身,方法是在环境变量中设置 CLAUDE_CODE_AUTO_COMPACT_WINDOW,或者在未设置该变量的会话中运行带有 Token 计数的 /autocompact。
因此,一个运行了长任务、读取了大量文件或经历了多轮测试的云端会话,在你 teleport 它之前,很有可能已经至少压缩过一次。新的警告会告诉你何时属于这种情况。
压缩保留了什么,总结了什么
压缩不会抹除会话。Claude Code 的上下文窗口文档中有一个关于每种内容处理方式的表格,其中大部分内容会自动恢复:
- 项目根目录的 CLAUDE.md 和无作用域规则 会“从磁盘重新注入”。
- 自动记忆 (Auto memory) 也会“从磁盘重新注入”。
- Claude 在计划模式下编写的计划 会“从磁盘重新注入”。
- 带有
paths:前置内容的规则和嵌套的 CLAUDE.md 文件 会在 Claude 触及匹配文件时按需重新加载。 - Claude 读取或编辑过的文件:“Claude Code 会重新读取最多五个文件,按最近修改的时间排序”。
无法按原样恢复的是对话。文档直接描述了这一过程:“当长会话压缩时,Claude Code 会总结对话历史以适应上下文窗口。”表格还将“早期添加的钩子 (hooks) 上下文”列为“与对话的其余部分一起总结”。
在实践中,仅存在于对话中的内容是你大声说出来的那些:你拒绝某种方法的原因、你要求 Claude 处理的边缘情况、测试运行中的确切错误消息、你在第一小时内提到过一次的约束。这些是摘要可能会缩减或遗漏的细节。我们的如何引导 Claude Code 自动压缩保留所需内容指南涵盖了在会话仍在运行时如何引导摘要生成。
teleport 后文件从哪里来
有一点很容易被忽略。重新注入的文件来自磁盘,而在 teleport 之后,磁盘就是你的机器。项目 CLAUDE.md 位于你刚刚检出的分支中,因此它与云端会话使用的文件相同。自动记忆则是另一回事。Claude Code 的记忆文档指出“自动记忆是机器本地的”且“文件不会跨机器或云环境共享”。因此,你的终端会话加载的自动记忆是你电脑上的那份。
人们首先尝试的操作
误以为警告意味着出了问题。 并非如此。它只是告诉你会话已被压缩,这对于长时间的云端工作是正常的。代码和摘要都是完整的。
在终端中向上滚动以查找早期消息。 本地副本从最后一次压缩开始,因此被总结的消息不在那里,无法通过滚动找到。
在云端环境中提高压缩阈值。 文档称云端会话自身的设置会覆盖你在那里添加的任何设置。
在 teleport 后通过手机进行引导。 Remote Control 文档指出,当你使用 /teleport 拉取云端会话时,“连接的设备不会收到拉取对话的早期历史记录。”新消息是双向流动的;但早期的历史记录不会出现在设备上。
期望两个副本保持同步。 终端中的新工作“保持在本地,不会出现在云端会话中”。如果你在两个地方同时进行,你将拥有两个独立的对话。
解决方法:在 teleport 前写下重要内容,落地后检查摘要
第 1 步:在拉取云端会话前要求其提供交接说明
当会话仍在云端时,要求 Claude 编写一份简短的交接说明:目标、已完成的工作、进行中的工作、已做出的决定及其原因、已排除的方案以及下一步计划。要求它包含你早期说过的任何仍然适用的内容。这条消息会在任何已经发生的压缩之后发出,因此它属于你的本地副本会原样接收的近期消息。
如果会话很长,请先运行带有侧重点的 /compact,例如要求它保留测试结果和决定。有侧重点的摘要会保留你选择的内容,而不是由自动程序猜测哪些内容重要。我们的编写交接提示词指南中有一个可以粘贴的模板。
第 2 步:将长期规则移入会话会重新加载的文件中
任何在任务剩余部分都应适用的内容都应存放在文件中,而不仅仅是在对话中。关于仓库的规则应放在项目 CLAUDE.md 中,提交这些规则意味着它们会随分支一起到达。压缩表显示项目根目录的 CLAUDE.md 会从磁盘重新注入,因此写在那里的规则在压缩和 teleport 后都能幸存。
在 teleport 之前推送带有这些更改的分支。teleport 检查要求分支必须在远程仓库中,它会获取那里的任何内容。
第 3 步:在继续之前阅读到达的内容
在 teleport 之后,如果你看到压缩警告,请先问一个问题:要求 Claude 重述目标、当前状态、它正在遵循的决定以及下一步计划。将其与第 1 步中的交接说明进行对比。如果遗漏了某些内容,请在下一条消息中添加或写入 CLAUDE.md。
然后决定在哪里继续任务。文档的原话就是原因:终端中的工作保持在本地。选择一个地方继续,并将另一个副本视为历史记录。要继续从手机引导,请在本地会话中启动 /remote-control。
在 MemoryLake 中设置
Teleport 移动的是会话及其分支。围绕工作的上下文、你确定的惯例、跨越多个会话的决定、你原本会重复的偏好,部分存在于可能被压缩的对话中,部分存在于一台机器的文件中,部分存在于留在该机器的记忆中。
MemoryLake 是一个记忆层,用于将这些上下文保存在你维护的一个列表中,供 Claude Code 和你连接的其他助手(如 ChatGPT 和 Codex)使用。
你自己用自己的语言编写条目。不会从你的 Claude Code 会话、云端会话、自动记忆、CLAUDE.md 文件或任何供应商的存储中读取、写入或删除任何内容。对于工作仓库,请遵循你组织关于在仓库之外保留内容的政策。
第 1 步:创建 API 密钥
登录并从控制面板生成密钥。该密钥属于你的 MemoryLake 工作区,与你的 Claude 账号是分开的。

第 2 步:上传你的第一条记忆
从你在解决方法的第 1 步中得到的交接决定开始,即那些既适用于当前任务也适用于下一个任务的决定。每个条目一个要点,注明日期,并贴上所属仓库的标签。

第 3 步:连接你的 AI 和代理
连接 Claude Code 和你使用的其他助手。无论会话是在云端运行、在笔记本电脑上运行,还是在 teleport 之后运行,相同的上下文都可用。

这在实践中改变了什么
第一个区别是警告不再令人感到意外。你知道长云端会话可能已经压缩,并且你知道你的终端是从该摘要开始的。
第二个区别是你关心的内容不会仅存在于早期消息中。交接说明和文件承载了这些内容,并且两者都能在压缩和 teleport 中幸存。
第三个区别是你选择在哪里继续工作。一个副本向前推进;另一个副本作为记录。如果你还从 Claude 应用 fork 了一个远程会话,我们的fork Claude Code 远程会话指南涵盖了针对此类副本的相同问题。
teleport Claude Code 云端会话的最佳实践
假设长云端会话已经压缩。 云端会话会设置自己的压缩阈值,并在窗口填满之前触发。
在会话仍在云端时请求交接说明。 它会成为你的终端接收的历史记录的一部分。
在长会话结束前进行有侧重点的压缩。 告诉它要保留什么。
将长期规则提交到项目 CLAUDE.md。 它在压缩后会从磁盘重新注入,并随分支一起到达。
在 teleport 前推送。 分支必须在远程仓库中。
在继续之前阅读重述的计划。 这是检查摘要保留了什么内容的最快方法。
在一个地方继续。 终端副本和云端会话不会同步。
结论
Teleport 将 Claude Code 云端会话的分支和对话带入你的终端。自 v2.1.311 起,当该会话已被压缩时,它还会发出警告,因为本地副本从最后一次压缩开始,且被总结的消息不被包含在内。云端会话在设计上会在窗口中途压缩,因此这适用于大多数长云端工作。
无论哪种方式,代码都是安全的。需要关注的是对话:你曾经说过的决定、约束和细节。在 teleport 之前请求交接说明,提交应在任务结束后继续存在的规则,并在到达后检查重述的计划。如果你离开了长会话并返回到摘要而不是 teleport,我们的Claude Code 空闲压缩指南涵盖了这种情况。