Files
everything-claude-code/docs/zh-CN/commands/resume-session.md
2026-03-29 21:21:18 -04:00

155 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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-<shortid>-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`,以创建一个新的带日期文件