--- description: 从 ~/.claude/sessions/ 加载最新的会话文件,并从上次会话结束的地方恢复工作,保留完整上下文。 --- # 恢复会话命令 加载最后保存的会话状态,并在开始任何工作前完全熟悉情况。 此命令是 `/save-session` 的对应命令。 ## 何时使用 * 开始新会话以继续前一天的工作时 * 因上下文限制而开始全新会话后 * 当从其他来源移交会话文件时(只需提供文件路径) * 任何拥有会话文件并希望 Claude 在继续前完全吸收其内容的时候 ## 用法 ``` /resume-session # 加载 ~/.claude/sessions/ 目录下最新的文件 /resume-session 2024-01-15 # 加载该日期最新的会话 /resume-session ~/.claude/sessions/2024-01-15-session.tmp # 加载特定的旧格式文件 /resume-session ~/.claude/sessions/2024-01-15-abc123de-session.tmp # 加载当前短ID格式的会话文件 ``` ## 流程 ### 步骤 1:查找会话文件 如果未提供参数: 1. 检查 `~/.claude/sessions/` 2. 选择最近修改的 `*-session.tmp` 文件 3. 如果文件夹不存在或没有匹配的文件,告知用户: ``` 在 ~/.claude/sessions/ 中未找到会话文件。 请在会话结束时运行 /save-session 来创建一个。 ``` 然后停止。 如果提供了参数: * 如果看起来像日期 (`YYYY-MM-DD`),则在 `~/.claude/sessions/` 中搜索匹配 `YYYY-MM-DD-session.tmp`(旧格式)或 `YYYY-MM-DD--session.tmp`(当前格式)的文件, 并加载该日期最近修改的版本 * 如果看起来像文件路径,则直接读取该文件 * 如果未找到,清晰报告并停止 ### 步骤 2:读取整个会话文件 读取完整的文件。暂时不要总结。 ### 步骤 3:确认理解 使用以下确切格式回复一份结构化简报: ``` 会话已加载:[文件的实际解析路径] ════════════════════════════════════════════════ 项目:[文件中的项目名称/主题] 我们正在构建什么: [用你自己的话总结 2-3 句话] 当前状态: PASS: 已完成:[数量] 项已确认 进行中:[列出进行中的文件] 未开始:[列出计划但未开始的文件] 不应重试的内容: [列出每个失败的方法及其原因——此部分至关重要] 待解决问题/阻碍: [列出任何阻碍或未解答的问题] 下一步: [如果文件中已定义,则列出确切下一步] [如果未定义:"未定义下一步——建议在开始前共同回顾'尚未尝试的方法'"] ════════════════════════════════════════════════ 准备就绪。您希望做什么? ``` ### 步骤 4:等待用户 请**不要**自动开始工作。请**不要**触碰任何文件。等待用户指示下一步做什么。 如果会话文件中明确定义了下一步,并且用户说"继续"或"是"或类似内容 — 则执行该确切步骤。 如果未定义下一步 — 询问用户从哪里开始,并可选择性地从"尚未尝试的内容"部分提出建议。 *** ## 边界情况 **同一日期有多个会话** (`2024-01-15-session.tmp`, `2024-01-15-abc123de-session.tmp`): 加载该日期最近修改的匹配文件,无论其使用的是旧的无ID格式还是当前的短ID格式。 **会话文件引用了已不存在的文件:** 在简报中注明 — "WARNING: 会话中引用了 `path/to/file.ts`,但在磁盘上未找到。" **会话文件来自超过7天前:** 注明时间间隔 — "WARNING: 此会话来自 N 天前(阈值:7天)。情况可能已发生变化。" — 然后正常继续。 **用户直接提供了文件路径(例如,从队友处转发而来):** 读取它并遵循相同的简报流程 — 无论来源如何,格式都是相同的。 **会话文件为空或格式错误:** 报告:"找到会话文件,但似乎为空或无法读取。您可能需要使用 /save-session 创建一个新的。" *** ## 示例输出 ``` SESSION LOADED: /Users/you/.claude/sessions/2024-01-15-abc123de-session.tmp ════════════════════════════════════════════════ 项目:my-app — JWT 认证 构建目标: 使用存储在 httpOnly cookie 中的 JWT 令牌实现用户认证。 注册和登录端点已部分完成。通过中间件进行路由保护尚未开始。 当前状态: PASS: 已完成:3 项(注册端点、JWT 生成、密码哈希) 进行中:app/api/auth/login/route.ts(令牌有效,但 cookie 尚未设置) 未开始:middleware.ts、app/login/page.tsx 需避免的事项: FAIL: Next-Auth — 与自定义 Prisma 适配器冲突,每次请求均抛出适配器错误 FAIL: localStorage 存储 JWT — 导致 SSR 水合不匹配,与 Next.js 不兼容 待解决问题 / 阻碍: - cookies().set() 在路由处理器中是否有效,还是仅适用于服务器操作? 下一步: 在 app/api/auth/login/route.ts 中 — 使用以下方式将 JWT 设置为 httpOnly cookie: cookies().set('token', jwt, { httpOnly: true, secure: true, sameSite: 'strict' }) 随后使用 Postman 测试响应中是否包含 Set-Cookie 标头。 ════════════════════════════════════════════════ 准备继续。您希望做什么? ``` *** ## 注意事项 * 加载时切勿修改会话文件 — 它是一个只读的历史记录 * 简报格式是固定的 — 即使某些部分为空,也不要跳过 * "不应重试的内容"必须始终显示,即使它只是说"无" — 这太重要了,不容遗漏 * 恢复后,用户可能希望在新的会话结束时再次运行 `/save-session`,以创建一个新的带日期文件