跳轉到主要內容

亮點

  • Agent 會話跑在真正的終端裡 — 會話現在可以以終端模式建立:對話由 Agent 自己的 CLI 在 PTY 裡負責,而不是由 Vibex 繪製時間線。已為這一模式驗證十三個 Agent,側欄、搜尋、通知、行動端和 TUI 都在同一列上繼續工作。
  • 一個像終端的終端 — 回滾緩衝區搜尋與符合項跳轉、可拖動捲軸、按筆畫繪製的製表字元、隨包發佈的 Symbols Nerd Font、連字、URL 點擊開啟、OSC 剪貼簿與標題支援,以及三種方言的滑鼠回報。
  • MCP 伺服器直達原生 CLI — 讀者設定的 MCP 伺服器、Vibex 委派、內嵌瀏覽器和電腦操作能力,透過每個終端模式 CLI 真正讀取的啟動輸入交給它,而憑證不進入 argv。
  • 不在應用身後留下任何程序 — 脫離程序樹的 Agent 守護程序按它執行的東西收回,電腦操作驅動在閒置五分鐘後交還記憶體,無人觀看的幀泵自行退場。
  • gpui-kit 0.9.0 — 工作區升級到新 kit 與 gpui-pre 0.3.11,並把它新增的兩項能力用了起來:編輯器尋找列的概覽標尺,以及兩端都跟隨「減少動態效果」的光標。
  • 自己拼裝出來的發佈頁 — 發佈任務現在從帶標籤的發佈說明、本次實際產出的產物,以及 GitHub 的貢獻者署名拼出一頁。macOS 應用包做了 ad-hoc 簽章,Gatekeeper 不再說它「已損壞」。

新功能

終端會話
  • SessionTransport 說明一個會話怎麼執行:ACP 會話擁有時間線和執行階段綁定,終端會話只啟動一個 CLI、兩者都不擁有;終端建立是獨立入口而不是 ACP 建立上的一個開關(35916d16、55c0c32d)
  • 十三個 Agent CLI 已通過終端模式驗證——Claude、Codex、OpenCode、Gemini、pi、Grok、Cline、Copilot、Cursor、Kimi、CodeBuddy、Devin 和 Hermes;每個 Agent 的提示方式、模型/強度/模式參數、重啟命令和退出提示裡的會話 id 都收在一張 TerminalCli 表裡(35916d16、46f2e6be)
  • 設定的模型隨命令列傳入,因為終端會話沒有別的通道;Agent 預設值不傳任何東西,而不是猜一個 id,沒有已知參數的 Agent 則不傳;終端模式只能攜帶供應商設定,開關會直接說明這一點(cb2b971d、d4057bc1、4f35c253)
  • 新建會話的草稿作為位置參數交給 CLI,附件以路徑跟隨,因此 Agent 從讀者已經描述過的那一輪開始(f7794fdb、35916d16)
  • Vibex 在終端矩形之外仍然欠讀者的東西,被記錄為觀測事實——存活狀態、活動、Agent 自己的會話 id,以及未讀和通知路徑讀取的時間戳;Unknown 是一等取值(2c4bd796、35d2bd87)
  • 活動狀態從畫面底部讀取而不是視埠,因此讀者向上捲動不會改變 Agent 正在做什麼;working -> idle 需要多次一致的掃描結果,因為那是觸發完成通知的轉變(b8d60159)
  • 程序結束的會話會被關閉,而不是繼續看起來健康;重啟會重新提供同一份 argv、工作目錄和供應商設定——設定是重新解析而不是讀回的,因此密鑰留在鑰匙圈裡(8fc9391b、e9f9822f)
  • 重啟從記錄的 argv 重建 PTY;命令無法重建的會話保留其列並標記為錯誤,讀者能看出哪個會話沒有回來(ccb44e41、ca8c955f)
  • 桌面端把網格包進一個圓角的內嵌視窗,選擇模式時輸入框會變成終端自身的形狀,頁面在交出去之前就說明它即將交接哪一種介面(c8e67a4b、23cef5d8、0591f9f9)
  • 手機能夠到達終端會話的 Agent:會話快照寫明它的終端,選中會話即透過普通路徑附著,並且附著能扛住與會話清單的競態(95d56253、c391662f)
  • TUI 和手機透過桌面端同一套投影回報終端會話的 Agent 活動;TUI 則指出對話在桌面端,而不是為一個它無法展示的對話畫一張空時間線(35d2bd87)
