Skip to content

Feat/upgrade agent#13

Merged
echoVic merged 43 commits intomainfrom
feat/upgrade-agent
Apr 12, 2026
Merged

Feat/upgrade agent#13
echoVic merged 43 commits intomainfrom
feat/upgrade-agent

Conversation

@echoVic
Copy link
Copy Markdown
Owner

@echoVic echoVic commented Apr 12, 2026

描述

变更类型

  • 🐛 Bug 修复 (non-breaking change)
  • ✨ 新功能 (non-breaking change)
  • 💥 破坏性变更 (fix or feature that would cause existing functionality to not work as expected)
  • 📝 文档更新
  • 🔧 配置/构建变更
  • ♻️ 代码重构
  • 🧪 测试相关

关联 Issue

Closes #

变更内容

测试

  • 本地测试通过
  • 添加了相关测试用例
  • 所有现有测试通过 (npm test)

检查清单

  • 我已阅读 贡献指南
  • 代码风格符合项目规范 (npm run check)
  • 类型检查通过 (npm run type-check)
  • 提交信息符合 Conventional Commits 规范
  • 已更新相关文档(如适用)

截图/录屏

其他说明

echoVic and others added 30 commits April 2, 2026 20:01
- 将包管理工具从pnpm迁移到bun,更新相关配置文件和脚本
- 修改CI工作流使用bun替代pnpm
- 更新文档中所有pnpm命令为bun命令
- 添加bun.lockb文件并删除pnpm相关锁定文件
- 调整项目结构以适配bun工作区
- 优化依赖管理配置和安全审计流程
将dev和dev:cli脚本中的路径从使用--filter改为直接进入packages/cli目录执行
重构 agent 执行循环为 AsyncGenerator 模式,提供更灵活的事件处理和流控制能力。新增 drainLoop 工具函数用于简化生成器消费,支持在不需要逐事件处理的场景下直接获取最终结果。同时实现了 StreamingToolExecutor 来优化工具调用的并发执行。

主要变更包括:
1. 将原 executeLoop 重构为基于生成器的实现
2. 添加 drainLoop 工具函数用于消费生成器
3. 实现 StreamingToolExecutor 处理流式工具调用
4. 更新所有调用点适配新接口
5. 添加完整的类型定义和单元测试
添加以下功能以优化上下文管理:
1. 实现电路断路器机制防止连续压缩失败
2. 添加轻量级snip压缩和反应式紧急压缩
3. 引入工具结果大小控制功能
4. 在循环执行中集成压缩和预算逻辑
- 在 ChatConfig 接口中添加 fallbackModel 字段用于模型降级
- 在 ChatResponse 和 StreamChunk 接口中添加 finishReason 和 modelFallback 字段
- 实现模型降级逻辑,当遇到 429/529/503 错误时自动切换到备用模型
- 添加最大输出令牌恢复机制,当遇到长度限制时自动重试
在 agent 循环中实现 token 预算跟踪,当检测到递减收益时停止续写
支持模型降级时的回调通知,清理流式内容并重置工具执行器状态
重构 processStreamResponse 为生成器函数,优化事件处理流程
添加 CompactResult 类型以区分不同压缩结果
- 将 LoopEvent 拆分为更细粒度的 StreamEvent、ToolEvent、SystemEvent 和 DomainEvent
- 统一所有事件中的 type 字段为 kind 字段
- 合并 compaction_start 和 compaction_end 为 compaction 事件
- 移除冗余的事件类型如 content 和 thinking
- 添加 exhaustive check 确保事件处理完整性
feat(agent): 实现执行循环生成器测试
feat(agent): 添加流式工具执行器测试
feat(context): 新增响应式压缩测试
feat(context): 添加令牌预算测试
feat(context): 实现工具结果预算测试
feat(services): 添加Vercel AI聊天服务测试
修复 StreamingToolExecutor 中的信号处理逻辑,合并 discard 和用户取消信号
在 executeLoopGenerator 中重置 maxOutputRecoveryCount 计数器
更新测试用例以匹配新的工具调用类型检查
将 executeLoopGenerator 中的本地 messages 可变数组彻底删除,
所有消息读写统一通过 ConversationState 管理,避免 messages 与
context.messages 双源状态不同步的问题。

- ConversationState 新增 appendUser/appendAssistant/appendToolResult/
  appendControl/getMessagesForLLM/getHistory 语义化 API
