← 返回更新日志

OpenCode v1.2.7

2026-02-19 · GitHub 原文
## 核心 - 修复了应用程序中的终端渲染和交互问题 - 规范化文件状态路径相对于实例目录 (@shantur) - 从 Bun.Glob 迁移到 npm glob 包 - 升级 Google、Google Vertex、Anthropic、Bedrock 的 AI SDK 包及提供程序工具 - 添加对 Gemini 3.1 中等推理的支持 - 移除对 Bun.file 的使用 - 修复文本文件被错误归类为二进制文件的问题 - 在桌面应用程序的顶级获取默认服务器 - 重构应用程序中的终端 - 集成 AWS 和 Google 认证包 - OPENCODE_CONFIG_CONTENT 中的令牌替换现已正常工作 (@ariane-emory) - 回滚从 Bun.file() 到文件系统模块的迁移 - 将 project.ts 从 Bun.file() 迁移到文件系统/stat 模块 - 将读取工具从 Bun.file() 迁移到文件系统模块 - 将写入工具从 Bun.file() 迁移到文件系统模块 - 将编辑工具从 Bun.file() 迁移到文件系统模块 - 将剩余的工具文件从 Bun.file() 迁移到文件系统/stat 模块 - 将 storage.ts 从 Bun.file()/Bun.write() 迁移到文件系统模块 - 将 src/storage/json-migration.ts 从 Bun.file() 迁移到文件系统模块 - 将 MCP 认证模块从 Bun 文件 API 迁移到文件系统模块 - 将存储数据库从 Bun.file() 迁移到使用 statSync 进行文件存在性检查 - 将会话提示模块从 Bun.file() 迁移到文件系统/stat 模块 - 修复 `opencode run` 中的崩溃问题,并在输出中显示错误的工具调用 - 将技能发现迁移为使用文件系统模块而非 Bun 文件 API - 将会话指令处理从 Bun.file() 迁移到文件系统模块 - 将 provider.ts 从 Bun.file() 迁移到文件系统模块 - 将 shell.ts 从 Bun.file() 迁移到 statSync 以改进文件系统操作 - 将日志工具从 Bun.file() 迁移到 Node.js fs 模块以提高兼容性 - 将 models.ts 从 Bun.file()/Bun.write() 迁移到文件系统模块 - 使用 HashiCorp 发布 API 安装 terraform-ls (@edubxb) - 将 LSP 服务器从 Bun.file()/Bun.write() 迁移到文件系统模块 - 将 session 命令从 Bun.file() 迁移到 statSync 以改进文件系统操作 - 将 agent.ts 从 Bun.file() 迁移到文件系统模块 - 将 auth 模块从 Bun.file()/Bun.write() 迁移到文件系统模块 - 将 sessionID 和 callID 传递给 shell.env 钩子输入 (@tesdal) - 修复应用程序中的终端串扰问题 - 更新 SST 版本 - 将 src/global/index.ts 从 Bun.file() 迁移到文件系统模块 - 当 GitHub 上下文溢出时,发出 PROMPT_TOO_LARGE 错误 (@elithrar) - 将 src/bun/index.ts 从 Bun.file()/Bun.write() 迁移到文件系统模块 - 将 config/markdown.ts 从 Bun.file() 迁移到文件系统模块 - 将 file/index.ts 从 Bun.file() 迁移到文件系统模块 - 将 format/formatter.ts 从 Bun.file() 迁移到文件系统模块 - 允许在无显式类型参数的情况下调用 readJson - 将 file/ripgrep.ts 从 Bun API 迁移到文件系统模块 - 将 index.ts 从 Bun.file() 迁移到文件系统模块 - 添加 Julia 语言服务器支持 (@zarly) - 将 GitLab AI 提供程序升级至 3.6.0 以添加 Sonnet 4.6 支持 (@vglafirov) - 添加用于 Bun.file 迁移的集中式文件系统模块 - 修复 Clojure 语法高亮 (@finalfantasia) - 确保 explore 子代理提示请求外部目录权限,而非自动拒绝 - 不要自动加载 kilo - 添加 Kilo 作为本地提供程序 (@Nomadcxx) - 简化 updateMessage 中的冗余三元运算 (@yikayiyo) - 确保读取工具对所有文件系统操作使用 fs/promises - 使读取工具更节省内存 - 在登录选择器中展示插件认证提供程序 (@anoldguy) - 当 OAuth 提供程序指示凭据无效时使其失效 (@GreenStage) - 不在完成时获取 models.dev (@gigamonster256) - 在 SSE 重新连接后恢复状态并强化 SSE 流 - 当文件异步解析时保持消息部分顺序稳定 - 从工具中移除附件中的 ID,并在 prompt.ts 中分配它们 ## TUI - 改进 GitHub 操作分支检测并处理 422 错误 (@elithrar) - 确保终端输出写入后触发 onExit 回调 - 将 TUI 线程模块从 Bun.file() 迁移到文件系统模块 - 将 agent 命令从 Bun.file()/Bun.write() 迁移到文件系统模块 - 将 import 命令从 Bun.file() 迁移到文件系统模块 - 更新 pasteImage,仅当上一个附件也是图片时才增加计数 (@OpeOginni) - 将 editor.ts 从 Bun.file()/Bun.write() 迁移到文件系统模块 - 将 clipboard.ts 从 Bun.file() 迁移到文件系统模块 - 将 CLI run 命令从 Bun.file() 迁移到文件系统/stat 模块 - session list --max-count 参数现在能正确限制显示的会话数量 (@mharris717) - 会话结束后干净退出,不再挂起 - 为权限和侧边栏设置滚动框样式 (@akronb) - 增加按钮高度并改进权限提示布局对齐 - 在 TUI 中显示带有徽标和项目详情的新会话横幅 ## 桌面 - 更新 WSL 集成的日语翻译 (@taroj1205) - 修复 isLocal 函数中 localhost URL 的工作逻辑 - 导航到项目时,跳转到最后一个会话 - 修复应用中的类型检查错误 - 在应用中去除 allServers 列表的重复项 - 调整会话轮次的水平内边距 - 收紧应用中提示停靠区的内边距 - 修复 sidecar 在 Windows 上弹出窗口的问题 - 延迟提示模式切换工具提示 - 缩短应用中的提示模式切换工具提示文本 - 减少审查面板的内边距 - 调整 UI 中的搜索按钮样式 - 扩展标题栏按钮的颜色状态 - 调整标题栏按钮的悬停和激活样式 - 共享按钮现在有边框 - 调整文件树背景色 - 处理桌面项目的 projectsKey 中的 sidecar 键 - 修复桌面应用错误识别本地服务器的问题 - 重构服务器管理后端 - 在所有嵌套级别使用 group-hover 切换文件树图标颜色 - 简化 TUI 中的模式切换图标样式 - 清理桌面实现 - 临时禁用桌面应用中的 WSL 支持 - 在提示输入中使用单选组 - 通过 CSS 简化提示模式切换图标颜色,并收紧 TUI 中的消息时间线内边距 - 修复应用中提示输入的异常问题 - 修复终端断开和重新同步功能 - 在桌面应用中复制 tauri-plugin-shell 逻辑 - 改进 TUI 中修改文件的可见性和按钮间距 - 在树视图中默认显示单色文件图标,悬停时显示颜色以减少视觉混乱 - 修复共享按钮文本样式,使用一致的 12px 常规字重 - 在权限请求中添加警告图标以提高可见性 - 提取停靠区提示 shell 组件 - 切换标签时 UI 不再闪烁 (@neriousy) - 避免桌面应用中 shell 启动时 sidecar 健康检查超时 (@ysm-dev) - 增加提示模式切换高度以提高可点击性 - 为桌面应用添加更多端到端测试 (@neriousy) - 更新 UI 中的放大镜图标 - 收紧标题栏操作的内边距 - 优化标题栏搜索和打开按钮的内边距 - 居中标题栏搜索并柔和按键绑定样式 - 统一标题栏搜索文本大小 - 使标题栏激活背景与悬停背景一致 - 在标题栏操作中使用弱边框 - 减少标题栏右侧内边距 - 保持文件树切换按钮可见 - 调整 UI 中图标按钮的间距 - 重构应用中的会话时间线和对话轮次处理 - 在 macOS 桌面上,保持 Escape 键处理仅限于提示输入框 (@itskritix) - 在 Windows 上隐藏服务器 CLI 窗口 ## SDK - 修复 SDK 发布脚本中的嵌套导出转换问题 **感谢 25 位社区贡献者:** - @itskritix: - fix(app): keep Escape handling local to prompt input on macOS desktop (#13963) - @vynnlee: - docs(ko): improve Korean translation accuracy and clarity in Zen docs (#13951) - @chenmijiang: - docs: improve zh-cn and zh-tw documentation translations (#13942) - @hmu332233: - fix(docs): correct reversed meaning in Korean plugins logging section (#13945) - @neriousy: - feat(desktop): more e2e tests (#13975) - fix(app): ui flashing when switching tabs (#13978) - @ysm-dev: - fix(desktop): avoid sidecar health-check timeout on shell startup (#13925) - @alexcarpenter: - fix: Homepage video section layout shift (#13987) - @gigamonster256: - fix: don't fetch models.dev on completion (#13997) - @GreenStage: - fix: Invalidate oauth credentials when oauth provider says so (#14007) - @anoldguy: - feat: surface plugin auth providers in the login picker (#13921) - @akronb: - fix(tui): style scrollbox for permission and sidebar (#12752) - @yikayiyo: - refactor: simplify redundant ternary in updateMessage (#13954) - @Nomadcxx: - feat: add Kilo as a native provider (#13765) - @finalfantasia: - fix(opencode): fix Clojure syntax highlighting (#13453) - @mharris717: - fix(cli): session list --max-count not honored, shows too few sessions (#14162) - @vglafirov: - feat: GitLab Duo - bump gitlab-ai-provider to 3.6.0 (adds Sonnet 4.6) (#14115) - @zarly: - feat: add Julia language server support (#14129) - @elithrar: - fix(github): emit PROMPT_TOO_LARGE error on context overflow (#14166) - fix(github): action branch detection and 422 handling (#14322) - @OpeOginni: - fix(opencode): update pasteImage to only increment count when the previous attachment is an image too (#14173) - @tesdal: - feat(plugin): pass sessionID and callID to shell.env hook input (#13662) - @edubxb: - fix(lsp): use HashiCorp releases API for installing terraform-ls (#14200) - @ariane-emory: - fix: token substitution in OPENCODE_CONFIG_CONTENT (alternate take) (#14047) - @Seungjun0906: - docs(ko): improve wording in ecosystem, enterprise, formatters, and github docs (#14220) - @shantur: - fix(core): normalize file.status paths relative to instance dir (#14207) - @taroj1205: - feat(i18n): update Japanese translations to WSL integration (#13160)