启动流程与生命周期
从进程启动到进入 REPL 对话 经历配置加载、认证、插件/MCP 初始化、UI 挂载与 Bootstrap State 恢复。
1. 启动时序(概念)
mermaid
flowchart LR
A[解析 CLI] --> B[Settings 合并]
B --> C[Auth]
C --> D[插件/MCP/Skills]
D --> E[Ink 渲染 REPL]
E --> F[恢复会话 state]2. 主要阶段
| 阶段 | 工作 |
|---|---|
| CLI 解析 | Commander:模式、模型、权限、工作目录等 |
| 配置合并 | 全局 / 项目 / 本地 settings 多源合并(见 12 专题) |
| 认证 | OAuth / API Key,决定可用后端 |
| 扩展加载 | plugins、skills、MCP servers、LSP |
| UI 启动 | Ink root、快捷键、Vim 可选 |
| 状态恢复 | 历史会话、worktree、background session |
3. Bootstrap State
持久化字段包括:会话 id、消息摘要指针、未完成任务等,使重启后可续聊(具体字段以版本为准)。
4. 优雅关闭
捕获 SIGINT/SIGTERM:刷新 telemetry、保存 state、结束子进程与 MCP 连接,避免僵尸 bash/Task。
5. 性能策略
- 工具与命令 延迟加载,减少冷启动。
- 大模块按 feature flag 门控(GrowthBook)。
6. 总结
启动链 = 配置 + 认证 + 扩展 + UI + state;排错先看 settings 与 MCP 是否加载失败。