状态与任务系统

模块存在意义

当 Claude Code 支持多任务、多代理、会话恢复和复杂 UI 之后,就必须有一层明确的状态系统去承接这些变化。否则 UI 和执行逻辑会迅速耦合失控。

关键文件与入口

文件/目录作用
src/state/AppStateStore.ts交互式应用状态的中心定义。
src/state/store.ts状态容器相关实现。
src/tasks/任务生命周期、任务状态和任务输出相关逻辑。
src/history.ts会话历史记录入口之一。

对上游 / 下游的依赖关系

  • 上游:QueryEngine、命令、工具、远程/桥接事件。
  • 下游:UI 渲染、会话恢复、任务展示、历史读取。

运行时扮演的角色

  • 保存当前会话的 UI 状态、远程状态、bridge 状态和任务状态。
  • 支撑任务前台/后台切换、多代理消息视图切换等复杂交互。
  • 为恢复、统计和调试提供状态快照基础。

新读者建议的阅读顺序

  1. src/state/AppStateStore.ts
  2. src/state/store.ts
  3. src/tasks/
  4. src/history.ts

这层的关键理解点

  • AppState 是交互界面的事实来源。
  • 任务系统不是附属功能,而是执行模型的一部分。
  • 很多 UI 组件只是状态投影,因此先理解状态定义再看组件会更清楚。