- appendControl('system', ...) 抛出异常,防止误注入根系统提示
- 循环体用 try/finally 包裹,finally 中 state.writeback() 确保
  所有退出路径(return/throw/abort)都将消息回写到 context.messages
- 压缩检查前先 writeback 同步 context.messages,压缩后用
  state.replaceHistory() 同步回 state
- index.ts 导出 ConversationState 和 isRootSystemPrompt
appendBoth 同时推入 _history 和 _pending,commitPending 又会把 _pending
合并到 _history,导致消息在 history 中出现两次。重命名为 appendToHistory
并只推入 _history,因为 toLLMMessages() 已包含 history,LLM 可见。
- StreamingToolExecutor 新增 epoch 字段和 activeAborts Map,discard() 时
  递增 epoch 并 abort 所有 per-tool signal,防止旧世代工具结果泄漏
- executeOne() 捕获启动时 epoch,工具返回后检查 epoch 一致性
- 流式预启动逻辑改为只看 STREAMING_PRELAUNCH_ALLOWLIST(9 个纯读工具),
  完全删除对 isConcurrencySafe 的依赖
- createTool 中 isConcurrencySafe 默认值从 true 改为 false
- 所有内置工具显式声明 isConcurrencySafe(true: 纯读;false: 写/执行/阻塞)
- ExecutionPipeline 文件锁语义不变,仍只用 !tool.isConcurrencySafe && params.file_path
- processStreamResponse 的 modelFallback 分支补充 chunkCount = 0 重置
- 新增 streaming-tool-fallback.test.ts 和 execution-pipeline-filelock.test.ts
- 删除死代码 discarded 字段(epoch guard 已覆盖其意图)
- 修复 combineAbortSignals fallback 路径的 listener 泄漏
- 提取 makeAbortResult 辅助方法消除重复代码
提取 executeLoopGenerator 中的 completion、持久化、domain side effect 逻辑
为可测试的独立模块,并修复四个确定的语义 bug。

新模块:
- completionPolicy.ts: checkOutputRecovery/checkIncompleteIntent/checkStopHook
- conversationPersistence.ts: saveUserMessage/saveAssistantMessage/saveToolUse/saveToolResult/saveCompaction
- toolDomainPolicy.ts: handleTodoWrite/handleSkillActivation/extractModelSwitch/applyToolDomainEffects

Bug fixes:
1. checkOutputRecovery: finishReason=length 且 recovery 达上限时标记 truncated 而非静默放过
2. checkIncompleteIntent: 用显式 retryCount 替代滑动窗口,只检测尾部 200 字符,排除 code block
3. checkStopHook: 增加 Promise.race + 30s timeout,超时按 shouldStop:true 处理
4. executeLoopGenerator: 新增 incompleteIntentRetryCount,正常完成时归零

其他改进:
- LoopResult.metadata 新增 outputTruncated 字段
- UI drainLoop 返回后检查 outputTruncated 追加截断告警
- headless 模式输出截断告警到 stderr
- server session.completed 事件追加 outputTruncated 字段
- 重复 abort 检查收敛为 makeAbortResult helper
- checkStopHook 中 hookPromise 先完成时清理定时器,防止 Node 进程无法优雅退出
- 删除 StopHookAction 中不可达的 'none' 变体
- 新增 StreamOptions 接口,仅保留控制参数,不承载事件回调
- StreamEvent 增加 content_complete 和 thinking_complete 事件
- stream_end 添加 JSDoc,明确其为 per-turn 终止信号
- executeLoopGenerator 非流式路径补发完整事件序列
- Agent.chatStream() 接管原 chat() 的 AsyncGenerator 实现
- Agent.chat() 改为兼容性包装(yield* chatStream),Phase 4 将改为 Promise
- runAgenticLoop() 内部委托到 chatStream()
- MockAgent 同步更新,新增 chatStream() 方法
- 消费者 exhaustive switch 补充新事件 kind
- 非流式消费者 (print, git, init) 改为 drainLoop(agent.chatStream())
- BackgroundAgentManager 直接使用 chatStream()
- SubagentExecutor/types 收敛为 onEvent 统一回调
- ACP/server 迁移到 chatStream(),保持外部协议不变
- headless/UI 适配 content_complete/thinking_complete 事件
- sessionSlice 新增 discardStreamingMessage()
- UI model_fallback 分支清理两层缓冲
- LoopOptions 删除 13 个事件回调字段
- 新增 subagent-event-forwarding 和 event-protocol 测试
spec review 要求将 5 个命名回调(onToolStart, onToolResult, onContentDelta,
onThinkingDelta, onStreamEnd)彻底删除,只保留 onEvent 统一回调。
同步清理 SubagentExecutor fallback 分支和相关测试。
1. C2: session.ts 在 run 结束时补发 thinking.completed SSE 事件,
   保持 Web 客户端协议向后兼容
