会话管理
理解会话状态、终端匹配、子代理与恢复机制。
会话状态
钩子驱动状态变化: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 的权限提示,作为工具调用期间的补充。
会话匹配
未知会话事件按以下顺序匹配,找到即停止:
- 你刚发起的待恢复会话。
- AASC 启动终端时注入的 AGENT_MANAGER_TERMINAL_ID,事件字段为 agent_terminal_id。
- 同一进程的新会话 ID,例如 clear 或恢复后。
- 最近一分钟内创建终端的工作目录。
- 处于 connecting 的终端目录。
- 代理进程与 shell 的父子关系。
- 终端仅有一个会话时,将新 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 可恢复。