終端繪製
  • 搜尋每一條保留的列而不是只搜已繪製的視埠,高亮全部符合項,並用上一處/下一處把符合項捲動到視野內(9efd0d49)
  • 網格上有可拖動的捲軸,支援 Shift+PageUp/PageDown 與 Shift+Home/End,在備用螢幕裡把滾輪轉成方向鍵,讓全螢幕 Agent 也能捲動(9efd0d49)
  • 製表字元按筆畫畫成相連的向量線——包括粗線、雙線、虛線、圓角和斜線形態——因此表格和面板邊框跨儲存格對齊(9efd0d49、7412cf2d)
  • Symbols Nerd Font Mono 隨應用發佈,私用區符號字形貼合儲存格輪廓,清掉了 Agent 狀態圖示原本畫出的方塊(9efd0d49)
  • 儲存格度量取自字型自身的步進,而不是固定的 8x18 常數;列按同樣式片段成形而不是逐字擺放,寬儲存格保留字型的步進,因此 CJK 仍佔兩欄(9efd0d49、bef85503)
  • 連字成為偏好項,純 HTTP(S) 連結點擊即開啟,雙擊或三擊選中一個詞或一列(9efd0d49)
  • 回應 OSC 52 剪貼簿讀寫、OSC 0/2 標題、OSC 4/10/11/12 顏色查詢,以及 1005、1015、1016 三種方言的滑鼠回報(9efd0d49)
  • 新增終端背景透明度設定;主題墨色會被提亮到最低對比度,而程式自己宣告的真彩不受影響(9efd0d49)
MCP 投遞
  • 終端模式 CLI 透過各自真正讀取的附加啟動輸入收到讀者的 MCP 伺服器——Claude Code 和 CodeBuddy 用 --mcp-config,Copilot 用 --additional-mcp-config,Codex 用 -c 覆寫,OpenCode 用 OPENCODE_CONFIG_CONTENT,Hermes 用受管作用域,Cline 用 CLINE_MCP_SETTINGS_PATH,pi 用程序環境(06e89ac7)
  • 當供應商投影遷移了 Agent home 時,讀者真實 home 裡的伺服器會被重新宣告,因此不會遺失(06e89ac7)
  • 憑證不進入 argv:檔案權限 0600,放在隨會話刪除的每會話目錄裡,Codex 收到的是環境變數名而不是值;投遞在建立、重啟和崩潰恢復時重新生成(06e89ac7)
  • Cursor、Gemini、Grok、Kimi Code 和 Devin 沒有按程序傳入 MCP 的入口,因此兩個工具面板在終端模式下直接顯示為不可用,而不是先宣稱可用、隨後悄悄丟掉(7b30af79)
桌面端
  • 側欄會話篩選改為可多選的集合而不是單一姿態,第二個篩選會加寬這一欄而不是把它清空;專案內的會話可以按建立、更新、標題或手動排列排序(125bea0c、7d99b489)
  • 在 @ 檔案提及清單裡輸入路徑會直接瀏覽該目錄,因此即使工作區級清單先被上限截斷,大工作區深處的目錄依然可達(9df4fb9e)
  • 每個 Agent 的委派列保留自己的執行階段設定,用該列的編輯按鈕選擇,優先順序高於預設來源和該 Agent 上次使用的組合(dde83cf9)
  • Agent 開始驅動桌面時電腦操作面板會開啟,浮動顯示且不搶鍵盤,有自己的預設開啟設定,並排除了「被拒絕的呼叫不能彈出面板」(f924abb7)
  • 沒有專案的會話現在在側欄、右鍵選單、新建會話選擇器和搜尋裡都顯示為「臨時會話」,預設圖示是解析出來的綠色星光而不是存下來的值(0226fb90)
  • 新建會話頁會提供 Adapter 仍在下的 Agent,用 Agent 自己 logo 尺寸裡的工作進行中脈衝表示,並給出指向設定中心的中上部卡片;下載一完成,同一個按鈕就能建立會話(b7460d3e)
  • 傳輸方式開關從輸入框移到了工作區列末端,因為「誰擁有介面」不是又一個「在哪裡執行」的控制項;沒有終端模式的 Agent 完全不顯示這個開關,兩個分段各有說明自己得失的提示(0591f9f9、732d7102、2d4a941c)
  • 輸入框佔位文案說明了快捷語、參照和歷史,@ 彈窗把會話參照放到自己的標籤頁,會話不再排在 Agent 委派下面(9da2b062、b7fda5dc)
  • 編輯器尋找列在概覽標尺上標出每一處符合,關閉尋找列會清掉標記,因為它們屬於這次搜尋而不是文件(252329db、e3526e36)
  • 執行階段失敗以頂部輕提示出現,一次 Agent 失敗只讀作一條帶可複製詳情的提示,失敗的回合不再在輸入框錯誤列裡重複一遍(8a070d22、999dedde、59f08d87)
行動端
  • 「減少動態效果」現在會傳進 gpui 自己的開關,詢問上下文的 kit 元件也停止動畫;光標在主題層和輸入框繪製的基層都是穩定的(252329db)
  • 開啟的會話保持自己的 workspace 和對話:右欄在發起快照讀取前就按會話列重新定位,讀取失敗也不會把上一個對話的檔案、變更和終端留在新頁面下面(5d88cbf5)
  • 必須切掉目前回合的時間線視窗,會去掉回合帶重試一次,因此三個 shell 都裝上連續視窗,而不是在一個從來不為空的會話上畫「暫無訊息」(5d88cbf5)
  • 手機終端的 Backspace 能到達 shell:IME 輸入槽保留一個空格,並從它轉發的這次變更就地重新播種,因此連按或快速 Backspace 都是針對它真正要編輯的文件來測量(b9ef6f7d)
TUI
  • 執行階段探測回傳後會重新整理執行選項,因此晚到的探測不會把頁面留在過期目錄上(6474902b)
發佈工程
  • 發佈說明腳本產生區間簡報、搭出雙語文件骨架,並拒絕缺少語言段落或仍只有註解的文件;發佈正文腳本從帶標籤的說明、按本次實際發佈產物繪製的下載表,以及帶比較連結的貢獻者署名拼出頁面(bd62fe97、07ad58a5、ffb2b245)
  • 發佈任務在上傳前執行校驗器,正文出現逐條變更清單時直接失敗,某個平台沒有產出時該列會消失,而不是連結到一個 404(07ad58a5)
  • macOS 應用包在組裝 dmg 之前由內向外封裝——先處理巢狀的 Mach-O 執行檔,再處理整個包——打包器同時宣告 app,dmg,讓 app 格式排在掛鉤之前(347a622c)
  • macOS 簽章仍是 ad-hoc:沒有 Developer ID、沒有公證、沒有強化執行階段、沒有安全時間戳;這足以把「已損壞」變成使用者可以允許一次的普通「未識別開發者」提示(347a622c)

修復

  • 修復終端會話的啟動與模型:Claude 和 Codex 從各自的原生 CLI 啟動,OpenCode 的模型移出 argv 改由設定檔承載,投影後的模型 id 傳給原生 CLI,選中的供應商在 Claude 終端會話裡生效(18d2c5ae、063bfd96、d4057bc1、27a1e83c)
  • 修復終端會話的狀態:從 Agent 自己的回報讀取狀態,程序結束後會話顯示為已結束而不是看起來健康,退出提示缺失時重啟仍保留歷史(b8d60159、e9f9822f、2806ec37)
  • 修復終端會話的重啟:重啟不再重複第一條提示而是續接,重啟後重建終端表面,命令列未印出會話 id 時也不丟歷史(ca8c955f、ccb44e41、2806ec37)
  • 修復終端繪製:從字型測量網格並乾淨重繪,輸入框提示標記落在第一列且不再重設輸入框樣式,Ctrl+F 在普通原始碼編輯器裡恢復(bef85503、9255cdd4、a11cf3f2)
  • 修復終端版面:內嵌終端留出內距並按指標捲動,面板重開時終端保持原尺寸,終端窗格與會話組選單恢復繪製(05590d57、b6187929、8b3f3832)
  • 修復傳輸開關:沒有終端模式的 Agent 隱藏開關,選中的 Agent 沒有終端模式時退出終端模式,沒有供應商設定時也退出,切換後仍可選中(2d4a941c、6034d162、4f35c253、8ec0cca3)
  • 修復會話列與篩選:原生終端的活動出現在會話列上,會話排序套用到已放置的側欄列,會話組窗格檢視同時按組和窗格作鍵(a547d578、7d99b489、6e01decf)
  • 修復設定中心:寫入不再提前中止,寫入移出幀執行緒,啟動目錄競態後仍保留較新的供應商狀態,供應商建立器保留已選中的 Agent(fe1be501、dfdaf81e、aa41d696、379e9740)
  • 修復執行選項:啟動目錄競態後恢復執行選項,記住的思考深度在目錄尚未探測時仍然保留,路由模型選項按設定證據填充(8eb47140、3cc7cd7a、f7d30acb)
  • 修復閘道:重新整理拒絕並復活失效的 Key(9424b27d)
  • 修復行動端:終端 Backspace 到達 shell,開啟的會話保持自己的 workspace 與對話(b9ef6f7d、5d88cbf5)
  • 修復主題:kit 新的列狀態色進入目錄,新增 deleted 色調(129d7887)
  • 修復平台編譯:Linux 專用的 OsStr 匯入、未使用的匯入和只有一個 cfg 分支讀取的參數在 macOS 與 Windows 上都能編譯(74a1dbfe)
  • 修復 CI:macOS 發佈任務移到受支援的 macos-15 映像(e6656a37)
  • 修復 clippy:滿足 1.99 工作區現在看到的 lint(3673cf8d)

效能

  • 終端網格按文字、樣式和字級快取已成形列,只透過預繪製快取重整受損列,並按片段整列繪製而不是逐字定位(9efd0d49)
  • 尺寸變化現在直接填滿面板,而不是讓已繪製的網格停在舊尺寸直到往返完成;整趟繪製都裁剪到網格自己的內容遮罩內(9efd0d49)
  • 設定中心的寫入、供應商探測、路由組儲存、閘道讀取以及終端啟動/重啟都移出幀執行緒,並配有一個原始碼守衛:當被 await 的語句在橋接層或 Tokio spawn 之外提到 backend 時就失敗(dfdaf81e)
  • 電腦操作驅動守護程序在閒置五分鐘後被停止——先 stop 讓它自己移除套接字,不退出再殺掉——並且只停止本客戶端自己啟動的那個(1347dea8)
  • 幀泵在每次捕獲前檢查接收端是否還活著,無人觀看時自行退場並回收通道;捕獲失敗按翻倍延遲重試並封頂十秒,而不是按幀率重試(1347dea8)
  • 短命的驅動子命令各自領一個程序組,逾時即殺掉整個組,因此逾時不再留下一個還在等守護程序的孤兒程序(1347dea8)
  • 脫離程序樹的 Agent 守護程序按它執行的東西收回:候選程序被 init 或使用者的 systemd --user 收養,且命令列指向 <home>/acp-agents/agents/<agent>/ 下的檔案;只有在同一 Agent 在任何位置都不再留有附著程序、且這一狀態持續兩分鐘後才會被結束(8675b314)

內部、建置與文件

  • 版本號統一升到 0.1.0-rc.10:工作區、桌面打包輸入、Android versionName 後備值、README、部署文件,以及授權原則裡已稽核的資源包版本
  • 授權 SBOM 與第三方聲明按目前相依圖重新生成:1110 個 Cargo 套件、11 個資源/字型包、5 個原生與安裝器輸入,全部已核准
  • 隨包的 Symbols Nerd Font 登記為受審字型輸入——vibex-desktop-nerd-symbols,MIT,兩個檔案綁定到一個樹雜湊——因此這個消掉方塊的字型與其他內嵌字型走同一道來源審核
  • 資料庫 schema 從 87 升到 88:會話列上的 transport 和一張 session_terminals 關聯表,provider_profile_id 為已經跑過該遷移的資料庫就地補欄
  • 工作區升級到 gpui-kit 0.9.0 與 gpui-pre 0.3.11;kit 的主題結構現在是 #[non_exhaustive],ScrollWheelEvent 改名為 ScrollEvent,行動端門面的 insets() 改為 safe_insets()
  • 預設主題的差異狀態色跟隨 kit 新的綠/琥珀/紅家族,並補上 deleted 色調;其餘十八套配色保留各自手寫的顏色
  • 已稽核的 Agent 版本推進到各通道發佈的最新版:Claude 0.101.0、Codex 2.5.0(執行階段 0.165.0)、ZCode 0.82.3、OpenCode 2.2.6、Antigravity 1.4.5、Cline 3.0.74、CodeBuddy 2.181.0、Copilot 1.0.107、Cursor 2026.11.05、DeepSeek Harness 0.4.40、Gemini 0.67.0、Grok 1.0.78 和 Kimi 2.5.2,每個都把上一版保留為相容下限(6c827cc8)
  • _session/steering 接受 queued 與 startedNewTurn 作為「Agent 已經接管這段文字」的回答,因為把它們當作 PromptRequired 會把同一條訊息提交兩次
  • 面向使用者的文字不再被替換為 [redacted-sensitive-output]:廠商拒絕原文、權限標題、模型 id、閘道與瀏覽器帳本條目、表單輸入值和供應商端點都會保留,密鑰參照仍是儲存邊界(e4c76e26)
  • SSH 與 WSL 測試夾具裡的版本字面量故意留在 rc.8:升級與回滾測試需要一個真實的上一版本可以升級,並留在新版本旁邊

相關連結