跳转到正文
xclaude
文档目录

会话管理

理解会话状态、终端匹配、子代理与恢复机制。

会话状态

钩子驱动状态变化:SessionStart → idle;UserPromptSubmit → prompting;PreToolUse / PostToolUse → working;PermissionRequest → approval;Stop → waiting;SessionEnd → ended。新终端在首个钩子到达前显示 connecting。

LIVE 看板与会话列表使用相同的状态色。3D 视图可选且默认关闭:空闲与等待在休息区,工作在桌前;授权提示闪黄,提问提示为紫色,结束后机器人熄灭。

自动状态修正

  • prompting 在 30 秒内没有钩子与终端输出时变为 waiting;真实 Esc 产生 Stop,不走此路径。
  • waiting 五分钟后变为 idle。
  • approval / input 十分钟后变为 idle;CLI 明确报告仍打开的对话框不会自动过期。
  • working 十五分钟后变为 idle,作为丢失结束事件的保护。
  • Claude Code / Codex 的 connecting 三十秒后变为 idle。
  • 进程消失后变为 ended。默认每十五秒检查,可通过 processCheckInterval 修改。

授权检测

超时推断

PreToolUse 启动计时:Read、Write、Edit、Grep、Glob、NotebookEdit 为 3 秒;AskUserQuestion、EnterPlanMode、ExitPlanMode 为 3 秒;WebFetch/WebSearch 为 15 秒;Bash/Task 为 8 秒。未及时收到 PostToolUse 时,状态变为 approval 或 input。

慢工具会先检查子进程,仍在执行时不报告授权等待。该机制只是推断,长时间自动批准的安装或构建可能短暂显示 approval。bypassPermissions 和 dontAsk 模式会关闭需授权工具的推断计时器。

直接信号

PermissionRequest 在所有密度都启用,比超时推断可靠,收到后立即覆盖状态。中高密度还监听 Notification 的权限提示,作为工具调用期间的补充。

会话匹配

未知会话事件按以下顺序匹配,找到即停止:

  1. 你刚发起的待恢复会话。
  2. AASC 启动终端时注入的 AGENT_MANAGER_TERMINAL_ID,事件字段为 agent_terminal_id。
  3. 同一进程的新会话 ID,例如 clear 或恢复后。
  4. 最近一分钟内创建终端的工作目录。
  5. 处于 connecting 的终端目录。
  6. 代理进程与 shell 的父子关系。
  7. 终端仅有一个会话时,将新 ID 接管到原卡片,避免丢失 SessionStart 后出现重复卡片。

无法匹配时,创建 external 卡片并标记 VS Code、JetBrains、iTerm、Warp、Kitty、Ghostty、Alacritty、WezTerm、Hyper、tmux 或 Terminal。macOS/Linux 每二十秒也会扫描交互式 claude 进程。

无终端的 claude -p、CI、MCP 启动进程不会创建卡片,也不会按目录认领终端。子代理事件和未知会话的 Stop/SessionEnd 会被忽略。同目录多个会话的匹配仍可能出现误关联。

团队与子代理

团队成员是独立会话:优先使用 CLAUDE_CODE_PARENT_SESSION_ID 关联,否则根据父会话 SubagentStart 与十秒内同目录的 SessionStart 推断。3D 视图用连接线展示关系,成员全部结束十五秒后移除团队。

Agent 工具启动的子代理运行在主会话进程内,通过主会话钩子报告类型、任务、状态与工具次数。AGENTS 标签页展示关系与调用记录。点击子代理查看其对话;点击团队成员切换到对应会话。

恢复会话

结束后点击 Resume,历史记录每行也有恢复入口。AASC 优先使用仍打开的旧终端,否则在项目目录中新建:

claude --resume 'session-id' || claude
codex resume 'session-id' || codex

新 SessionStart 关联待恢复记录;两分钟未收到事件则回到 idle。保留标题与分组,CONVERSATION 最多保存五次历史运行。无法恢复时,在原卡片启动新代理;不会使用可能连接到无关对话的 --continue。

Reconnect 为已结束且保存了启动命令的会话新建终端。Restart session 退出代理后重建终端,保留卡片、ID、名称、模型、推理强度和权限模式,中途不显示 ended。

内存与空闲休眠

桌面顶部显示总内存,LIVE 卡片显示该终端、CLI 与 MCP 子进程占用。Settings → ADVANCED → Sleep idle sessions 默认关闭,可选十五分钟至四小时。超时后关闭终端释放内存,卡片保留并标记 Asleep;再次打开或在手机点击 Resume 可恢复。

组织与权限

  • Room:为会话分组,也决定 3D 场景中的房间。
  • Pin:置顶会话。
  • Mute / Alert:控制该会话的声音及提醒。
  • Share:决定其他设备是否能看到该会话,见设备配置。
  • Hands off:禁止中央会话操作,详见中央会话。