2. H3: ACP Session.ts 移除 if(response) 守卫,
   修复空字符串响应时历史未更新的 bug
1. I11: useCommandHandler 中 todo_update 事件未调用 setTodos,
   导致 UI 不更新 todo 列表
2. C1: executeLoopGenerator 中 `as any` 改为安全的类型断言
3. C3: 修正 replaceHistory 注释,准确描述 pending 状态
1. 事件协议收敛:删除 content_complete/thinking_complete 发射,
   delta 为唯一内容信号,stream_end 无条件发射
2. 接口定型:chat() 返回 Promise<LoopResult>,删除 StreamOptions,
   chatStream() 参数简化为 LoopOptions
3. continue 分支修复:incomplete-intent retry 和 stop-hook continue
   在 continue 前调用 state.appendAssistant(),确保历史消息完整
4. 消费者适配:ACP 改为消费 delta,UI/headless 移除 complete 处理
5. 补充集成测试:delta-only 协议验证 + continue 分支消息保留测试
- 删除 content_complete/thinking_complete 类型定义及所有消费者空 case
- 删除 Agent.runAgenticLoop() 和 Agent.getSystemPrompt()(无调用者)
- 删除 mockAgent.runAgenticLoop()
- 清理残留的 deprecated 注释引用
在恢复分支(retry/continue/recovery)中持久化消息并维护正确的消息顺序
确保恢复时能通过连续的 parent UUID 链重建对话历史
新增多模态消息内容构建工具,支持文本和图片混合输入序列化
添加统一错误分类模块,处理AbortError、API调用错误和视觉模型不支持等场景
实现流式输出批处理Hook,优化渲染性能
引入slash命令路由机制,分离UI显示与Agent输入
添加相关单元测试,覆盖并发和幂等场景
显式传入 modelId 时使用它,否则从 store 读取最新的 currentModelId
将代码中的表情符号和特殊箭头替换为文本标记,如[OK]、[FAIL]、[WARN]等,并将箭头统一为"->"。修改包括UI组件、日志输出、注释和测试等多个文件,保持功能不变的同时提高代码的可读性和兼容性。
确保每个turn的stream_end都能正常finalize,同时保持同turn内的幂等性
修改文档说明--session-id用途,并添加相关代码注释
将 npm 包注册表显式设置为官方源,以确保依赖下载的一致性和可靠性。
echoVic added 13 commits April 11, 2026 15:45
将所有直接调用 `process.cwd()` 的代码替换为统一的 `getCwd()` 函数,支持子代理的 CWD 覆写隔离。新增 `src/utils/cwd.ts` 和 `src/bootstrap/state.ts` 来管理 CWD 状态,包含当前工作目录、原始目录和项目根目录三个状态层。移除 VersionChecker 中对当前工作目录 package.json 的冗余检查,更新测试以适配新的 CWD 状态管理。

- 新增 `getCwd()` 作为获取工作目录的唯一入口
- 使用 AsyncLocalStorage 支持子代理的 CWD 覆写隔离
- 在应用启动时自动检测项目根目录并设置为默认 CWD
- 更新所有模块(命令、工具、UI、服务器路由等)使用新的 CWD 系统
- 修复 MCP 配置加载时 CLI 参数的路径解析问题
引入命令规范化层,在权限检查前剥离安全的环境变量前缀和包装命令,防止绕过规则。
新增只读命令语义分析,对未匹配显式规则的只读Git/gh命令自动放行。
扩展默认配置中的只读命令列表,覆盖更多常见只读场景。
- 调整构建顺序:环境上下文从最前移至默认提示和项目配置之后
- 将默认提示拆分为模块化 sections,提升可维护性和可测试性
- 增强环境上下文信息,包含 Git 状态、Shell 类型和关键文件列表
- 更新相关测试以验证新的构建顺序和模块化行为
修复 ChatStatusBar 中 useGitBranch 调用缺少 projectRoot 参数的问题,确保分支信息稳定显示
调整 LoadingIndicator 的文案显示优先级,优先显示中性/真实动作文案而非趣味短语
清理 ConfirmationStage 中不必要的风险提取逻辑,移除工具替代建议的警告
为相关组件添加单元测试
将工具执行结果的 displayContent 字段移除,改为通过 metadata.summary 提供摘要信息
新增 ToolDisplayOutput 接口用于统一的 UI 展示格式
更新所有内置工具以返回 metadata.summary 而非硬编码的 displayContent
修改格式化层、事件处理器和 UI 组件以使用新的工具展示格式
更新相关测试用例以适配新的工具结果结构
修复 useMainInput 中 Enter 键的行为逻辑问题。之前 Enter 键会同时用于接受建议和提交命令,导致用户意图混淆。现在统一为:
- Tab 键:接受当前选中的建议(无论是 slash 命令还是 @ 补全)
- Enter 键:仅提交当前输入的命令,忽略所有建议

