> ## Documentation Index
> Fetch the complete documentation index at: https://vibex.peatboy.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# v0.1.0-rc.9

> 本地模型网关与故障转移路由、重建的供应商工作区、SSH 与 WSL 远程运行时、自托管的无头服务端产物，以及像文档一样可读的对话流。

## 亮点

* **本地模型网关** — 一个回环端点挡在所有共享 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`）

**远程运行时（SSH 与 WSL）**

* 桌面端在远程 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`）

**TUI**

* 每个 `键 标签` 图例都是可点目标：队列与停靠带、弹窗页脚、设置页脚、新建会话页的方括号提示都会发布自己的矩形和它写明的键，点击走与键盘相同的 `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-kit` `0.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`）

## 相关链接

* [在 GitHub 上查看完整差异](https://github.com/vibex-ai/vibex/compare/v0.1.0-rc.8...v0.1.0-rc.9)
* [上一版本：v0.1.0-rc.8](https://vibex.peatboy.com/docs/changelog/v0.1.0-rc.8.md)
* [下一版本：v0.1.0-rc.10](https://vibex.peatboy.com/docs/changelog/v0.1.0-rc.10.md)
* [返回更新日志](https://vibex.peatboy.com/docs/changelog.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.