← 返回更新日志

OpenCode v2.2.0

2026-10-27 · GitHub 原文
### 亮点 - 创建、安装和分享[桌面插件](https://opencode.ai/v2/docs/build/plugins/gui)(实验性功能)([#55246](https://github.com/anomalyco/opencode/pull/55246), [#59469](https://github.com/anomalyco/opencode/pull/59469), [#59489](https://github.com/anomalyco/opencode/pull/59489)) - 全面焕新桌面应用体验 ([#56898](https://github.com/anomalyco/opencode/pull/56898), [#58865](https://github.com/anomalyco/opencode/pull/58865), [#55838](https://github.com/anomalyco/opencode/pull/55838), [#57962](https://github.com/anomalyco/opencode/pull/57962)) - 为插件和 SDK 添加实验性图像及决策生成 API,支持图像生成或决策模型(例如 typesafe、clef 等)工作流。([#59190](https://github.com/anomalyco/opencode/pull/59190), [#59380](https://github.com/anomalyco/opencode/pull/59380), [#58758](https://github.com/anomalyco/opencode/pull/58758)) - 插件现在可以通过 `ctx.session.instructions.entry.put/list/remove` 附加和更新带键的会话指令。每次更改不再需要编辑系统提示词并使提示词缓存失效,而是会在下一步骤中作为小型更新加入。这些条目在压缩和还原后仍会保留,也不会额外启动一次模型轮次。([#56550](https://github.com/anomalyco/opencode/pull/56550)) - 通过选择启用的方式恢复桌面版中的 Todo 工具 ([#59092](https://github.com/anomalyco/opencode/pull/59092)) - 添加可按提供商/模型配置的提示词缓存 TTL ([#59157](https://github.com/anomalyco/opencode/pull/59157)) ### 破坏性变更 #### `@opencode/ai` 根路径现在是 Promise API `@opencode/ai` 现在与 `@opencode/sdk` 和 `@opencode/client` 的工作方式一致:包根路径导出 Promise API,Effect API 已移至 `@opencode/ai/effect`。`@opencode/ai/promise` 已被移除,通配符子路径导出也被替换为明确列出的提供商和协议入口点。([#58847](https://github.com/anomalyco/opencode/pull/58847), [#59183](https://github.com/anomalyco/opencode/pull/59183)) ```diff -import { AI } from "@opencode/ai/promise" -import { LLM } from "@opencode/ai" +import { AI } from "@opencode/ai" +import { LLM } from "@opencode/ai/effect" ``` #### OpenCode GitHub Action 已移除 OpenCode GitHub Action 不再发布。请将其从工作流中移除。([#59032](https://github.com/anomalyco/opencode/pull/59032)) #### TUI 插件需要 OpenTUI 0.7 `@opencode/plugin` 现在要求使用 0.7.0 版的 `@opentui/core` 和 `@opentui/solid`,高于此前要求的 0.6.8 或更高版本。依赖 OpenTUI 0.6 的插件在升级前将无法安装。在 OpenTUI 0.7 中,自定义可渲染对象会在构造时从其类中读取钩子:请在构造函数中而不是类字段中赋值 `renderBefore`、`renderAfter` 和 `onLifecyclePass`;通过反射添加钩子后调用 `refreshHooks()`;并使用 `static nativeIntegration` 声明替代 `defineNativeIntegration()`。请参阅 [OpenTUI 0.7.0 发行说明](https://opentui.com/docs/releases/0.7.0)。([#59295](https://github.com/anomalyco/opencode/pull/59295)) ### 核心 #### 改进 - 添加实验性图像和决策生成 API 端点。([#59190](https://github.com/anomalyco/opencode/pull/59190)) - 为目录提供商添加图像和决策入口点。([#59380](https://github.com/anomalyco/opencode/pull/59380)) - 提升集成重建性能。([#59402](https://github.com/anomalyco/opencode/pull/59402)) - 允许自定义模型配置设置模型类型。([#59388](https://github.com/anomalyco/opencode/pull/59388)) - 允许模型列表 API 请求按类型筛选。([#59355](https://github.com/anomalyco/opencode/pull/59355)) - 让外部目录权限检查使用项目的文件系统。([#59089](https://github.com/anomalyco/opencode/pull/59089)) - 减少代码搜索发现超长行时的内存占用。([#59205](https://github.com/anomalyco/opencode/pull/59205)) - 允许插件按类型筛选事件订阅。([#58864](https://github.com/anomalyco/opencode/pull/58864)) - 添加可配置的提示词缓存 TTL。([#59157](https://github.com/anomalyco/opencode/pull/59157)) - 将图像缩放移出主进程,并释放空闲的图像内存。([#58820](https://github.com/anomalyco/opencode/pull/58820)) - 减少单个步骤中重复加载会话历史记录的次数。([#59091](https://github.com/anomalyco/opencode/pull/59091)) - 添加实验性会话媒体 API,以及可选择启用的媒体 URI 支持。([#59103](https://github.com/anomalyco/opencode/pull/59103)) - 在 `/api/info` 中添加机器主机名。([#59090](https://github.com/anomalyco/opencode/pull/59090)) - 在 `experimental.media_blob` 后添加用于会话媒体的实验性内容寻址 Blob 存储。([#58656](https://github.com/anomalyco/opencode/pull/58656), [#58741](https://github.com/anomalyco/opencode/pull/58741)) - 从最近一次完成的压缩开始读取会话历史记录。([#59020](https://github.com/anomalyco/opencode/pull/59020)) - 减少对未持久化的持久事件载荷进行编码的工作量。([#58923](https://github.com/anomalyco/opencode/pull/58923)) - 暴露来自 `serverInfo` 的 MCP 服务器标题。([#58950](https://github.com/anomalyco/opencode/pull/58950)) - 将 OpenCode Console 工作区配置应用为一个配置层。([#57703](https://github.com/anomalyco/opencode/pull/57703)) - 在 AI 包中用决策 API 替换实验性评估,包括 OpenAI Decisions、System One 和 Cloudflare Run 模型。([#58758](https://github.com/anomalyco/opencode/pull/58758), [#58382](https://github.com/anomalyco/opencode/pull/58382), [#58379](https://github.com/anomalyco/opencode/pull/58379), [#58381](https://github.com/anomalyco/opencode/pull/58381)) - 仅转换一次工具架构,以加快工具执行速度。([#58798](https://github.com/anomalyco/opencode/pull/58798), [#58848](https://github.com/anomalyco/opencode/pull/58848)) - 在识别仓库变更的同时加快 Git 项目发现速度。([#58616](https://github.com/anomalyco/opencode/pull/58616)) - 在 OpenCode Console 预算限制和 Go 用量阻止操作的位置显示相关信息。([#58694](https://github.com/anomalyco/opencode/pull/58694), [#58714](https://github.com/anomalyco/opencode/pull/58714)) - 记录提供商报告的会话成本。([#58562](https://github.com/anomalyco/opencode/pull/58562)) - 提升在 macOS 上查找 Git 的可靠性。([#58602](https://github.com/anomalyco/opencode/pull/58602)) - 每个提示词步骤仅解析一次模型详情。([#58601](https://github.com/anomalyco/opencode/pull/58601)) - 允许插件管理后续模型请求所用的会话指令条目。([#56550](https://github.com/anomalyco/opencode/pull/56550)) - 在“使用 ChatGPT 登录”中添加 GPT-6.1 Terra 和 GPT-6.1 Terra Fast。([#59359](https://github.com/anomalyco/opencode/pull/59359)) #### Bug 修复 - 在每个会话步骤和工具调用前,等待插件完成重新加载。感谢 [@kernel-oops](https://github.com/kernel-oops) 和 [@Tarquinen](https://github.com/Tarquinen)。([#51133](https://github.com/anomalyco/opencode/pull/51133)) - 根据提供商报告的令牌数确定会话压缩规模,以保留可用上下文。([#59441](https://github.com/anomalyco/opencode/pull/59441)) - 跳过不可用的 models.dev API 入口点,而不是让模型目录更新失败。([#59475](https://github.com/anomalyco/opencode/pull/59475)) - 当服务器无法编码响应时,返回带参考 ID 的服务器错误。([#59459](https://github.com/anomalyco/opencode/pull/59459)) - 避免在会话的模型请求运行期间预热该会话。([#59325](https://github.com/anomalyco/opencode/pull/59325)) - 在迁移期间保留旧版 MCP `codemode` 设置。感谢 [@tneemo](https://github.com/tneemo)。([#59126](https://github.com/anomalyco/opencode/pull/59126)) - 为 `eu` 和 `us` 多区域使用正确的 Vertex AI 端点。([#59335](https://github.com/anomalyco/opencode/pull/59335)) - 接受包含 `http://` 或 `https://` 的 Databricks 主机地址。([#59334](https://github.com/anomalyco/opencode/pull/59334)) - 当补丁编辑将文件移动到其自身位置时,保持文件完整。([#59197](https://github.com/anomalyco/opencode/pull/59197)) - 在自定义命令输入中保留字面量 `$0` 和 `$ARGUMENTS` 文本。([#59198](https://github.com/anomalyco/opencode/pull/59198)) - 在关闭期间并发关闭项目位置。([#59326](https://github.com/anomalyco/opencode/pull/59326)) - 将包含尾部斜杠在内的等效目录路径视为同一位置。([#59327](https://github.com/anomalyco/opencode/pull/59327)) - 向 Kimi 发送适用于元组、默认参数和类关键字参数的有效工具架构。([#59207](https://github.com/anomalyco/opencode/pull/59207)) - 当 `execute` 权限被拒绝时,直接暴露 Code Mode MCP 工具。([#59315](https://github.com/anomalyco/opencode/pull/59315)) - 跨位置和进程协调 OAuth 凭据刷新。([#54023](https://github.com/anomalyco/opencode/pull/54023)) - 在没有裸远程名称的情况下正确列出和搜索远程 Git 分支。([#58597](https://github.com/anomalyco/opencode/pull/58597)) - 正确检测 AVIF、HEIC/HEIF、QuickTime 和 M4A 附件。([#58480](https://github.com/anomalyco/opencode/pull/58480), [#58886](https://github.com/anomalyco/opencode/pull/58886), [#58887](https://github.com/anomalyco/opencode/pull/58887)) - 减少长时间运行的工具调用和未变更的已挂钩模型请求所保留的内存。([#58448](https://github.com/anomalyco/opencode/pull/58448), [#58449](https://github.com/anomalyco/opencode/pull/58449)) - 无需读取每条消息即可加载会话差异,提高大型会话的性能。([#57686](https://github.com/anomalyco/opencode/pull/57686)) - 当会话事件使用等效目录路径时,保持活动位置存活。([#56259](https://github.com/anomalyco/opencode/pull/56259)) - 仅在兼容性技能自身的来源发生变化时重新加载它们。([#59086](https://github.com/anomalyco/opencode/pull/59086)) - 配置未变更时,避免发布冗余的目录更新。([#56267](https://github.com/anomalyco/opencode/pull/56267)) - 轮询会话表单时,避免启动空闲或已删除的项目位置。([#59083](https://github.com/anomalyco/opencode/pull/59083)) - 返回代理和提供商列表前等待插件就绪,防止目录不完整。([#59082](https://github.com/anomalyco/opencode/pull/59082)) - 项目目录被删除后,仍可管理会话和指令条目。([#58997](https://github.com/anomalyco/opencode/pull/58997)) - 仅在首次使用时启动模糊文件搜索,减少项目启动工作量。([#58959](https://github.com/anomalyco/opencode/pull/58959)) - 关闭卡住时在 10 秒后退出,并报告待处理工作。([#58817](https://github.com/anomalyco/opencode/pull/58817)) - 在模型目录未发生变化时,无需重新下载即可使其保持最新。([#58813](https://github.com/anomalyco/opencode/pull/58813)) - 发送 xAI Responses 的 `top_k` 设置,并停止发送不支持的惩罚参数。([#58868](https://github.com/anomalyco/opencode/pull/58868)) - 为 Groq 遵循共享的并行工具调用和服务层级设置。([#58871](https://github.com/anomalyco/opencode/pull/58871)) - 重试受限流的请求,而不是将其错误报告为上下文溢出。([#58866](https://github.com/anomalyco/opencode/pull/58866)) - 保留在 OpenAI Chat 结束原因之后到达的流式文本和推理内容。([#58851](https://github.com/anomalyco/opencode/pull/58851)) - 无论错误类型出现在哪里,都以一致方式对 AWS REST JSON 错误进行分类。([#58770](https://github.com/anomalyco/opencode/pull/58770)) - 验证大型 base64 附件时避免变慢或卡住。([#58811](https://github.com/anomalyco/opencode/pull/58811)) - 将 Bedrock 限流错误作为速率限制进行重试,而不是视为上下文溢出。感谢 [@Irish-Joseph](https://github.com/Irish-Joseph)。([#58759](https://github.com/anomalyco/opencode/pull/58759)) - 当服务器返回格式错误的工具时,保持其他正常工作的 MCP 工具可用。([#58350](https://github.com/anomalyco/opencode/pull/58350)) - 跨目录匹配绝对指令文件 glob。感谢 [@heimoshuiyu](https://github.com/heimoshuiyu)。([#58749](https://github.com/anomalyco/opencode/pull/58749)) - 在 Bedrock 端点 URL 中使用已配置的提供商区域。([#58538](https://github.com/anomalyco/opencode/pull/58538)) - 处理未知的 OpenAI Chat 结束原因,避免响应失败。([#58608](https://github.com/anomalyco/opencode/pull/58608)) - 当端点转换未产生变化时,避免不必要的 Azure 模型更新。([#58600](https://github.com/anomalyco/opencode/pull/58600)) - 对不透明的浏览器截图优先使用 JPEG,以减小附件大小。([#56990](https://github.com/anomalyco/opencode/pull/56990)) - 当兼容主机省略格式时,根据生成图像的字节内容检测其类型。([#58475](https://github.com/anomalyco/opencode/pull/58475)) - 当会话运行耗时较长的工具或等待输入时保持项目服务存活,并设置 24 小时不活动上限。([#57274](https://github.com/anomalyco/opencode/pull/57274)) - 防止不相关的配置变更和兼容性技能集中更新反复触发技能重新加载。([#56260](https://github.com/anomalyco/opencode/pull/56260)) ### TUI #### 改进 - 降低动画会话标签脉冲可见时的 CPU 使用率。([#59235](https://github.com/anomalyco/opencode/pull/59235)) - 在集成选择器中将 OpenCode Console 列在 OpenCode Go 之前。([#59107](https://github.com/anomalyco/opencode/pull/59107)) - 为 OpenCode Console 用量限制添加 `/usage`、模型选择器、提示词、侧边栏、警告和错误详情。([#58731](https://github.com/anomalyco/opencode/pull/58731)) - 当并发进程更新 CLI 服务文件时,提高服务注册的可靠性。([#59105](https://github.com/anomalyco/opencode/pull/59105)) #### Bug 修复 - 将 `opencode run --format json` 的服务器连接错误以 JSON 格式返回。感谢 [@andreivince](https://github.com/andreivince)。([#59366](https://github.com/anomalyco/opencode/pull/59366)) - 将粘贴的提示词文本复制出来时保留其内容。([#59209](https://github.com/anomalyco/opencode/pull/59209)) - 当后台服务文件短暂锁定时,在 Windows 上可靠地更新该服务。([#59105](https://github.com/anomalyco/opencode/pull/59105)) - 不在工具 Shell 中使用后台服务状态目录,并识别占用其端口的进程。([#58815](https://github.com/anomalyco/opencode/pull/58815)) - 切换分支后刷新 Git 分支详情。([#58982](https://github.com/anomalyco/opencode/pull/58982)) - 当插件插槽或路由渲染纯文本时,保持 TUI 运行。感谢 [@anmol0b](https://github.com/anmol0b) 和 [@Tarquinen](https://github.com/Tarquinen)。([#58144](https://github.com/anomalyco/opencode/pull/58144)) - 在受支持的 CLI 命令中的任意位置接受 `--server` 和 `--standalone`。([#58505](https://github.com/anomalyco/opencode/pull/58505)) - 释放已关闭和后台会话的转录记录,防止内存持续增长。([#58434](https://github.com/anomalyco/opencode/pull/58434), [#57025](https://github.com/anomalyco/opencode/pull/57025)) - 通过 HTTP 代理连接远程访问隧道。([#58464](https://github.com/anomalyco/opencode/pull/58464)) - 让开发构建使用与发行构建分离的服务器、数据库和端口。([#58331](https://github.com/anomalyco/opencode/pull/58331)) ### 桌面版 #### 改进 - 从“设置 › 扩展 › 插件”管理桌面插件。([#59489](https://github.com/anomalyco/opencode/pull/59489)) - 添加持久化的桌面缩放设置。([#59277](https://github.com/anomalyco/opencode/pull/59277)) - 明确启用后,在桌面调试构建收到 `SIGUSR2` 时捕获堆快照。([#58317](https://github.com/anomalyco/opencode/pull/58317)) - 在浏览器标签页中显示已打开会话的标题。([#59131](https://github.com/anomalyco/opencode/pull/59131)) - 在编辑器上方显示 todowrite 任务。([#59092](https://github.com/anomalyco/opencode/pull/59092)) - 返回会话标签页时仅加载一次会话历史记录。([#59166](https://github.com/anomalyco/opencode/pull/59166)) - 使用数字键回答问题,并将多选选项显示为复选框。([#58595](https://github.com/anomalyco/opencode/pull/58595)) - 在位置选择器中添加始终可用的“添加项目”操作。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 允许从任意消息回退或创建分支。([#58865](https://github.com/anomalyco/opencode/pull/58865)) - 允许编辑行注释和复制 Shell 输出。([#58970](https://github.com/anomalyco/opencode/pull/58970), [#58974](https://github.com/anomalyco/opencode/pull/58974)) - 大幅加快消息中 Mermaid 图表的渲染速度,并使其尺寸适应列宽。([#57483](https://github.com/anomalyco/opencode/pull/57483), [#57004](https://github.com/anomalyco/opencode/pull/57004)) - 为桌面调试构建添加可选择启用的内存日志记录和远程调试。([#58315](https://github.com/anomalyco/opencode/pull/58315)) - 在实验性“来源”设置后显示某个轮次的 Web 来源。([#58307](https://github.com/anomalyco/opencode/pull/58307)) - 从已完成的 Shell 通知跳转到其 Shell 输出。([#58663](https://github.com/anomalyco/opencode/pull/58663)) - 语音通话面板悬浮时保持编辑器可用。([#58587](https://github.com/anomalyco/opencode/pull/58587)) - 默认使用 Soft Radar 活动指示器,并提供实验性变体。([#58010](https://github.com/anomalyco/opencode/pull/58010), [#57903](https://github.com/anomalyco/opencode/pull/57903)) - 添加实验性的新模型选择器。([#58413](https://github.com/anomalyco/opencode/pull/58413)) - 在桌面测试版中添加实验性 Console 语音通话。([#58249](https://github.com/anomalyco/opencode/pull/58249)) - 添加时间线宽度设置。([#58308](https://github.com/anomalyco/opencode/pull/58308)) - 通过固定分区改进命令、会话和模型搜索列表。([#58222](https://github.com/anomalyco/opencode/pull/58222)) - 为最近关闭的会话添加搜索功能。([#55721](https://github.com/anomalyco/opencode/pull/55721)) - 在侧边标签页中打开扩展配置和技能。([#58023](https://github.com/anomalyco/opencode/pull/58023)) - 悬停时打开会话扩展列表,并支持键盘导航。([#58021](https://github.com/anomalyco/opencode/pull/58021)) - 添加带缩放控件的视频预览。([#57924](https://github.com/anomalyco/opencode/pull/57924)) - 添加自动生成的项目头像和实验性头像样式切换器。([#57871](https://github.com/anomalyco/opencode/pull/57871), [#57930](https://github.com/anomalyco/opencode/pull/57930)) - 在新标签页视图中添加最近关闭的侧边标签页。([#57863](https://github.com/anomalyco/opencode/pull/57863)) - 添加可搜索的提示词历史记录选择器。([#57716](https://github.com/anomalyco/opencode/pull/57716)) - 从命令面板中查找设置。([#57651](https://github.com/anomalyco/opencode/pull/57651)) - 对排队消息和引导消息进行分组,并将连续的用户消息归入同一条元数据行。([#57561](https://github.com/anomalyco/opencode/pull/57561), [#57552](https://github.com/anomalyco/opencode/pull/57552)) - 提升文件树和文件夹选择器性能。([#57573](https://github.com/anomalyco/opencode/pull/57573), [#57557](https://github.com/anomalyco/opencode/pull/57557)) - 加载新结果时保持分支搜索结果可见。([#57531](https://github.com/anomalyco/opencode/pull/57531)) - 在会话标题栏中添加会话详情菜单。([#57528](https://github.com/anomalyco/opencode/pull/57528)) - 在子代理的编辑器区域显示其模型、状态和已用时间。([#57473](https://github.com/anomalyco/opencode/pull/57473)) - 允许从标签页菜单删除会话,并使用 Ctrl+R 重命名当前会话。([#57453](https://github.com/anomalyco/opencode/pull/57453), [#57423](https://github.com/anomalyco/opencode/pull/57423)) - 恢复会话摘要和项目菜单操作。([#57781](https://github.com/anomalyco/opencode/pull/57781)) - 允许将后台活动胶囊放置在左侧、中央、右侧,或将其隐藏。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 在会话标题栏和位置菜单中显示项目与工作树详情。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 在调试栏中添加文本渲染控件。([#57326](https://github.com/anomalyco/opencode/pull/57326)) - 显示后台工作的已用时间。([#57218](https://github.com/anomalyco/opencode/pull/57218)) - 提升流式 Markdown 渲染的可靠性和性能。([#57016](https://github.com/anomalyco/opencode/pull/57016)) - 拆分侧边窗格,并添加带标签页且可拖动的底部窗格。([#56960](https://github.com/anomalyco/opencode/pull/56960)) - 在连接、会话和设置视图中添加一致的 MCP 登录及错误状态链接。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 一次打开多个文件标签页,并在标签页中打开侧面板内容。([#57182](https://github.com/anomalyco/opencode/pull/57182), [#57094](https://github.com/anomalyco/opencode/pull/57094)) - 引导会话时,将正在运行的工作移至后台。([#57142](https://github.com/anomalyco/opencode/pull/57142)) - 允许时间线在编辑器下方滚动,同时保持其内容可见。([#57141](https://github.com/anomalyco/opencode/pull/57141)) - 将设置简化为扁平列表,并提供按服务器切换的切换器。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 将选中的时间线或终端文本引用到编辑器中。([#55664](https://github.com/anomalyco/opencode/pull/55664), [#58420](https://github.com/anomalyco/opencode/pull/58420)) - 从标题栏搜索在线服务器上的会话。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 添加“减少动态效果”外观设置。([#57103](https://github.com/anomalyco/opencode/pull/57103)) - 在新会话位置选择器中显示所有服务器上的项目。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 通过带收藏和最近使用模型的可搜索对话框选择模型。([#55838](https://github.com/anomalyco/opencode/pull/55838)) - 将新会话位置选择器附加到编辑器下方。([#56952](https://github.com/anomalyco/opencode/pull/56952)) - 直接从消息和编辑器缩略图打开图像预览。([#56896](https://github.com/anomalyco/opencode/pull/56896)) - 在简化的位置选择器中,从当前分支创建新工作树。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 从编辑器活动胶囊管理正在运行的子代理和 Shell。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 同步各服务器上的项目,并在主页上优先显示常用项目。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 在设置中选择 Focus 或 Pro 界面布局。([#56898](https://github.com/anomalyco/opencode/pull/56898)) - 将终端作为侧面板标签页打开。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 从统一的新会话位置对话框中选择项目和工作树。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 默认将子代理显示为独立的时间线行。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 为垂直标签页添加侧边栏切换按钮。([#55646](https://github.com/anomalyco/opencode/pull/55646)) - 为侧面板标签页添加 ⌘1–9 和 ⇧⌘[ / ⇧⌘] 快捷键。([#57301](https://github.com/anomalyco/opencode/pull/57301)) - 当会话位置不可用时,允许选择新目录或工作树。([#56087](https://github.com/anomalyco/opencode/pull/56087)) - 使用紧凑的可搜索列表焕新“管理模型”、MCP 和分叉对话框。([#56029](https://github.com/anomalyco/opencode/pull/56029), [#56028](https://github.com/anomalyco/opencode/pull/56028)) - 未来的 Windows 桌面版更新可在约一秒内完成安装。([#55933](https://github.com/anomalyco/opencode/pull/55933)) - 在“执行”行中显示各个 Code Mode 工具调用。([#55649](https://github.com/anomalyco/opencode/pull/55649)) - 添加“评论”时间线类别和显示设置。([#55248](https://github.com/anomalyco/opencode/pull/55248)) - 支持在消息中使用指向其他会话的 `@` 链接。([#57480](https://github.com/anomalyco/opencode/pull/57480)) - 优化会话标题栏、标题栏、编辑器、文件树、浏览器窗格、时间线和设置中的间距、对齐、边框及排版。([#58195](https://github.com/anomalyco/opencode/pull/58195), [#57776](https://github.com/anomalyco/opencode/pull/57776), [#57570](https://github.com/anomalyco/opencode/pull/57570), [#57782](https://github.com/anomalyco/opencode/pull/57782), [#57336](https://github.com/anomalyco/opencode/pull/57336), [#57363](https://github.com/anomalyco/opencode/pull/57363), [#58100](https://github.com/anomalyco/opencode/pull/58100), [#58979](https://github.com/anomalyco/opencode/pull/58979)) #### Bug 修复 - 防止标签页快捷键重复,并从“快捷键”中移除已卸载插件的命令。([#59499](https://github.com/anomalyco/opencode/pull/59499)) - 防止待办事项在待办面板中缩小。([#59430](https://github.com/anomalyco/opencode/pull/59430)) - 切换问题时,保持问题停靠栏中的答案和控件位置正确。([#59383](https://github.com/anomalyco/opencode/pull/59383)) - 搜索期间保持 @ 菜单打开。([#59425](https://github.com/anomalyco/opencode/pull/59425)) - 在 macOS 上按下 Cmd+Q 后完成退出。感谢 [@anmol0b](https://github.com/anmol0b)。([#59144](https://github.com/anomalyco/opencode/pull/59144)) - 从设置中切换当前会话位置的 MCP 服务器。([#59132](https://github.com/anomalyco/opencode/pull/59132)) - 当前一次移动遗漏引导消息时,仍能将其送达。([#58984](https://github.com/anomalyco/opencode/pull/58984)) - 搜索期间保持会话和命令面板的搜索结果稳定。([#58908](https://github.com/anomalyco/opencode/pull/58908), [#57479](https://github.com/anomalyco/opencode/pull/57479)) - 将“搜索项目”限制在项目列表内。([#58978](https://github.com/anomalyco/opencode/pull/58978)) - 允许自定义的“关闭标签页”快捷键关闭终端和浏览器标签页。([#58945](https://github.com/anomalyco/opencode/pull/58945)) - 防止实时状态行跳动或在编辑器上方留下空隙。([#58691](https://github.com/anomalyco/opencode/pull/58691), [#58697](https://github.com/anomalyco/opencode/pull/58697)) - 打开对话框时,保持其后的浏览器标签页静止。([#58958](https://github.com/anomalyco/opencode/pull/58958)) - 侧边栏或面板移动时,保持侧面板内容和浏览器页面可见。([#58202](https://github.com/anomalyco/opencode/pull/58202), [#58185](https://github.com/anomalyco/opencode/pull/58185)) - 可靠地渲染会话差异。 - 在适当情况下,将键盘焦点保持在终端、侧面板、对话框和编辑器中。([#57980](https://github.com/anomalyco/opencode/pull/57980), [#57297](https://github.com/anomalyco/opencode/pull/57297), [#56273](https://github.com/anomalyco/opencode/pull/56273)) - 保留空白的浏览器和侧面板标签页,而不是自动关闭它们。([#58440](https://github.com/anomalyco/opencode/pull/58440)) - 通过释放已关闭的转录记录、已丢弃的工具结果图像、保留的 UI 批次和已中止的时间线工作,降低桌面版内存占用。([#57025](https://github.com/anomalyco/opencode/pull/57025), [#58434](https://github.com/anomalyco/opencode/pull/58434), [#58427](https://github.com/anomalyco/opencode/pull/58427), [#58560](https://github.com/anomalyco/opencode/pull/58560), [#58447](https://github.com/anomalyco/opencode/pull/58447), [#58439](https://github.com/anomalyco/opencode/pull/58439), [#58432](https://github.com/anomalyco/opencode/pull/58432)) - 恢复文件树中的水平滚动和固定变更徽章。([#58117](https://github.com/anomalyco/opencode/pull/58117)) - 为仅推理轮次显示实时“思考中”状态。([#58299](https://github.com/anomalyco/opencode/pull/58299)) - 初始可见轮次完成后停止加载更早的历史记录,并优先加载第一页转录记录。([#57700](https://github.com/anomalyco/opencode/pull/57700), [#57741](https://github.com/anomalyco/opencode/pull/57741)) - 刷新期间保持主页项目和会话列表可靠。 - 防止已删除的会话重新出现在主页上。([#55349](https://github.com/anomalyco/opencode/pull/55349)) - 在 @ 提及中立即找到会话,包括标题由多个单词组成的会话。([#57683](https://github.com/anomalyco/opencode/pull/57683)) - 与服务器同步变更时,保持排队消息可编辑。([#57569](https://github.com/anomalyco/opencode/pull/57569)) - 在浏览器窗格中打开图像和视频 URL。([#57562](https://github.com/anomalyco/opencode/pull/57562)) - 将已提交的生成表单标记为完成,并确保每个响应仅发送一次。([#57537](https://github.com/anomalyco/opencode/pull/57537)) - 通过复用视图、虚拟化中型文件和缓存差异,提升文件视图性能。([#57551](https://github.com/anomalyco/opencode/pull/57551)) - 将未跟踪的文件夹归入一个可展开的审查行。([#57527](https://github.com/anomalyco/opencode/pull/57527)) - 允许从会话视图将内容粘贴到编辑器中。([#57545](https://github.com/anomalyco/opencode/pull/57545)) - 恢复失败的测试版后台服务器,并保留其所需的 CLI 版本。([#57321](https://github.com/anomalyco/opencode/pull/57321)) - 恢复创建新工作树会话时的分支选择。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 安装测试版更新时保持正在运行的服务器可用。([#57309](https://github.com/anomalyco/opencode/pull/57309)) - 让用户消息、Shell 输出和 Code Mode 输出中的链接可点击。([#57211](https://github.com/anomalyco/opencode/pull/57211), [#57303](https://github.com/anomalyco/opencode/pull/57303)) - 让“检查更新”始终报告结果。([#57296](https://github.com/anomalyco/opencode/pull/57296)) - 使用 ⇧⌘T 重新打开最近关闭的侧面板标签页,并使用 ⌘T 打开浏览器标签页。([#57269](https://github.com/anomalyco/opencode/pull/57269), [#57156](https://github.com/anomalyco/opencode/pull/57156)) - 保持 OpenCode 键盘快捷键在浏览器窗格中可用。([#56697](https://github.com/anomalyco/opencode/pull/56697), [#55240](https://github.com/anomalyco/opencode/pull/55240)) - 预览通过文件路径提供的图像附件。([#57249](https://github.com/anomalyco/opencode/pull/57249)) - 一致地应用已配置的代码和 UI 字体。([#57242](https://github.com/anomalyco/opencode/pull/57242)) - 切换会话时保持活动和忙碌指示器稳定。([#57196](https://github.com/anomalyco/opencode/pull/57196)) - 保留 ⇧⌘W 用于关闭窗口,使 ⌘W 不会关闭窗口。([#57150](https://github.com/anomalyco/opencode/pull/57150)) - 让图像预览切换过程平滑调整大小,避免裁剪或阻止点击。([#56997](https://github.com/anomalyco/opencode/pull/56997), [#57324](https://github.com/anomalyco/opencode/pull/57324)) - 在标题栏会话搜索同时存在时,保持会话内搜索可靠。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 使用键盘选择模型后,将焦点返回提示词输入框。 - 打开可搜索的选择器时定位到顶部,并聚焦搜索框。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 保持表格在固定标题下方可见。([#57050](https://github.com/anomalyco/opencode/pull/57050)) - 调整提供商连接步骤,使其适应对话框且不移动对话框顶部边缘。([#57006](https://github.com/anomalyco/opencode/pull/57006)) - 为服务器不可用面板提供清晰的错误样式。([#57003](https://github.com/anomalyco/opencode/pull/57003)) - 让鼠标滚轮和键盘滚动在 Linux 上立即响应。([#57962](https://github.com/anomalyco/opencode/pull/57962)) - 限制过长的“执行”工具代码,并显示成功的 Code Mode 输出。([#56915](https://github.com/anomalyco/opencode/pull/56915)) - 打开对话框时聚焦最有用的控件,包括删除确认中的“取消”。([#57453](https://github.com/anomalyco/opencode/pull/57453)) - 将 Windows 测试版、稳定版和每夜构建安装到不同目录。([#56904](https://github.com/anomalyco/opencode/pull/56904)) - 当服务器无法访问时,保持会话标签页可恢复。([#56248](https://github.com/anomalyco/opencode/pull/56248)) - 让编辑器模型的提供商和会话模型解析方式与 TUI 保持一致。([#56225](https://github.com/anomalyco/opencode/pull/56225)) - 重新读取打开的文件时不重置其滚动位置。([#55899](https://github.com/anomalyco/opencode/pull/55899)) - 禁用代理时隐藏代理名称。([#57525](https://github.com/anomalyco/opencode/pull/57525)) - 优化浅色和深色主题下侧边栏、面板、编辑器、活动、问题停靠栏、加载和动态效果的行为。([#57449](https://github.com/anomalyco/opencode/pull/57449), [#58013](https://github.com/anomalyco/opencode/pull/58013), [#58577](https://github.com/anomalyco/opencode/pull/58577), [#57944](https://github.com/anomalyco/opencode/pull/57944), [#58052](https://github.com/anomalyco/opencode/pull/58052), [#58494](https://github.com/anomalyco/opencode/pull/58494), [#58073](https://github.com/anomalyco/opencode/pull/58073), [#58114](https://github.com/anomalyco/opencode/pull/58114)) - 优化桌面控件的悬停状态、光标、工具提示、焦点环、滚动条和过渡效果。([#57653](https://github.com/anomalyco/opencode/pull/57653), [#57787](https://github.com/anomalyco/opencode/pull/57787), [#57304](https://github.com/anomalyco/opencode/pull/57304), [#58971](https://github.com/anomalyco/opencode/pull/58971), [#57221](https://github.com/anomalyco/opencode/pull/57221), [#57192](https://github.com/anomalyco/opencode/pull/57192), [#58575](https://github.com/anomalyco/opencode/pull/58575), [#58580](https://github.com/anomalyco/opencode/pull/58580)) ### SDK #### 改进 - 为 Toast、对话框、通知、标签页、编辑器控件和自定义 UI 添加 GUI 插件 API。([#59469](https://github.com/anomalyco/opencode/pull/59469)) #### Bug 修复 - 修复面向 TypeScript 使用者生成的 Promise 客户端输入类型。([#58875](https://github.com/anomalyco/opencode/pull/58875)) - 允许 SDK 客户端丢弃内联的工具结果文件载荷,以减少内存占用。([#59101](https://github.com/anomalyco/opencode/pull/59101)) - 避免对 SDK 客户端尚未加载的位置执行不必要的目录刷新。([#55237](https://github.com/anomalyco/opencode/pull/55237), [#59099](https://github.com/anomalyco/opencode/pull/59099)) - 恢复 SDK 客户端断开连接期间创建的运行中会话。([#53012](https://github.com/anomalyco/opencode/pull/53012)) - 从内存中释放已省略的工具图像载荷,而不是保留其 base64 数据。([#58560](https://github.com/anomalyco/opencode/pull/58560))