OpenCodeOpenCode

更新日志

OpenCode 的新更新与改进

SDK 中的重大变更

    核心

    • 增加了 OTLP 可观测性导出支持。
    • 修复了失败的 Web 获取请求留下过期超时的问题。
    • 改进了 `opencode login` 的传输错误消息。
    • 现在重试 Alibaba 提供商的速率限制错误,而不是立即失败。
    • 使模型变体范围限制在选定的模型内。
    • 增加了完整的 HTTP 代理支持。
    • 修复了 OpenRouter 提供商的问题。
    • 对齐了 GitHub Copilot Anthropic 的推理级别,并移除了不正确的 Qwen 变体。
    • 通过使用原生项目配置,降低了 TypeScript LSP 的内存使用量。(@derekbar90)

    TUI

    • 为“切换模型变体”添加了快捷键选项。(@ariane-emory)
    • 添加了附件 PDF 拖放功能。(@gitpush-gitpaid)
    • 添加了 `opencode run --dangerously-skip-permissions`,用于自动批准未被拒绝的权限提示。

    桌面版

    • 改进了子代理会话,具有更清晰的标题、导航和进度状态。
    • 将自动接受权限移至“设置”中。
    • 在附件芯片上显示完整文件名。

    核心

    • Cloudflare Workers AI 和 AI Gateway 现在会在缺少账户详情时进行提示,并在缺少必要的 Cloudflare 变量时显示清晰的设置错误。(@mchenco)

    TUI

    • 恢复了 Windows 终端上的默认 kitty 键盘处理,以避免工作区回滚导致的输入问题。

    核心

    • 在聊天和响应路径上均支持 Azure 模型选项。(@meruiden)
    • 通过 ACP 公开会话模型和模式配置选项。(@georgeharker)
    • 在读取工具文件内容前添加了分隔空行,以使输出更清晰。
    • 修复了当推理 token 被单独报告时的输出 token 总数统计。

    TUI

    • 将 Windows 上的 `Ctrl+Z` 默认设置为撤销,而不是挂起终端。
    • 允许在配置中或通过 `OPENCODE_DISABLE_MOUSE` 禁用 TUI 鼠标捕获。(@blackheaven)
    • 当只有一个组织可供选择时,隐藏组织切换界面。
    • 标记由 Console 管理的提供商,并允许从提供商 UI 切换组织。

    扩展

    • 修复了从 npm 别名和 git URL 安装插件的问题,包括 Windows 缓存路径问题。

    核心

    • 防止当 Arborist 命中编译二进制文件的 `node-gyp` 路径时 npm 安装失败。

    核心

    • 恢复了 Git 支持的审查模式,包括未提交更改和分支差异。
    • 修复了还原链,以便恢复旧消息时也能还原正确的快照状态。(@natewill)
    • 添加了用于 MDM 强制配置的 macOS 托管偏好设置。(@lennyvaknine43)
    • 修复了使用与 OpenAI 兼容的提供商进行工具调用后会话卡住的问题。(@valenvivaldi)
    • 保持压缩摘要使用对话的语言。(@aaron-he-zhu)
    • 添加 Venice AI 作为提供商。(@dpuyosa)
    • 尊重特定模型的 `limit.input` 覆盖设置。(@ykswang)

    TUI

    • 保持提示光标在对话框中,而不是重新聚焦背景提示。
    • 在首次共享会话前添加了一次性确认。
    • 在所有 TUI 滚动视图中一致地应用滚动设置。
    • 在全局键处理期间保持文本选择完整。
    • 如果最后使用的代理不可用,则回退到第一个可用代理。

    桌面版

    • 在审查评论中添加了文件引用。
    • 在关闭代理、模型和变体选择器后恢复提示焦点。
    • 为问题停靠栏添加了键盘导航和快捷键。
    • 在 shell 模式下隐藏模型控件。
    • 阻止待办事项停靠栏在任务更新时自动滚动。

    SDK

    • 修复了 Windows 上的 JS SDK 服务器以及 TUI 的启动和关闭问题。
    • 修复了对象定义的 `Tool.define()` 工具多次包装 `execute` 的问题。(@jpcarranza94)

    扩展

    • 添加了对仅主题插件包的支持。

    核心

    • 为 Google Vertex Anthropic 启用了提示缓存和缓存 token 跟踪。(@重大)
    • 修复了 AI SDK v6 迁移后 Azure 提供商选项转发不正确的问题。

    TUI

    • 修复了插件 `replace` 插槽多次挂载内容的问题。

    核心

    TUI

    • 改进 TUI 终端输出透传,使外部命令输出渲染更可靠。

    扩展

    • 跳过不公开匹配服务器或 TUI 入口点的插件,改为发出警告而非失败,并在安装时应用来自包导出的默认选项。
    • 在安装期间锁定明确的插件版本,并阻止运行包安装脚本。

    核心

    • 子代理工具调用在挂起时保持可点击状态。
    • 提高了存储迁移的可靠性,确保格式错误的遗留记录或失败的迁移不会损坏升级后的状态。

    TUI

    • 改进了 Catppuccin 主题中静音文本的对比度。

    核心

    • 修复了无前导点路径的插件入口点解析问题。

    核心

    • 添加了 Windows 上的一流 PowerShell 支持。
    • 插件安装现在保留配置文件中的 JSONC 注释。
    • 修复了 `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` 未在项目级 CLAUDE.md 中得到尊重的问题。

    TUI

    • 改进了变体模态框行为,使其不那么突兀。
    • 为对话框文本区域占位符添加了主题颜色。

    TUI

    • PR #19917: 修复了变体对话框搜索,现在输入可正确过滤变体列表。

    桌面版

      核心

      • PR #19758: 修复了 Anthropic 和 Amazon Bedrock 提供商的 token 使用重复计算问题,该问题曾导致会话指标中的 token 计数虚高。

      核心

      • 修复插件钩子以正确处理异步操作。
      • 调整 GPT 提示词使其更简洁,并修复文件引用带来的干扰。

      核心

      • 添加提示插槽功能。
      • 将 opencode-gitlab-auth 更新至 2.0.1。(@vglafirov)
      • 重构会话处理器以使用基于 effect 的架构。
      • 使用 AppFileSystem 代替原生文件系统以获得更好的抽象。
      • 将 OpenTUI 升级到 0.1.91 版本。
      • 调整 bash 工具描述以提高项目间的缓存命中率。
      • 将 Effect 更新到 4.0.0-beta.42 版本。
      • 重构会话压缩服务以使用 Effect。
      • 添加单目标插件入口点。
      • 使用 ChildProcessSpawner 代替 Process.spawn 进行格式化。
      • 将更多职责转移到工作区路由。
      • 重构会话服务以使用基于 Effect 的架构。
      • 添加对 AI SDK v6 的支持。
      • 在错误处理中添加额外的溢出错误模式。
      • 通过删除 Bun 不支持的 mock.module 修复不稳定的插件测试。
      • 拆分实例并路由通过工作区。
      • 对插件服务内部进行 Effect 化。
      • 对技能服务内部进行 Effect 化。
      • 添加 TUI 插件支持。
      • 重构工具注册表,使用 Effect.forEach 生成配置和插件服务。
      • 忽略生成的模型快照文件。
      • 在 VCS 模块中用 ChildProcessSpawner 替换异步 git()。
      • 在 Effect 重构中生成服务而非 Promise 门面。
      • 修复了 Windows 上的 Web UI 捆绑包构建问题。
      • 改进应用启动性能。
      • 在连接失败或超时时关闭 MCP 传输。
      • 为配置使用 cachedInvalidateWithTTL 并将 Effect 升级到 beta.37。
      • 重构配置服务以使用 Effect。
      • 移除工作区服务器和 WorkspaceContext,改进路由架构。
      • 添加 GPT 提示词,使非 Codex GPT 模型拥有模仿 Codex CLI 的自定义系统提示词。
      • 使用 InstanceState 通过 Effect 重构 LSP 服务。

      TUI

      • 为提示占位符使用主题颜色。
      • 添加对话框变体菜单并改进子代理功能。
      • 打开用于模型变体选择的对话框,而非循环切换。
      • 在回退到默认主题前检查 KV 主题。
      • 为会话视图添加顶部间距并移除过时的文档提示。
      • 恢复子代理页脚并修复样式指南违规。
      • 添加模型变体选择对话框。
      • 从页脚移除变体循环显示。
      • 将会话上下文移至提示页脚。

      桌面版

      • 提高应用启动效率。
      • 为 Windows 版本使用 Azure 工件签名。
      • 将文件树默认设置为关闭状态并保持最小宽度。
      • 当移动设备键盘出现时调整布局视口。(@BYK)
      • 在项目切换期间保留排队的后续任务。
      • 减少 UI 中响应流式传输时的 Markdown 抖动。
      • 从应用中移除分叉会话按钮。
      • 将 shell 工具默认设为折叠状态。
      • 不在应用中捆绑字体。

      TUI

      • 旁路工作线程中的本地 SSE 事件流以提高性能 (#19183)
      • 修复 Windows 终端 1.25+ 且启用 kitty 键盘时的图片粘贴支持 (#17674)

      桌面版

      • 直接将 WebUI 嵌入二进制文件并提供可配置的代理标志 (#19299)
      • 修复桌面应用中的代理归一化问题 (#19169)
      • 通过预热 globalSync 状态修复使用快捷键切换项目时的闪烁问题 (#19088)
      • 将消息导航从 cmd+箭头改为 cmd+opt+[ / cmd+opt+],以保留原生光标移动 (#18728)
      • 在 Electron 应用的目录选择器中添加 createDirectory 选项 (#19071)
      • 从 electron-store 中移除 `.json` 扩展名,以实现从 Tauri 到 Electron 的无缝迁移 (#19082)

      核心

      • 会话数据事件溯源同步系统的初步实现 (#17814)
      • 修复身份验证期间企业 URL 未正确设置的问题 (#19212)
      • 将 Bun fetch 的 ZlibError 分类为可重试而非未知错误 (#19104)
      • 跳过大于 2MB 文件的快照以提高性能 (#19043)
      • 尊重 todowrite 工具的代理权限配置 (#19125)
      • 修复 DWS 工作流工具因缺少工具批准支持而被静默取消的问题 (#19185)
      • 修复 MCP 服务器在短暂错误后消失的问题,并改进 OAuth 处理 (#19042)

      其他

      • 回退 Git 支持的审查模式,以恢复与旧版 CLI 构建的兼容性 (#19295)

      TUI

      • 添加了堆快照功能,允许用户通过“Write heap snapshot”命令捕获 TUI 和服务器进程的内存快照。快照被保存为 `tui.heapsnapshot` 和 `server.heapsnapshot` 文件。

      功能

      • 添加 Poe 作为内置身份验证提供商,支持 OAuth 和 API 密钥 (#18477)
      • 为自定义 Amazon Bedrock 提供商启用 token 缓存 (#18959)
      • 为 Kotlin、HCL、Lua 和 TOML 文件添加语法高亮支持 (#18198)
      • 添加主题模式的手动锁定/解锁功能 (#18905)

      修复

      • 修复滚动时会话时间轴跳动的问题 (#18993)
      • 修复 GitLab Duo Workflow 模型显示身份错误的问题 (#18928)
      • 修复深色与浅色主题模式之间的切换 (#18851)
      • 修复控制台账户 URL 处理以优化导航 (#18809)
      • 修复会话忙状态处理以提高响应速度 (#18758)
      • 修复过期会话悬停预览 (#18727)
      • 修复项目悬停状态 (#18732)
      • 修复提示历史导航 (#18775)
      • 修复非可渲染部分类型的过滤 (#18926)
      • 修复 ProviderIcon 可选链问题 (#18927)
      • 修复关闭终端标签页时的进程清理 (#16057)
      • 修复通过选择器、粘贴和拖放进行多文件提示附件的批处理 (#18722)
      • 修复显示长文件名文件时补丁工具计数的可见性 (#18678)
      • 修复通过侧边栏切换项目时项目头像弹窗闪烁的问题 (#18660)

      改进

      • 提高启动效率 (#18985)
      • 更新中文 (zh) 本地化的飞书社区链接 (#18975)
      • 改进文件树面板,使其在调整大小时保持最小宽度 (#18777)
      • 通过更健壮的 sidecar 进程清理提高桌面应用稳定性 (#18742)
      • 将命令面板快捷键更改为 `Cmd+K` (保留 `Cmd+P` 作为备用) (#18731)
      • 恢复在打开侧边栏时使用键盘切换项目,并支持回车键激活 (#18682)

      重要

      • 移除 anthropic oauth 插件,见: https://github.com/anomalyco/opencode/pull/18186/changes

      新功能

      • **GitLab Agent Platform** (#18014): GitLab Agent Platform 现在已得到全面支持,支持从您的 GitLab 实例自动发现工作流模型。工作流模型可以通过 WebSocket 使用 opencode 的本地工具(文件读写、shell 等)。
      • **Git 支持的会话审查** (#17961): 添加了 Git 支持的会话审查模式,使用户能够直接在 opencode 内审查未提交的更改和分支差异。Git 更改现在是默认的审查来源,桌面审查树将与您选定的来源保持同步。
      • **多步身份验证** (#18103, #18035): TUI 和桌面版均支持多步身份验证流程,这意味着 Github Copilot 企业部署等提供商现在可以按预期工作。
      • **交互式更新流程** (#18662): 重大更新和次要更新现在会在升级前显示确认对话框,允许您在更新前审查变更。如果您希望停留在当前版本,也可以跳过特定版本。
      • **Node.js 支持** (#18324): opencode 现在除 Bun 外还可以在 Node.js 上运行,具有专用的 Node.js 入口点和构建脚本,可将服务器与数据库迁移打包在一起。

      桌面应用改进

      • **项目导航** (#18502): 使用键盘快捷键 (cmd+option+方向键) 更快地在项目间导航。
      • **文件上传** (#18403): 桌面应用现在支持在上传文件时进行文件类型过滤和多选。
      • **工作区切换** (#18207): 修复在工作区或项目间切换时的视觉闪烁问题 - 界面现在平滑过渡,导航期间不再显示加载转轮。
      • **侧边栏调整大小** (#18647): 修复了侧边栏在调整到最小宽度时会自动关闭的问题。侧边栏现在会在最小宽度处锁定,而不是关闭。
      • **加载状态** (#18501): 改进了整个应用的加载状态管理,在异步操作期间提供更流畅、一致的反馈。
      • **控制台登录** (#18281): 修复控制台设备登录以正确处理待处理的授权状态,确保登录过程继续轮询,而不是在等待批准时失败。

      终端与编辑器

      • **终端重命名** (#18263): 修复从上下文菜单重命名终端的问题,该问题此前因下拉菜单焦点冲突而失败。
      • **终端错误恢复** (#17591): 修复当服务器返回终端会话的“未找到”错误时终端无响应的问题。终端现在可以正确重新初始化并保持交互性。
      • **粘贴操作** (#18079): 粘贴操作现在保留原始字节数据,从而在粘贴到终端时正确处理二进制内容和特殊字符。
      • **防止重复提交** (#18148): 修复快速按回车键可能多次提交提示的问题。现在忽略重复的回车提交。

      提供商与模型

      • **xAI 响应 API** (#18175): 通过切换到支持加密内容的响应 API,改进了长多轮对话中 xAI 推理模型的性能。
      • **GPT 模型列表** (#18101): 使用最新的可用模型更新了 GPT 订阅模型列表。
      • **Vertex AI 修复** (#18283): 修复了非思考模型(如 gemini-2.0-flash)的 Vertex AI 错误,仅将思考配置应用于支持推理功能的模型。
      • **vLLM 上下文溢出** (#17763): 改进了对 vLLM 上下文溢出错误的检测,在推理期间超过上下文限制时提供更清晰的反馈。
      • **成本数据格式** (#16817): 修复了流式传输错误,即成本数据以非预期的格式发送,导致在混合不同提供商格式时出现验证错误。

      审查与协作

      • **文件附件** (#17815): 修复了在重用或分叉带有附件的旧提示时文件和图片附件丢失的问题。
      • **快照还原** (#18093): 修复快照还原问题,其中重叠的文件更改可能应用错误的补丁哈希,并解决了隐藏文件排序中的一个错误。

      身份验证与账户

      • **过期凭据** (#18426): 修复重新登录时陈旧的服务器 URL 和电子邮件问题。此前,由于缓存了来自先前环境的凭据,登录到不同服务器可能会失败。
      • **Codex 访问** (#18337): OAuth 计划用户现在可以自由访问 Codex 指令,无需之前的白名单限制。

      UI/UX 改进

      • **主题改进** (#17958): 改进了 UI 对比度,并降低了悬停/活动元素的亮度,以获得更好的可读性并减轻视觉疲劳。
      • **系统提示词** (#18140): 更简洁的 AI 响应,采用了流线型的回退系统提示词,移除了不必要的样板文本。
      • **代理与技能排序** (#18261): 通过稳定系统提示词中代理和技能的顺序,实现更一致的 AI 响应并提高提示词缓存效率。

      Bug 修复

      • **远程服务器切换** (#17214): 修复切换远程服务器时导致项目数据过期、终端生成失败以及侧边栏显示不正确项目的问题。
      • **Windows 命令** (#18010): 修复 Windows shim 命令 (.cmd/.bat 文件) 执行问题,以解决升级、卸载、IDE 安装和 LSP 启动期间的失败。
      • **工具发现** (#18320): 通过在 PATH 查找中包含缓存 bin 目录,修复了 npm 安装包的工具发现问题,确保正确找到本地安装的工具。
      • **错误消息** (#18165): 工具和会话错误消息现在以干净、人类可读的格式显示,而不是显示令人困惑的技术错误字符串。
      • **分片超时** (#18264): 默认禁用分片超时以防止各种使用场景中的问题;如果需要,用户仍可在配置中启用它。
      • **事件顺序** (#18259): 实时流中的事件现在按顺序处理,确保显示一致且可预测,而不是乱序交付。
      • **桌面稳定性** (#18300): 通过更可靠的工作区和会话路由改进了桌面稳定性,修复了侧边栏选择不匹配以及切换项目时的竞态条件。

      核心

      • 修复 VCS 观察器 if 语句逻辑
      • 删除遗留权限模块
      • 问题中止时清理挂起的入口
      • 移除 SIGHUP 退出处理器
      • 对 PermissionNext 进行 Effect 化并修复 InstanceState ALS 错误
      • 内联品牌 ID 模式
      • 重构 QuestionService 以使用 effect
      • 确保压缩消息被追踪为代理发起
      • 将默认分片超时从 2 分钟增加到 5 分钟
      • 修复跨工作树和孤儿分支丢失会话的问题(@michaeldwan)

      桌面版

      • 从 UI 中移除 open 标签
      • 处理提示组合器中的多行网页粘贴
      ©2026 Anomaly品牌隐私政策服务条款