状态与任务系统
模块存在意义
当 Claude Code 支持多任务、多代理、会话恢复和复杂 UI 之后,就必须有一层明确的状态系统去承接这些变化。否则 UI 和执行逻辑会迅速耦合失控。关键文件与入口
| 文件/目录 | 作用 |
|---|---|
src/state/AppStateStore.ts | 交互式应用状态的中心定义。 |
src/state/store.ts | 状态容器相关实现。 |
src/tasks/ | 任务生命周期、任务状态和任务输出相关逻辑。 |
src/history.ts | 会话历史记录入口之一。 |
对上游 / 下游的依赖关系
- 上游:QueryEngine、命令、工具、远程/桥接事件。
- 下游:UI 渲染、会话恢复、任务展示、历史读取。
运行时扮演的角色
- 保存当前会话的 UI 状态、远程状态、bridge 状态和任务状态。
- 支撑任务前台/后台切换、多代理消息视图切换等复杂交互。
- 为恢复、统计和调试提供状态快照基础。
新读者建议的阅读顺序
src/state/AppStateStore.tssrc/state/store.tssrc/tasks/src/history.ts
这层的关键理解点
- AppState 是交互界面的事实来源。
- 任务系统不是附属功能,而是执行模型的一部分。
- 很多 UI 组件只是状态投影,因此先理解状态定义再看组件会更清楚。