☰
OpenChamber 1.17.0 深度解析:Context 面板、重构的侧边栏与 Agent 控制工具
2026/9/25 3:25:12 网站建设 项目流程
  • AI Agent
  • 人工智能
  • 代码智能体
  • 交互助手

【免费下载链接】openchamber

Agentic Development Environment based on OpenCode AI agent

项目地址:https://gitcode.com/gh_mirrors/op/openchamber
点击查看免费下载

OpenChamber 1.17.0(2026-07-28 发布)是一次以"界面层重构"为主的里程碑版本:应用与 VS Code 扩展同步引入了可自由调整大小的Context 面板(Changes、Pull requests、Files、Terminal、Notes、Plans、Previews、Side chats 统一收纳),并让Agent 可以通过openchamber工具直接管理会话、worktree 与定时任务。阅读本文,你将掌握 Context 面板的切换与宽度机制、Agent 控制工具的用法与开关、Composer 实时渲染背后的提示语言设计,以及 Linux 桌面端 AppImage 构建与用量配额追踪等新能力。

本文基于 changelog/1.17.0.md 展开,并结合仓库源码(packages/ui、packages/docs、packages/electron、packages/web等)补充实现细节。

版本概览:一次界面层的大重构

1.17.0 的更新集中在四条主线上,覆盖桌面端(App)、Web 与 VS Code 扩展:

  • Context 面板:应用与 VS Code 扩展同时上线,将散落在各处的视图收进一个可调整大小的面板;
  • 侧边栏重构:会话按 Recent 与项目分区组织,定时任务、归档会话、多开(multi-run)与 worktree 管理以整页形式打开;
  • Agent 控制工具:openchamber工具让运行在受管本地实例上的 Agent 可以直接创建、发送、fork、检查会话,并管理定时任务;
  • Chat Composer:输入实时渲染为富文本,Markdown 强调、@提及、斜杠命令、片段、附件引用与~path引用全部在输入过程中即时呈现。

此外还有新 CLI 命令(session、schedule、projects、models)、Crof / NeuralWatt 用量配额追踪,以及 Linux 桌面端官方 AppImage 构建。

Context 面板:一个可调整大小的统一工作区

这是本版本最核心的 UI 变更。在 ContextPanel.tsx 的实现中,面板的尺寸约束由一组常量定义:

  • CONTEXT_PANEL_MIN_WIDTH = 320——面板最小宽度;
  • CONTEXT_PANEL_DEFAULT_WIDTH = 600——面板默认宽度;
  • CONTEXT_CHAT_MIN_WIDTH = 400——拖拽时左侧聊天列保留的最小宽度;
  • RESIZE_FOLLOW_INTERVAL_MS = 100——拖拽跟随间隔。

从源码注释可以推断,面板没有绝对的像素上限:在大屏上用户可以把面板几乎拉满整窗宽度(例如并排看 diff 时同时打开聊天),唯一限制是拖拽时不能挤占聊天列少于CONTEXT_CHAT_MIN_WIDTH。宽度通过clampWidth在最小宽度与"可用宽度减聊天列最小宽度"之间钳制,每个 surface 还带有defaultWidthFraction(默认宽度占可用内容区的比例),例如 diff 视图默认取 3/5、PR 视图取 0.45,直到用户手动调整为止——参见 registry.ts。

Rail:侧边切换条

面板左侧是一条可排序的Rail(ContextPanelRail.tsx),内置的 surface 列表定义在 registry.ts:

Surface id视图可用性
context上下文用量always
git变更(Changes)always
prPull requestsalways
diffDiffalways
walkthrough上手引导always
linearLinear 议题always
editor文件(Files)always
terminal终端always
notes笔记always
plan计划always
browser浏览器面板always
chat侧边聊天(Side chats)has-content

每个 descriptor 还有availability字段:always的 surface 可以随时从 Rail 打开;has-content的 surface 由内容驱动——例如侧边聊天需要已经存在一个对应模式的标签页,否则 Rail 上保持隐藏。Rail 图标支持拖拽排序(基于 dnd-kit 的SortableContext),并显示活动点或数字角标(如 Git 变更文件数,超过 99 显示99+)。

按需加载的重视图

ContextPanel.tsx 对重视图(DiffView、FilesView、Walkthrough、Plan、Linear 等)全部使用lazyWithChunkRecovery按需加载——这与主布局一致:静态引入 DiffView/FilesView 会把 CodeMirror 与@pierre/diffs栈拉进应用启动图(eager startup graph),即使这些标签从未打开。将重视图拆成独立 chunk 后,启动路径保持轻量,同时每个标签首次打开时才加载对应代码。

PR 视图:检查与评论直入聊天草稿

Pull requests 视图(PullRequestView.tsx)会实时展示 CI 检查(checks)与评论。1.17.0 的新能力是:一个失败的检查或一条评论可以直接进入聊天草稿——开发者无需手动复制粘贴,即可把 CI 报错或评审意见作为上下文交给模型继续处理。这与 Composer 的"附件引用"机制打通,构成了"PR 审查 → 聊天修复"的闭环工作流。