同时修复环境上下文构建逻辑,确保普通模式通过 builder 自动注入环境信息,避免调用方手工 prepend 导致的重复或遗漏问题。
- 将加载短语从195条编程武侠主题简化为简洁的动词短语
- 实用提示概率从1/6调整为1/4,加载短语概率从5/6调整为3/4
- 更新注释和提示内容以反映新的简洁风格
- 新增 BlockquoteRenderer 组件,使用 ▎ 竖条和斜体样式渲染引用块
- 在 markdown 解析器和增量处理器中新增对引用块语法的识别与处理
- 重构表格渲染器,采用三层宽度策略(理想/收缩/强制断词)并支持多行单元格换行
- 当终端过窄或行数过多时,表格自动降级为垂直键值对格式以提升可读性
- 移除代码块中对 markdown 语言的递归解析,简化处理逻辑
- ConfirmationPrompt: 去掉重复标题,统一中文文案,移除普通详情的 bordered box,
  仅方案审核保留边框,选项标签全部中文化
- DiffRenderer: 新增 useState + useInput 交互式展开/折叠(按 E 切换),
  isFocused prop 控制键盘激活,统计信息显示 +N/-M 变更行数
- ExitPlanModeTool/EnterPlanModeTool: 确认消息精简为中文
- 在 MessageArea 中禁用代码块的纯文本渲染,以支持语法高亮
- 简化 ConfirmationStage 中的确认标题,移除冗余的"权限确认:"前缀
- 移除 useCommandHandler 中最大轮次确认的硬编码标题
- 重构 ConfirmationPrompt 组件,不再显示副标题,动态设置主标题
- 在 rawStreamRenderer 中为代码块和 diff 添加视觉边框和语法着色
- 新增真实仓库基准测试工具,包含三类固定任务(分析、窄范围修复、跨模块修复)
- 增强无头事件协议,添加阶段事件以区分搜索、检查、目标命中等状态
- 改进工具事件,包含目标路径和工具类型信息
- 更新确认提示组件,根据规划模式和最大轮次调整快捷键提示
- 添加基准测试相关脚本和测试覆盖
- 修复类型安全问题和测试中的生成器函数
- 新增 ToolSearch 工具支持按需加载 deferred 工具 schema
- 新增 AutoVerifyStage 在 Edit/Write 后自动运行类型检查并注入错误
- 新增内置验证 Subagent 用于独立代码质量评估
- 新增 PromptHook 支持 LLM 推理型传感器(如代码审查)
- 新增 ConfigTool 和 update-config skill 用于配置管理
- 实现 Ralph Loop 机制在 Spec 未完成时自动继续执行
- 改进上下文压缩后自动恢复最近访问的文件内容
- 增强工具结果预算管理,支持消息级聚合限制
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 12, 2026

Important

Review skipped

Too many files!

This PR contains 283 files, which is 133 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1a1dbf60-76be-423e-bf60-e6bfc4386673

📥 Commits

Reviewing files that changed from the base of the PR and between e5499bc and 618ecae.

