openchamber 1.11.7 更新解读:Git 提交历史分支图、桌面开机自启与扩展流式响应恢复
【免费下载链接】openchamberAgentic Development Environment based on OpenCode AI agent项目地址: https://gitcode.com/gh_mirrors/op/openchamber
本篇文章基于 openchamber 仓库的 changelog/1.11.7.md(版本 1.11.7,发布于 2026-05-27,主题 "Commit branch graphs and restored streaming"),逐条拆解本次桌面端(App)与 VS Code 扩展的全部新增、改进与修复内容,并结合仓库源码说明其落地实现与验证方式。读完本文,你将掌握 1.11.7 带来的 Git 提交历史分支图、开机自启设置、繁体中文界面、用量预测行隐藏、Agent 模型切换等能力,以及 VS Code 扩展实时流式输出恢复的底层机制。
版本概览与变更内容组织方式
1.11.7 的 release notes 采用 front matter 描述版本元信息(version、date、title),正文按## App与## VS Code两大载体分组,组内再按New(新增)、Improvements(改进)、Fixes(修复)归类。这与仓库 changelog/README.md 描述的规范完全一致:每版本一个文件,bun run changelog:check会校验每个源文件并确保生成的产物(如 packages/vscode/CHANGELOG.md 与 changelog/index.json)不落后于已发布版本,CI 会强制执行。发布时通过oc-dev create-release将unreleased.md转为对应版本文件并重新渲染这些产物。
本次共包含:
- App 新增 4 项:Git 提交历史分支图、桌面开机自启、繁体中文翻译、用量卡片隐藏预测行;
- App 改进 1 项:Notes/Todos 完成项排序与会话发送对话框的模型选择器优化;
- App 修复 3 项:切换 Agent 联动模型、畸形 tool diff 不再破坏聊天渲染、内联重命名焦点问题;
- VS Code 新增 1 项、修复 2 项:用量预测行隐藏设置同步,以及恢复扩展内的实时流式输出。
App 新增功能详解
Git 提交历史弹窗:分支图与提交行操作
1.11.7 为 Git 提交历史新增了分支图(branch graph)展示,并在历史弹窗(history modal)中为每条提交行提供可操作项(commit-row actions),该功能由社区贡献者 @ermanhavuc 实现。这意味着在查看提交历史时,不再只是扁平的提交列表,而是可以直观看到分支的合并、分叉结构,并能针对单条提交直接执行操作(如复制哈希、查看变更等)。
从源码结构看,该功能承载于 packages/ui/src/components/views/GitView.tsx:其中管理了commitMessage、commitAction('commit' | 'commitAndPush' | null)等状态,并通过commitFilesMap缓存按提交哈希拉取的文件变更明细(见第 689-837 行附近的懒加载与缓存逻辑),支持复制提交哈希等 toast 反馈。提交数据来自gitDirectory对应的仓库,历史弹窗的分支图渲染即建立在这套提交列表与哈希缓存机制之上。
桌面端:开机自启设置与折叠窗口保留 WebView 状态
桌面版(Electron)新增了“开机自启”(launch-at-startup)设置项,用户可在设置中开关应用随系统登录自动启动。仓库中对应的平台实现位于 packages/electron/linux-autostart.mjs,并有配套测试 packages/electron/linux-autostart.test.mjs 覆盖自启行为;Windows/macOS 的登录项注册则通过 Electron 主进程能力完成,统一由设置项驱动。
另一个细节是:折叠(最小化到托盘/隐藏)的浏览器窗口现在会保留其 WebView 状态,重新展开时不会丢失已加载的页面上下文。这与 packages/electron/renderer-recovery.mjs 所负责的渲染进程恢复机制同属桌面端健壮性工程的一部分——窗口状态与渲染内容的保留,是长时间挂机开发场景的关键体验。
界面本地化:新增繁体中文翻译
1.11.7 为界面新增了繁体中文(Traditional Chinese)翻译,由 @Jia35 贡献。仓库的国际化基础设施确认了这一能力的落地方式:
- packages/ui/src/lib/i18n/intl.ts 第 9 行注册了
'zh-TW': 'zh-TW'区域标识; - packages/ui/src/lib/i18n/store.ts 第 33-34 行在检测到
zh-TWlocale 时动态import('./messages/zh-TW')加载对应的词典模块。
也就是说,翻译以独立的 message 模块按需加载,不随主包体积增长,界面语言切换后即可生效。
用量卡片:可隐藏预测行
用量(Usage)卡片上展示的“预测行”(prediction rows,即按当前消耗节奏预测窗口结束时用量的一行提示)现在可以通过设置项隐藏,同样由 @ermanhavuc 贡献。从 i18n 消息键可以反推其 UI 形态:settings.usage.pace.prediction(预测值)、settings.usage.pace.predictionLabel(如 "Pred:"/"预测:" 短标签)、settings.usage.pace.predictionTooltip(“按当前节奏预测的窗口结束时用量”),这些键在多语言文件中均有对应译文(例如 packages/ui/src/lib/i18n/messages/ja.settings.ts 第 1329-1334 行、packages/ui/src/lib/i18n/messages/fr.settings.ts 第 1214-1219 行)。用量展示组件本体位于 packages/ui/src/components/sections/usage/UsageCard.tsx 与 UsagePage.tsx。对于不需要节奏预估的用户,开启隐藏后卡片更加简洁。
App 改进:Notes/Todos 排序与模型选择器
1.11.7 对 Notes/Todos 模块做了两处体验改进(感谢 @kostazol、@rghamilton3):
- 完成项固定在列表末尾:已完成的 todo 不再与未完成项混杂,而是统一沉底,便于聚焦剩余工作;
- 发送到会话(send-to-session)对话框的模型选择器更干净:将笔记/待办发送到会话时,模型选择器的展示被整理得更清爽,减少选择干扰。
这两项均为交互细节优化,不改变数据结构,已有笔记与待办无需迁移。
App 修复:Agent 联动、畸形 diff 与内联重命名
选择 Agent 时自动切换到其配置的模型
此前在聊天输入区切换 Agent 后,模型并不会跟随变化,容易造成“选了别的 Agent 却还在用旧模型”的误用。本次修复(@Adrian-Eckardt)使选择某个 Agent 时,会自动切换为该 Agent 配置的模型。对应的 UI 状态集中在 packages/ui/src/components/chat/ChatInput.tsx 与模型选择相关组件中,从源码结构看,模型选择的变更会触发对当前 Agent 默认模型的读取并回填输入区。
畸形 tool diff 不再破坏聊天渲染
工具调用返回的 diff 如果格式异常(malformed),此前可能导致整个聊天渲染中断或出现异常界面。本次修复对 tool diff 的解析做了容错处理,使其在异常输入下也能安全降级,保证聊天消息正常展示。相关的 diff 渲染实现可参考 packages/ui/src/components/views/DiffView.tsx 及其配套的 hunk 解析测试 packages/web/src/DiffView.hunks.test.ts,从中可以看到 diff 被切分为 hunk 处理的结构化方式。
内联会话重命名不再因焦点变化立即退出
会话列表中的内联重命名(inline renaming)此前在输入框焦点变化后会立刻提交并退出编辑态,导致用户想点击输入框之外的区域(如选择文字)时误触完成。本次修复(@youfch)调整了焦点变化的退出判定时机,使重命名输入更稳定。
VS Code 扩展:新增用量设置并恢复实时流式输出
同步新增:隐藏用量预测行
VS Code 扩展同步了桌面端的用量设置,新增“隐藏 usage 卡片上的预测行”设置项。该设置通过扩展的设置注册(见 packages/vscode/src/settings-registry.json)暴露给用户,与 App 端行为保持一致。
修复:恢复扩展内的实时流式输出
1.11.7 标题中的 “restored streaming” 正是指此修复:此前 VS Code 扩展中的实时流式输出(模型响应逐字/逐块推送到聊天界面)出现回归,本次予以恢复。从底层机制看,扩展通过 SSE 代理与 opencode 服务通信,流式恢复依赖连接断开后的自动重连。在 packages/vscode/src/sseProxy.ts 中可以看到完整的重连实现:第 208-226 行附近实现了带指数退避(exponential backoff)的重连逻辑,MAX_RECONNECTS限制最大重试次数,每次连接失败后递增reconnectAttempts,在未中止(signal.aborted)且未超过上限时持续尝试重连。该文件的测试 packages/vscode/src/sseProxy.test.js 与 packages/vscode/src/sseProxy.test.ts 覆盖了连接与重连场景。恢复流式后,长任务中模型输出可以实时可见,不再需要等待完整响应结束。
小结与进一步阅读
1.11.7 是一版典型的“体验修复 + 协作贡献”混合版本:App 端通过分支图提升了 Git 工作流可视化,通过开机自启、WebView 状态保留与繁体中文提升了桌面与本地化体验,同时修复了 Agent 模型联动、畸形 diff 渲染与内联重命名等交互细节;VS Code 端则恢复了实时流式输出这一核心体验,并同步了用量预测行设置。
如需查阅更多版本的演进,可以浏览 changelog 目录下的各版本文件、changelog/index.json(供官网与 App 更新弹窗使用)与 changelog/unreleased.md(下一版本预发布条目);扩展侧的版本记录见 packages/vscode/CHANGELOG.md。仓库的 release notes 写作规范(标题与 bullet 的写法约定)在 changelog/README.md 中有完整说明。
【免费下载链接】openchamberAgentic Development Environment based on OpenCode AI agent项目地址: https://gitcode.com/gh_mirrors/op/openchamber
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考