重构后的侧边栏:分区、分组与整页视图

侧边栏是本次改版的第二个重点:

  • 会话分区:会话现在分属Recent与按项目(per-project)两个区域,并支持按worktree 分组或扁平排列两种视图;
  • 整页打开:定时任务(Scheduled tasks)、归档会话(Archived sessions)、多开(multi-run)与 worktree 管理都不再挤在窄侧栏里,而是以完整页面打开;
  • 侧栏中会话行变为单行显示,文件夹排在未分组会话之后,归档会话保留在其所属 workspace 分区内(VS Code 扩展同样如此)。

配合上一版本已有的定时任务运行时(scheduled-tasks/runtime.js),从侧栏直接进入定时任务页面可以完成查看、创建与立即执行等操作。

Agent 控制工具:让 Agent 替你管理 OpenChamber

1.17.0 中,运行在受管本地 OpenCode 服务器上的 Agent 可以通过openchamber工具直接操作应用本身。该能力由仓库文档 agent-control-tool.mdx 完整描述:

能做什么

  • 创建会话:创建新会话并指定模型与提示词(例如openai/gpt-5.6-sol);
  • 发送消息:向已存在会话发送消息、追问(follow up);
  • fork 会话:复制已有会话分支;
  • 检查会话:列出最近的会话、查看某会话的最新助手回复;
  • 隔离 worktree:为任务创建独立 worktree 会话;
  • 管理定时任务:创建、查看、立即运行定时任务。

工具默认启用(当 OpenChamber 运行自己的本地 OpenCode 服务器时),无需单独安装。会话启动后与普通会话完全一致,可以打开并继续工作。文档给出的自然语言示例:

"Create an OpenChamber scheduled task named Weekday review that sends this prompt at 09:00 every weekday: review changes since the last run."

同时 1.17.0 新增了Schedule a Task 启动器(starter):从聊天界面即可按引导逐步设置一个定时任务。

限制与开关

从文档可以确认以下边界:

  • 新会话的提示词默认立即返回,不会阻塞等待执行结果;
  • 只有明确要求时才会创建独立 worktree,当前 worktree 未提交的改动不会被复制进去;
  • 工具不能删除会话或 worktree、注册项目路径、执行任意 shell 命令或调用任意 URL;
  • 开关位于Settings → General → OpenChamber Tools → Agent control tool,改动会在受管服务器重启后生效(界面提供Apply & Restart)。

适用前提:工具仅在 OpenChamber 自带受管 OpenCode 服务器时可用;当通过OPENCODE_HOST或 skip-start 连接外部 OpenCode 服务器、以及 VS Code 扩展内部时不可用。

Chat Composer:实时渲染与提示语言

1.17.0 的 Composer 从"透明 textarea + 镜像 div"升级为真正所见即所得的编辑器。核心设计在 composer/DOCUMENTATION.md 中有完整记录:

实时渲染的内容

输入时即可看到:Markdown 强调、attention lines(关注行)、文件与 Agent 提及(@file、@agent)、斜杠命令、片段(snippets)、附件引用与~path引用。文件提及可以在输入框内直接编辑(可编辑的纯文本,而非一次性删除的原子 token)。移动端 Composer 会随内容自动增高。

提示语言(Prompt Language)的单源设计

composer/language/是 Composer 语法的唯一权威,highlight、发送时解析与自动补全触发都走同一条路径:

  • mentions.ts——@引用,start..end区间即引用本身;删除字符会编辑 token 并重新打开提及选择器;
  • prefixTokens.ts——/command、/skill、#snippet,扫描宽松,但注册表是权威:未注册的/token保持为普通文本;
  • triggers.ts——光标位置对应哪个选择器,优先级为command > skill > snippet > mention;
  • tokenize.ts——单遍生成所有高亮区间,新增语法只需在此加一次。

此前@规则被写了四份、/规则写了三份且字符集不一致,导致"被高亮的引用解析不了";单源化之后高亮与发送路径永远读同一套语法。编辑器基于 CodeMirror,文档就是纯字符串:getValue()的内容就是实际发送的提示词,无需再把富文档模型序列化回 prompt。

代码块选择保持原结构

一个实用的修复(感谢 @ChangeHow):从 Markdown 代码块中选中的文本,加入 Composer 或启动会话时会保留围栏(fences)、语言标记与块结构,不再丢失格式;同时代码块渲染时不再发生行移位或与邻近文本合并,复制出的代码保留原文。

新 CLI 命令:session / schedule / projects / models

1.17.0 为 CLI 增加了四条新命令:

  • session——会话生命周期管理(创建、查看、fork 等,与 Agent 控制工具的能力呼应);
  • schedule——定时任务管理;
  • projects——项目注册与查询;
  • models——模型列表与偏好。