⛔ Files ignored due to path filters (3)
  • bun.lock is excluded by !**/*.lock
  • packages/cli/tests/snapshots/outputs/__snapshots__/tool-output.snap.test.ts.snap is excluded by !**/*.snap
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (283)
  • .github/workflows/ci.yml
  • .gitignore
  • .npmrc
  • BLADE.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • README.en.md
  • README.md
  • SECURITY.md
  • bunfig.toml
  • docs/guides/memory.md
  • docs/reference/cli-commands.md
  • package.json
  • packages/cli/README.md
  • packages/cli/package.json
  • packages/cli/scripts/release.js
  • packages/cli/scripts/run-real-repo-benchmark.ts
  • packages/cli/scripts/run-security-tests.sh
  • packages/cli/src/acp/AcpFileSystemService.ts
  • packages/cli/src/acp/AcpServiceContext.ts
  • packages/cli/src/acp/BladeAgent.ts
  • packages/cli/src/acp/Session.ts
  • packages/cli/src/agent/Agent.ts
  • packages/cli/src/agent/loop/ConversationState.ts
  • packages/cli/src/agent/loop/StreamingToolExecutor.ts
  • packages/cli/src/agent/loop/completionPolicy.ts
  • packages/cli/src/agent/loop/consumeLoop.ts
  • packages/cli/src/agent/loop/conversationPersistence.ts
  • packages/cli/src/agent/loop/executeLoopGenerator.ts
  • packages/cli/src/agent/loop/index.ts
  • packages/cli/src/agent/loop/toolDomainPolicy.ts
  • packages/cli/src/agent/loop/types.ts
  • packages/cli/src/agent/runtime/SessionRuntime.ts
  • packages/cli/src/agent/subagents/BackgroundAgentManager.ts
  • packages/cli/src/agent/subagents/SubagentExecutor.ts
  • packages/cli/src/agent/subagents/SubagentRegistry.ts
  • packages/cli/src/agent/subagents/builtinAgents.ts
  • packages/cli/src/agent/subagents/builtinVerificationAgent.ts
  • packages/cli/src/agent/subagents/types.ts
  • packages/cli/src/agent/types.ts
  • packages/cli/src/blade.tsx
  • packages/cli/src/bootstrap/state.ts
  • packages/cli/src/cli/middleware.ts
  • packages/cli/src/commands/doctor.ts
  • packages/cli/src/commands/headless.ts
  • packages/cli/src/commands/headlessBenchmark.ts
  • packages/cli/src/commands/headlessEvents.ts
  • packages/cli/src/commands/install.ts
  • packages/cli/src/commands/mcp.ts
  • packages/cli/src/commands/print.ts
  • packages/cli/src/commands/shared/commandInput.ts
  • packages/cli/src/commands/update.ts
  • packages/cli/src/commands/web.ts
  • packages/cli/src/config/ConfigManager.ts
  • packages/cli/src/config/ConfigService.ts
  • packages/cli/src/config/PermissionChecker.ts
  • packages/cli/src/config/builtinModels.ts
  • packages/cli/src/config/defaults.ts
  • packages/cli/src/config/index.ts
  • packages/cli/src/config/types.ts
  • packages/cli/src/context/CompactionService.ts
  • packages/cli/src/context/ContextManager.ts
  • packages/cli/src/context/README.md
  • packages/cli/src/context/ReactiveCompaction.ts
  • packages/cli/src/context/SnipCompaction.ts
  • packages/cli/src/context/TokenBudget.ts
  • packages/cli/src/context/ToolResultBudget.ts
  • packages/cli/src/context/storage/PersistentStore.ts
  • packages/cli/src/hooks/HookConfig.ts
  • packages/cli/src/hooks/HookExecutor.ts
  • packages/cli/src/hooks/HookManager.ts
  • packages/cli/src/hooks/HookStage.ts
  • packages/cli/src/hooks/PostToolUseHookStage.ts
  • packages/cli/src/hooks/schemas/HookSchemas.ts
  • packages/cli/src/hooks/types/HookTypes.ts
  • packages/cli/src/logging/Logger.ts
  • packages/cli/src/mcp/createMcpTool.ts
  • packages/cli/src/mcp/loadMcpConfig.ts
  • packages/cli/src/prompts/builder.ts
  • packages/cli/src/prompts/default.ts
  • packages/cli/src/prompts/sections.ts
  • packages/cli/src/prompts/spec.ts
  • packages/cli/src/server/routes/global.ts
  • packages/cli/src/server/routes/session.ts
  • packages/cli/src/server/routes/suggestions.ts
  • packages/cli/src/server/routes/terminal.ts
  • packages/cli/src/server/server.ts
  • packages/cli/src/services/AntigravityChatService.ts
  • packages/cli/src/services/BuiltinKeyService.ts
  • packages/cli/src/services/ChatServiceInterface.ts
  • packages/cli/src/services/CopilotChatService.ts
  • packages/cli/src/services/GracefulShutdown.ts
  • packages/cli/src/services/ModelsDevService.ts
  • packages/cli/src/services/VercelAIChatService.ts
  • packages/cli/src/services/VersionChecker.ts
  • packages/cli/src/services/antigravity/AntigravityAuth.ts
  • packages/cli/src/services/copilot/CopilotAuth.ts
  • packages/cli/src/skills/SkillRegistry.ts
  • packages/cli/src/skills/builtin/skill-creator.ts
  • packages/cli/src/skills/builtin/update-config.ts
  • packages/cli/src/slash-commands/agents.ts
  • packages/cli/src/slash-commands/builtinCommands.ts
  • packages/cli/src/slash-commands/compact.ts
  • packages/cli/src/slash-commands/custom/CustomCommandParser.ts
  • packages/cli/src/slash-commands/custom/types.ts
  • packages/cli/src/slash-commands/git.ts
  • packages/cli/src/slash-commands/hooks.ts
  • packages/cli/src/slash-commands/ide.ts
  • packages/cli/src/slash-commands/index.ts
  • packages/cli/src/slash-commands/init.ts
  • packages/cli/src/slash-commands/login.ts
  • packages/cli/src/slash-commands/logout.ts
  • packages/cli/src/slash-commands/mcp.ts
  • packages/cli/src/slash-commands/memory.ts
  • packages/cli/src/slash-commands/model.ts
  • packages/cli/src/slash-commands/plugins.ts
  • packages/cli/src/slash-commands/resume.ts
  • packages/cli/src/slash-commands/tasks.ts
  • packages/cli/src/slash-commands/types.ts
  • packages/cli/src/spec/SpecManager.ts
  • packages/cli/src/spec/templates/steering/structure.md.template
  • packages/cli/src/spec/types.ts
  • packages/cli/src/store/selectors/index.ts
  • packages/cli/src/store/slices/sessionSlice.ts
  • packages/cli/src/store/types.ts
  • packages/cli/src/store/vanilla.ts
  • packages/cli/src/tools/README.md
  • packages/cli/src/tools/builtin/config/ConfigTool.ts
  • packages/cli/src/tools/builtin/config/index.ts
  • packages/cli/src/tools/builtin/file/edit.ts
  • packages/cli/src/tools/builtin/file/editCorrector.ts
  • packages/cli/src/tools/builtin/file/read.ts
  • packages/cli/src/tools/builtin/file/write.ts
  • packages/cli/src/tools/builtin/index.ts
  • packages/cli/src/tools/builtin/memory/MemoryReadTool.ts
  • packages/cli/src/tools/builtin/memory/MemoryWriteTool.ts
  • packages/cli/src/tools/builtin/notebook/notebookEdit.ts
  • packages/cli/src/tools/builtin/plan/EnterPlanModeTool.ts
  • packages/cli/src/tools/builtin/plan/ExitPlanModeTool.ts
  • packages/cli/src/tools/builtin/search/glob.ts
  • packages/cli/src/tools/builtin/search/grep.ts
  • packages/cli/src/tools/builtin/shell/BackgroundShellManager.ts
  • packages/cli/src/tools/builtin/shell/OutputTruncator.ts
  • packages/cli/src/tools/builtin/shell/bash.ts
  • packages/cli/src/tools/builtin/shell/killShell.ts
  • packages/cli/src/tools/builtin/spec/AddTaskTool.ts
  • packages/cli/src/tools/builtin/spec/EnterSpecModeTool.ts
  • packages/cli/src/tools/builtin/spec/ExitSpecModeTool.ts
  • packages/cli/src/tools/builtin/spec/GetSpecContextTool.ts
  • packages/cli/src/tools/builtin/spec/TransitionSpecPhaseTool.ts
  • packages/cli/src/tools/builtin/spec/UpdateSpecTool.ts
  • packages/cli/src/tools/builtin/spec/UpdateTaskStatusTool.ts
  • packages/cli/src/tools/builtin/spec/ValidateSpecTool.ts
  • packages/cli/src/tools/builtin/system/ToolSearchTool.ts
  • packages/cli/src/tools/builtin/system/askUserQuestion.ts
  • packages/cli/src/tools/builtin/system/index.ts
  • packages/cli/src/tools/builtin/system/skill.ts
  • packages/cli/src/tools/builtin/system/slashCommand.ts
  • packages/cli/src/tools/builtin/task/task.ts
  • packages/cli/src/tools/builtin/task/taskOutput.ts
  • packages/cli/src/tools/builtin/todo/todoWrite.ts
  • packages/cli/src/tools/builtin/web/webFetch.ts
  • packages/cli/src/tools/builtin/web/webSearch.ts
  • packages/cli/src/tools/core/createTool.ts
  • packages/cli/src/tools/execution/AutoVerifyStage.ts
  • packages/cli/src/tools/execution/ExecutionPipeline.ts
  • packages/cli/src/tools/execution/PipelineStages.ts
  • packages/cli/src/tools/registry/DeferredToolManager.ts
  • packages/cli/src/tools/registry/ToolRegistry.ts
  • packages/cli/src/tools/types/ExecutionTypes.ts
  • packages/cli/src/tools/types/ToolTypes.ts
  • packages/cli/src/ui/App.tsx
  • packages/cli/src/ui/components/AgentCreationWizard.tsx
  • packages/cli/src/ui/components/AgentsManager.tsx
  • packages/cli/src/ui/components/BladeInterface.tsx
  • packages/cli/src/ui/components/BlockquoteRenderer.tsx
  • packages/cli/src/ui/components/ChatStatusBar.tsx
  • packages/cli/src/ui/components/CodeHighlighter.tsx
  • packages/cli/src/ui/components/CollapsedHistorySummary.tsx
  • packages/cli/src/ui/components/ConfirmationPrompt.tsx
  • packages/cli/src/ui/components/DiffRenderer.tsx
  • packages/cli/src/ui/components/ErrorBoundary.tsx
  • packages/cli/src/ui/components/HooksManager.tsx
  • packages/cli/src/ui/components/InlineRenderer.tsx
  • packages/cli/src/ui/components/LoadingIndicator.tsx
  • packages/cli/src/ui/components/MaxSizedBox.tsx
  • packages/cli/src/ui/components/MessageArea.tsx
  • packages/cli/src/ui/components/MessageRenderer.tsx
  • packages/cli/src/ui/components/ModelSelector.tsx
  • packages/cli/src/ui/components/PermissionsManager.tsx
  • packages/cli/src/ui/components/PluginsManager.tsx
  • packages/cli/src/ui/components/QuestionPrompt.tsx
  • packages/cli/src/ui/components/SessionSelector.tsx
  • packages/cli/src/ui/components/SkillsManager.tsx
  • packages/cli/src/ui/components/SpecStatusPanel.tsx
  • packages/cli/src/ui/components/SubagentProgress.tsx
  • packages/cli/src/ui/components/TableRenderer.tsx
  • packages/cli/src/ui/components/ThemeSelector.tsx
  • packages/cli/src/ui/components/ThinkingBlock.tsx
  • packages/cli/src/ui/components/TodoPanel.tsx
  • packages/cli/src/ui/components/UpdatePrompt.tsx
  • packages/cli/src/ui/components/model-config/ApiKeyInput.tsx
  • packages/cli/src/ui/components/model-config/ModelSelector.tsx
  • packages/cli/src/ui/components/model-config/OAuthFlow.tsx
  • packages/cli/src/ui/components/model-config/ProviderSelector.tsx
  • packages/cli/src/ui/components/model-config/hooks/useModelsDev.ts
  • packages/cli/src/ui/components/model-config/index.tsx
  • packages/cli/src/ui/components/model-config/types.ts
  • packages/cli/src/ui/hooks/useAtCompletion.ts
  • packages/cli/src/ui/hooks/useCommandHandler.ts
  • packages/cli/src/ui/hooks/useGitBranch.ts
  • packages/cli/src/ui/hooks/useMainInput.ts
  • packages/cli/src/ui/hooks/usePhraseCycler.ts
  • packages/cli/src/ui/hooks/useStreamingBuffer.ts
  • packages/cli/src/ui/utils/errorExtractor.ts
  • packages/cli/src/ui/utils/loopEventHandler.ts
  • packages/cli/src/ui/utils/markdown.ts
  • packages/cli/src/ui/utils/markdownIncremental.ts
  • packages/cli/src/ui/utils/markdownParser.ts
  • packages/cli/src/ui/utils/messageContent.ts
  • packages/cli/src/ui/utils/rawStreamRenderer.ts
  • packages/cli/src/ui/utils/slashCommandRouter.ts
  • packages/cli/src/ui/utils/toolFormatters.ts
  • packages/cli/src/utils/cwd.ts
  • packages/cli/src/utils/environment.ts
  • packages/cli/src/utils/filePatterns.ts
  • packages/cli/src/utils/git.ts
  • packages/cli/src/utils/shell/commandNormalizer.ts
  • packages/cli/src/utils/shell/readOnlyValidation.ts
  • packages/cli/tests/integration/config.test.ts
  • packages/cli/tests/integration/pipeline.test.ts
  • packages/cli/tests/performance/benchmarks/real-repo-benchmark.test.ts
  • packages/cli/tests/snapshots/outputs/tool-output.snap.test.ts
  • packages/cli/tests/support/mocks/mockAgent.ts
  • packages/cli/tests/support/setup.ts
  • packages/cli/tests/unit/agent-runtime/acp/session.test.ts
  • packages/cli/tests/unit/agent-runtime/agent/agent-compaction-threshold.test.ts
  • packages/cli/tests/unit/agent-runtime/agent/agent-create.test.ts
  • packages/cli/tests/unit/agent-runtime/agent/event-protocol.test.ts
  • packages/cli/tests/unit/agent-runtime/agent/execute-loop-generator.test.ts
  • packages/cli/tests/unit/agent-runtime/agent/streaming-tool-executor.test.ts
  • packages/cli/tests/unit/agent-runtime/agent/streaming-tool-fallback.test.ts
  • packages/cli/tests/unit/agent-runtime/agent/subagent-event-forwarding.test.ts
  • packages/cli/tests/unit/agent-runtime/context/compaction-service.test.ts
  • packages/cli/tests/unit/agent-runtime/context/reactive-compaction.test.ts
  • packages/cli/tests/unit/agent-runtime/context/token-budget.test.ts
  • packages/cli/tests/unit/agent-runtime/context/tool-result-budget.test.ts
  • packages/cli/tests/unit/agent-runtime/server/session-routes.test.ts
  • packages/cli/tests/unit/agent-runtime/tools/execution-pipeline-filelock.test.ts
  • packages/cli/tests/unit/cli/command-input.test.ts
  • packages/cli/tests/unit/cli/commands/doctor.test.ts
  • packages/cli/tests/unit/cli/commands/install.test.ts
  • packages/cli/tests/unit/cli/headless-benchmark.test.ts
  • packages/cli/tests/unit/cli/headless-events.test.ts
  • packages/cli/tests/unit/cli/headless.test.ts
  • packages/cli/tests/unit/cli/prompts/simple-builder.test.ts
  • packages/cli/tests/unit/cli/slash-commands/tasks.test.ts
  • packages/cli/tests/unit/platform/services/session-service.test.ts
  • packages/cli/tests/unit/platform/ui/ChatStatusBar.test.tsx
  • packages/cli/tests/unit/platform/ui/ConfirmationPrompt.test.tsx
  • packages/cli/tests/unit/platform/ui/LoadingIndicator.test.tsx
  • packages/cli/tests/unit/platform/ui/MessageRenderer.test.tsx
  • packages/cli/tests/unit/platform/ui/utils/errorExtractor.test.ts
  • packages/cli/tests/unit/platform/ui/utils/loopEventHandler.test.ts
  • packages/cli/tests/unit/platform/ui/utils/messageContent.test.ts
  • packages/cli/tests/unit/platform/ui/utils/slashCommandRouter.test.ts
  • packages/cli/tests/unit/platform/utils/environment.test.ts
  • packages/cli/tests/unit/platform/utils/shell/commandNormalizer.test.ts
  • packages/cli/tests/unit/platform/utils/shell/readOnlyValidation.test.ts
  • packages/cli/tests/unit/services/vercel-ai-chat-service.test.ts
  • packages/cli/tests/unit/tooling/memory/AutoMemoryManager.test.ts
  • packages/cli/tests/unit/tooling/memory/MemoryTools.test.ts
  • packages/cli/tests/unit/tooling/tools/builtin/file/edit.test.ts
  • packages/cli/tests/unit/tooling/tools/builtin/file/read.test.ts
  • packages/cli/tests/unit/tooling/tools/builtin/file/write.test.ts
  • packages/cli/tests/unit/tooling/tools/builtin/task-output.test.ts
  • packages/cli/tests/unit/tooling/tools/registry/tool-registry.test.ts
  • packages/cli/web/package.json
  • packages/cli/web/vitest.config.ts
  • packages/vscode/README.md
  • packages/vscode/package.json
  • pnpm-workspace.yaml
  • tsconfig.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/upgrade-agent

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@echoVic echoVic force-pushed the feat/upgrade-agent branch from b1b4486 to 618ecae Compare April 12, 2026 11:26
@echoVic echoVic merged commit ec78160 into main Apr 12, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant