亮点
- 本地模型网关 — 一个回环端点挡在所有共享 Provider 前面。它说 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 和 Google Generative AI 四种协议,在它们之间翻译,并把每次调用转给服务所请求模型的 Provider。
- 会故障转移的路由 — 路由就是一个可选模型。可以用
(Provider, model)组合,从七种策略里挑一种,某个成员答不出来时网关自动走到下一个。 - 重建的供应商工作区 — 供应商、路由组和网关合成一个工作区:可折叠侧栏、统一的身份头、原地编辑。手工配置的 Provider 变成可复用模板,预设的模型列表改由
models.dev目录提供。 - SSH 与 WSL 远程运行时 — 桌面端可以把权威运行时放到另一台机器上:通过 SSH 安装
vibex-server、建立隧道、自动配对,并在升级失败时回滚且保住运行时身份。 - 自托管产物自己发布 — Linux x86_64/aarch64 与 macOS 的无头服务器包在固定版本的 Debian 12 构建器里产出;稳定版镜像同时镜像到 Docker Hub 和 CNB;AUR 包重新发布 Linux
.deb;Linux 负载体积缩小三分之一。 - 对话流像文档一样可读 — 工具调用不再是一坨 JSON,而是结构化呈现:路径与值字段、待办清单、以列表呈现的提问,以及以差异呈现的编辑。头部先讲意图、结果和耗时。
- 终端里每个画出来的键都是按钮 — TUI 中
键 标签形式的图例现在就是控件:点击它会按下它写明的那个键,走的是键盘同一条分发路径。 - 又多了十位守卫 — 新建会话首页的竞技场从六场战斗扩到十六场,每位守卫都有自己的登场、巡游节奏和随从效果。
新功能
本地模型网关- 一个回环端点提供编码 Agent 已经在用的四种线路协议,并把每个请求转给服务所请求模型的共享 Provider;协议翻译走同一套中间表示,包括在流式形态之间重新编码工具调用(
6e7d1513、69dcf747、5c23390a) - 会话留在持有其提示缓存的 Key 上,因此固定不会带来缓存未命中;路由状态(冷却、固定、轮换、在途)永远不进入 Agent 进程指纹,所以换 Key 不会重启进程(
237034e1、054348ec) - 并发与请求速率按 Key 设限:泳道限制在途请求数,泳道满时先进有界 FIFO 队列等待,之后才回 429,滚动一分钟限制启动次数(
41956368、c166d3b8) - 七种策略——顺序、轮询、最少使用、智能、最低延迟、加权、手动——全部可由本地观测算出;路由可以设置首 token 期限,同时约束响应头和第一个流式 token(
3bec21f2、19bdd7e0) - 熔断器按路由组而非 Provider 划分,未声明的协议会被探测而不是直接拒绝(
019922e3、f98f9be9) - 请求账本记录一次请求真正走过的路由:因不可用而被跳过的成员与试过但失败的尝试分开记录,追踪只带 id 和失败类型(
60974688、b255f3dd、6f7d634b) - 网关页面本身就是一个工作区:可重放每次请求的实时路由图、可展开的请求历史、可选取时间范围的 p50/p95 流量、告警阈值、默认超时、上游排序,以及会说明保留窗口并先确认的清空操作(
37193353、2701cf66、660808e9、bcfcd751) - 会话里点名的路由就是 Agent 请求的对象,直连 Provider 仍是同一条代码路径上的单成员路由(
93bad62e、d952318e、24bbf895)
- 共享 Provider 记录是写入权威:在一处编辑会到达所有绑定它的 Agent,而当 Agent 自己认证时,绑定也可以故意不指定 Provider(
80e59ec7、31304b00、ff2f31bb) - 供应商工作区从零重建:左栏把网关、供应商和路由组折在同一个「新建」菜单下,统一的身份头、下划线标签和分区卡片,设置原地编辑,路由组在自己的页面上编辑(
9c5f2498、e2b94939、bc2a7f0c) - 预设作为数据发布,不再自带模型 id:应用预设时从随包的
models.dev目录读取该厂商条目,包括上下文上限与能力标记,因此预设不会在厂商发新模型的那一刻过时(f9dfd52c、c41fb0e4、e8cc0e5f) - 手工配置的 Provider 会变成可复用模板,放在用户自定义标题下;模板每次读取时从记录投影而来,不带任何密钥类请求头,id 带
user:前缀因此永不覆盖内置预设(c7e58564、14cb47e8) - 供应商的 Key 行改用掩码指纹标识凭证,而不是生成的标签;眼睛按钮通过一次显式读取展示真值,普通快照只带掩码(
74162862) - 请求头覆盖会投射到原生 Agent 和网关;导入一次预览一个来源,大模型列表分页,保存前先测试草稿;填好地址与 Key 的草稿会去抓模型;支持按 Key 的模型范围与代理(
969c147a、1a1693e0、351c58ae、a350748b、20536bb6) - 路由组只组合
(Provider, model)对:ProviderGroup形态退役,已有行按成员的已启用目录迁移为模型组(c30f9d90、bffc1a37、429d97b4) - 路由组编辑器增加了建议卡片:多家 Provider 都提供的模型会作为一键添加的候选出现(
aebf9582、19bdd7e0)
- 桌面端在远程 Linux 主机上安装
vibex-server,以固定 TLS 证书在回环上启动,打开ssh -L隧道,自己通过 SSH 领取一次性配对码,再用 Remote Protocol v2 连接(4aa8b4a6、1fe5ad24、27403118) - 九步开通状态机负责顺序、取消安全点、失败重试,以及「运行时 id 只在就绪后才暴露」这一不变量;重复发起会返回已经在跑的那次尝试(
d4680f42、c94ffa38、a1aceab5) - 环境探测检查 Linux、架构、glibc、磁盘余量、home 可写、
sha256sum和目标端口,并以带类型的阻断错误报告;Git、SHELL和未知端口只作为警告(4aa8b4a6) - 隧道受监管:看门狗每 500 毫秒检查子进程,并按同一份隧道规格重建一次,把重启或失败如实呈现(
5bb1e065) - 升级是事务性的:新产物装在当前版本旁边,运行时身份保留;起不来的运行时会回滚到上一版,并启动、校验上一版(
ec66c998、664923d3、613b0981) - 卸载可以选择保留 home 目录,SSH profile 可以编辑、移除和重新开通;已配对的 SSH 连接即使还没开通也能被删除(
e0f05f7f、399ba89e、f4db1824) - macOS 远程主机通过 LaunchAgent 支持,并为其发布 arm64 与 x86_64 服务器产物(
349d09bc、7472cb31、48fa8d6d) - WSL2 发行版完全不需要 sshd:上传、安装、启动、等待 localhost 转发真正可用、在回环上领取配对,并在
wsl --shutdown后恢复(6de4ca9e、812e1684、068c669f、4ccdd60a) - 提供一份可审计的 root 引导脚本,为没有 sshd 的主机安装它,同时不改
PasswordAuthentication、不启用 root、不动防火墙;cloud-init 模板则覆盖在创建 VM 时就粘贴公钥的厂商(c5df1c5c、bb67ef78、7f98abed) - 远程脚本参数会做 shell 转义,恶意取值会原样到达脚本;配对码不会进入服务器日志;远程服务器日志可从诊断页读取,平台类失败会附带恢复指引(
284581cb、44322620、d51c6b84、8c433e57) - 远程实例位于工作区分组的设置 → 远程实例,始终出现在导航、搜索和命令面板中;此前的开发者开关及其环境变量已移除(
ce9d6afa) - 标题栏的运行时面板变成已配对实例的切换器,底部动作改为打开设置,而不再携带第二套配对表单(
33571d2e)
- 工具调用以可读结构呈现而不是美化后的 JSON:
路径: 值字段、待办清单、以列表呈现的提问与回答、解包后的 harness 输出信封,编辑或写入画成带+N/-M的差异(a354a8c2、c408cf72) - 只写了工具名的标题会让位给调用自己的命令、路径或查询,
cd <绝对路径> &&前缀不再把命令本身挤过截断点(a354a8c2) - 活动头部先讲意图和结果:失败的调用在折叠时就显示它打印的第一行,结束的命令和 Agent 调用显示耗时,抓取类调用有了自己的类型和地球图标(
c408cf72) - 消息里引用的工作区图片——相对、根相对、绝对或
file://——会内联渲染,被限制在工作区内,点击打开全窗口预览;对话流里的图片也变成可点缩略图(42f51cda、bcda7984、b83584b6) - 内置工具面板改为按会话选择:新建会话页为每个面板记录明确的开关,缺省条目跟随 Agent,分叉或委派会复制这份映射(
2acc9b7a、3866693d、7b30af79) - 长正文通过自己的视口读取,运行中的会话打开时落在历史上而不是当前这轮,上方内容落进来时读者的位置不会被顶走(
702d42f3、6c605ea2、5238cd96) - 新建会话输入框增加了全屏控件,自动继续成为整个 shell 的默认值,无需显式开启也会继续(
a95049b4、21080cee、fafd85c4) - 侧栏用与会话行相同的漏斗姿态菜单收窄会话列表——全部、运行中、等你处理、未读、失败、已置顶——批量操作跟随可见行(
d52669fe、125bea0c) - 打开的编辑器标签会跟随磁盘上的改动,浅色主题重新调成冷调中性阶梯,模块底色改为实心不透明(
e063cad7、f9e4bc2d)
- MCP 市场直接向注册表提出读者自己的问题,而不是走一遍有上限的后台目录,因此深藏在发布顺序里的名字也能立刻找到;分页沿着注册表游标走(
6ff5ddff) - 市场条目现在带上发布方自己的图片,远程条目必需的请求头会成为安装输入并送入服务器的 headers 而不是 environment(
c1c02062、6ff5ddff) - 技能市场改读一个约一秒响应的公开目录:首页排名只解析一次并共享六小时,浏览页把同一个仓库折叠到最多四条,安装则从目录点名的仓库里取出(
be0ed3e3、8b799349) - 市场卡片点击即安装,MCP 服务器与技能都支持边输入边搜索,按功能的 Agent 胶囊用来选择哪些 Agent 获得该能力(
3dc52df9、c5892f51、57649617、7d0f9a35)
- 每个
键 标签图例都是可点目标:队列与停靠带、弹窗页脚、设置页脚、新建会话页的方括号提示都会发布自己的矩形和它写明的键,点击走与键盘相同的handle_key路径(7d031085) Chord::from_hint按读者的读法解析图例——^S、Space、↑、J/K、Alt+↑↓——成对的箭头会拆成两个单格目标(7d031085)- 队列带与停靠带会滚动以保持光标可见,点击会经过该带真正绘制的窗口映射,而不是从矩形顶端数行(
7d031085) - 供应商表格可以切换它使用的网关,并按价格展示套餐预设;导入的 Key 按其实际作用命名而不是给一句泛泛的警告,放不下的列会被丢弃而不是硬挤(
47147915、69fa7538、5e1c0e14、5c95e57a) - 结束的工具调用保持折叠,落在读者眼前的回答保持展开,
Ctrl+C只中断会话页(8a03fd17、910913c6、080b26aa) - 输入带的尺寸按输入框真正绘制的宽度来计算(
0a762e36)
- 字号阶梯按真正绘制的尺寸读取,连接页带上了 Vibex 字标,同步徽标改为文字绘制,CBDT emoji 字体作为 APK 资源随包发布(
3220066c、1f498fa4、08ca01c3、b186ed66) - 文件与提交支持边输入边搜索,对话流滚动时读者位置保持不变,会话结束时把屏幕交还给读者(
161b650f、ca2400c6、465a65ab) - 连接已死时恢复路径不再直接中止,新建会话会立即打开,键盘收起时终端保持不动(
2493a86b、b43bb055、aaef17d9)
- 在原初六位之外新增十位守卫,共十六场战斗:Cursor、Cline、Grok、ZCode、Kimi、CodeBuddy、Antigravity、Devin、Gemini 和 Hermes(
e5168da2、5645c96c、d6decc70、8061402d、4973757a、450af4d3、6b380f76、40c419ee、8fcdbc62、1b9225f4) - 每位守卫都有自己的登场、退场和巡游节奏,每个随从效果由各自的那场胜利解锁(
f22f1fa4、99af3cd9、f724edac)
修复
- 修复网关页面的记录区:整条记录可点、居中并靠右对齐,记录在路由图下仍然可读,短窗口里成员卡片仍可滚动(
7125dbec、74bdc80a、5dbf5adb、55c44aa4) - 修复路由图:滚轮不再滚出地图之外,图上的未编译引用被修好,选中请求的重放按它自己的时钟推进(
7124d834、8a138aff、95cd5545) - 修复网关对失败的表述:用网关自己的错误码报告失败,服务模型名不再带路由组 id,显示可读名称而不是内部 id,协议转换与完整请求指标可见(
a0e96be0、dc811559、aa5581b4、f88cd91f) - 修复供应商导入与草稿:导入选择器从空开始并如实报告 Key,请求头编辑器开在空对象上,保存过的草稿不再看起来未保存,进入表单后
escape仍然有效(a9742023、3eb4cac3、a992d77f、dddfc731) - 修复供应商预设:从 Agent 会说的协议开始,画廊稳定且不再闪烁,提示里点出实际应用的预设,本地 Provider 没有 Key 也能拉模型(
2acd1033、d01cfb4f、b6170ba0、a5bdabeb) - 修复共享 Provider:删除墓碑可以修复,模板副本不再自己变成模板,已被该 Agent 使用的 Provider 不再出现在候选里(
ce94f22d、14cb47e8、cc39b24e) - 修复 SSH 连接:未配对的连接可以被移除,空状态可以直接打开 SSH 设置,添加流程以对话框打开,连接状态使用框架的状态角色(
f4db1824、214c2a79、8e8e617e、08770715) - 修复 bootstrap:询问用户指定的 Linux 账户而不是假设
ubuntu,在没有 PAM 时拒绝锁定账户,在 systemd 类主机上创建 sshd 运行目录,在临时目录校验 payload 哈希(7f98abed、0b2aa0ec、e73a9032、600bd900) - 修复 WSL:为保留端口而不是已释放端口拒绝转发,
wsl --shutdown后重试恢复(81d0a35e、b29aeec6) - 修复对话流:行在底部边缘切换时不再推动时间线,折叠控件的按下不再进入窗口级选择,活动行宽在折叠控件旁边保持(
c9a53a35、ed4a756f、ddbbca24) - 修复自动继续:回合被停止时暂停下一次继续(
36ffab18) - 修复运行时切换:等待超过期限的切换仍然生效,初始准备期间的选中变化会被接受(
9fc56b16、0b825293) - 修复侧栏:后台刷新不再和读者抢滚动位置,已归档页删除全部时每一行都被删掉(
189eab4a、5c9a3793) - 修复 TUI:导入的 Key 按其作用命名,放不下的供应商列被丢弃(
5e1c0e14、5c95e57a) - 修复移动端:字号阶梯按绘制尺寸读取,恢复路径不再中止,新会话立即打开(
3220066c、2493a86b、b43bb055) - 修复主题:模块面板上未选中的开关仍然可见,浅色调色板重新调整(
7f907c7b、f9e4bc2d) - 修复安全:清掉四个未决的 CodeQL 与 Dependabot 告警(
7f3cd8ab) - 修复浏览器:向机器人检测呈现桌面端 user agent,滚轮一格滚动的距离与 Chrome 一致(
a77f2550、3df31dd4) - 修复 macOS:窗口失焦时红绿灯按钮仍然可见(
5a6618f5)
性能
- 网关把请求账本虚拟化并对历史分页,请求在运行时就出现在账本里,而不是结束后才出现(
61bf758d、2bd33a4b) - 对话流的长正文按块从自己的视口读取,开窗的正文在边缘淡出,而不是把它装的内容全部排版(
2c4ea55f、d121cbc4、cd945082) - 已结束的正文在读者展开之前只画它的头部(
6d322215) - 模型列表虚拟化,草稿的端点与 Key 只探测一次,而不是每次按键都探(
61bf758d、351c58ae) - 技能市场的搜索把一次八到十三秒的往返换成约一秒,MCP 市场也不再依赖后台目录走完(
be0ed3e3、6ff5ddff) - Linux x86_64 发布链接走 lld 的
--icf=all,折叠重复的单态化代码(59ff0e94)
内部、构建与文档
- 版本号统一升到
0.1.0-rc.9:工作区、桌面打包输入、Android versionName 回退值、README、部署文档,以及许可证策略里已审核的资源包版本 - 许可证 SBOM 与第三方声明按当前依赖图重新生成:1080 个 Cargo 包、10 个资源/字体包、5 个原生与安装器输入,全部已批准
- 工作区新增两个成员——
crates/model-gateway(网关)和crates/model-catalog(随包目录)——数据库 schema 从 63 升到 87 - 工作区升级到
gpui-kit0.8.0,rustls升到0.23.46、zip升到9.1.3 - 发布工程:无头服务器产物在摘要固定的 Debian 12 构建器内链接,并按 glibc 2.35 下限检查;macOS 服务器产物构建并做 ad-hoc 签名;稳定版容器镜像通过复制 GHCR 已发布的索引镜像到 Docker Hub 与 CNB;
vibex-bin在 AUR 上重新发布已审核的 Linux.deb,并做校验和与namcap验证 - Linux
.deb改为 xz 重打包,体积从 119.8 MB 降到 69.8 MB;打包主机现在需要xz和ld.lld - macOS 与 Windows 打包仍属于构建与打包证据,PDFium 分发批准仍只覆盖 linux-x86_64
- SSH 与 WSL 的规范文档、远程运行时契约和架构说明随实现一起补齐(
25ba2957、56e72c03)