从 packages/web/server/index.js 的导入可以印证底层支撑:createScheduledTasksRuntime(定时任务运行时)、createProjectConfigRuntime(项目配置,对应projects/用户配置目录)、以及 models.dev 的模型元数据 API 常量MODELS_DEV_API_URL分别对应schedule、projects、models命令的后端服务。

用量配额追踪:Crof 与 NeuralWatt

应用端与 VS Code 扩展同步支持了Crof 与 NeuralWatt两种配额追踪:

  • 订阅 kWh(订阅电量额度);
  • 独立的 key-allowance 时间窗(每个 key 的额度窗口分开计算);
  • 兜底的 credits 余额(配额不足时自动回退)。

VS Code 扩展侧还修复了 Crof 此前误报 "Unsupported provider" 的问题。相关实现位于 quotaProviders.ts、exeDevQuota.ts 与 quotaCredentials.ts。

桌面 Linux:官方 AppImage 构建

Linux 桌面端(感谢 @BestSithInEU、@jibanez-staticduo、@makeittech)在 1.17.0 获得官方 AppImage 构建:

  • x64 与 arm64双架构;
  • 应用内更新(in-app updates);
  • 无边框窗口控件(frameless window controls);
  • 最小化到系统托盘(system tray);
  • 开机自启(launch at login);
  • 多窗口同时打开;
  • "Open in":用应用发现的已安装程序打开文件。

架构识别逻辑在 ensure-electron.mjs:同时映射机器码0x01000007(x64)/0x0100000c(arm64)与 elf 机器号62(x86-64)/183(AArch64),并处理"无法识别时按原生 x64 宿主对待"的回退。

本轮修复还包含:聊天流式输出时开启系统托盘不再偶发卡死或崩溃;缺失更新清单视为"无更新"而非失败,更新错误会在 About 与侧边栏展示。

修复亮点

除上文已提及的 Composer 与 Linux 修复外,值得注意的还有:

  • 长会话跳转:跳转到长对话中的某条消息时,即使上方行尚未绘制也能落在正确位置;
  • 权限与发送:权限弹窗未决时发送消息,会拒绝会话及其子代理中待决的权限请求,并把消息排入下一轮(感谢 @tomzx);
  • 子代理:启用直接子代理提示(direct subagent prompting)时,即使父会话尚未加载也能向子代理聊天发送提示;
  • Small Model:GitHub Copilot 模型使用其支持的 API,使摘要、目标审计、提交信息等 Small Model 操作兼容无 Chat Completions 的模型(感谢 @jakoss);
  • 移动端:iOS 推送默认走 Apple 生产服务,并能自动区分 sandbox 与 TestFlight/App Store 环境(Xcode 安装的开发构建也能收到通知);Android 端点击终端打开键盘、退格正常、关闭聚焦的终端后应用保持响应;
  • 快捷键:当前会话不是活动会话时,无法再预触发双击 Escape。

VS Code 扩展的同步更新

VS Code 扩展在 1.17.0 与应用端保持同步演进:

  • Context 面板:同样上线,Changes、PR、文件、终端、笔记、计划、预览与侧边聊天收进一个可调整大小的面板,PR 检查与评论可直入聊天草稿;
  • Composer:输入实时渲染(Markdown 强调、attention lines、文件与 Agent 提及、斜杠命令、片段、附件引用、~path引用),文件提及可在位编辑;
  • 会话侧栏:更清晰的项目分区与单行行,文件夹排在未分组会话之后,归档会话保留在 workspace 分区内;聊天按活动度排序(开始/结束时会话在列表中移动,流式响应期间不再反复重排);
  • 设置中可隐藏新建会话界面的 starter 建议。

小结

1.17.0 用 Context 面板统一了 OpenChamber 的信息密度:变更、PR、文件、终端、笔记、计划、预览与侧边聊天在同一个可调整面板中共存,配合侧栏的分区/整页重构,会话与任务管理路径更加清晰;openchamberAgent 控制工具则把"管理 OpenChamber"本身变成 Agent 的一项能力,配合四条新 CLI 命令与配额追踪,这一版本从界面到底层都更贴近"以 Agent 为中心"的开发工作流。若你的桌面端或 VS Code 工作区仍在使用旧布局,升级到 1.17.0 后最值得先体验的,就是右键侧栏中的 Context 面板与 Schedule a Task 启动器。

  • AI Agent
  • 人工智能
  • 代码智能体
  • 交互助手

【免费下载链接】openchamber

Agentic Development Environment based on OpenCode AI agent

项目地址:https://gitcode.com/gh_mirrors/op/openchamber
点击查看免费下载

相关推荐

上一篇:Notepad--:5个实用技巧让你彻底告别代码编辑烦恼的跨平台免费编辑器
下一篇:如何快速掌握N_m3u8DL-RE:跨平台流媒体下载的终极实战指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询