v1.3.9

v1.3.3 Release Notes

Released


v1.3.2 -> v1.3.3

Summary


Makes every approval prompt explain itself and offer clearer exits, with the same behavior across terminal, web and chat. Tightens the read-only fast path so only commands that truly cannot write or start other programs skip confirmation. The terminal UI no longer stalls or misrenders when a task ends or the window changes behind an open prompt.
翻譯
每個確認提示都會說明動作內容,並提供更清楚的退出選項,終端、網頁與聊天的行為一致。收緊唯讀快速通道,只有確實不會寫入或啟動其他程式的指令才免確認。開著提示時任務結束或視窗變動,終端介面不再卡住或錯位。

Changes


FEAT


  • Explain run_command / background_command confirmations in one sentence written by the dispatcher model, sent as a single stateless call only when a prompt is actually shown, and display it in the TUI, Web UI, Discord and Telegram (@pardnchiu) [cbaee9fc, 253efbaf]
  • Split stopping a task at a confirmation into Abort, which keeps the pending task for resume, and Cancel, which deletes it, in the TUI, Web UI, Discord and Telegram (@pardnchiu) [253efbaf]
  • Let Discord and Telegram attach an optional reason when skipping a call, matching the TUI and Web UI (@pardnchiu) [253efbaf]
  • Report the OS version and package manager on the system prompt's Host OS line (@pardnchiu) [86054ed1]
  • Run read-only run_command calls concurrently and check sh -c / bash -c scripts by their inner commands (@pardnchiu) [5d47f157]
  • Return MCP tool image content to the agent as data URLs alongside the text (@pardnchiu) [cbaee9fc]

翻譯
  • run_command/background_command 跳確認時,由 dispatcher model 以單次、不帶紀錄的呼叫寫一句說明,只在實際跳出確認時產生,並顯示於 TUI、Web UI、Discord 與 Telegram
  • 確認時停止任務拆成 Abort(保留 pending 以便接續)與 Cancel(刪除 pending),TUI、Web UI、Discord 與 Telegram 皆適用
  • Discord 與 Telegram 跳過呼叫時可附上選填理由,與 TUI、Web UI 一致
  • system prompt 的 Host OS 行列出作業系統版本與套件管理器
  • 唯讀的 run_command 改為並行執行,sh -c/bash -c 改以引號內的指令判定
  • MCP 工具回傳的圖片改以 data URL 連同文字交給 agent


FIX


  • Keep the TUI from staying in a running state forever when a task finishes while a popup is open (@pardnchiu) [253efbaf]
  • Redraw the TUI header after terminal width changes settle, and re-render open popups on resize (@pardnchiu) [d8ed0f7d, 253efbaf]
  • Stop a cancelled task from leaving an empty resumable pending entry behind (@pardnchiu) [253efbaf]
  • Keep the Web UI confirmation card and show the error when an escalation approval is rejected as non-local, instead of hiding the card while the task waits (@pardnchiu) [253efbaf]

翻譯
  • 彈窗開著時任務結束,TUI 不再一直停在執行中
  • 終端寬度穩定後重繪 TUI header,開著的彈窗也會隨視窗大小重新渲染
  • 取消任務後不再留下空的可接續 pending
  • Web UI 的提權同意因非本機而被拒時,保留確認卡片並顯示錯誤,不再隱藏卡片讓任務空等


UPDATE


  • Keep the system password prompt open for retry until verification succeeds, instead of declining the call on a wrong password (@pardnchiu) [253efbaf, a565ae3c]
  • Offer only options that can succeed on escalation prompts: the TUI and Web UI drop the remember options, and Discord / Telegram drop Yes and point to the TUI or Web UI (@pardnchiu) [253efbaf]
  • Ignore Esc on confirmation, password and ask_user popups instead of cancelling the task (@pardnchiu) [253efbaf]
  • Tell the agent a declined call was refused and to move on to the next step (@pardnchiu) [253efbaf]
  • Relabel confirmation choices with short descriptions, show the explanation above the command, and hide the duplicate command line on escalation prompts (@pardnchiu) [253efbaf]
  • Keep every ask_user option visible and clip the question and detail to the window height (@pardnchiu) [253efbaf]
  • Narrow the blocked-command guardrail to system wipes, disk formatting, fork bombs and escaping paths built from fetched content (@pardnchiu) [86054ed1]
  • Install system packages with the package manager named on the Host OS line in run_command guidance and the bundled extension-install skill (@pardnchiu) [86054ed1]
  • Describe every use of the dispatcher model in the TUI and Web UI model settings (@pardnchiu) [cbaee9fc]

翻譯
  • 系統密碼輸入錯誤時保留輸入框重試,驗證成功才關閉,不再直接當成拒絕
  • 提權確認只提供可行的選項:TUI 與 Web UI 拿掉免詢問選項,Discord/Telegram 拿掉 Yes 並引導至 TUI 或 Web UI
  • 確認、密碼與 ask_user 彈窗按 Esc 不再取消任務
  • 拒絕呼叫時告知 agent 使用者已拒絕,請繼續下一步
  • 確認選項改為簡短說明,說明置於指令上方,提權確認不再重複顯示指令行
  • ask_user 的選項一律完整顯示,問題與描述依視窗高度截斷
  • blocked-command guardrail 收斂為系統清空、格式化磁碟、fork bomb 與由抓取內容組出的跳脫路徑
  • run_command 說明與內建 extension-install skill 改用 Host OS 行列出的套件管理器安裝系統套件
  • TUI 與 Web UI 的模型設定列出 dispatcher model 的所有用途


SECURITY


  • Tighten read-only auto-approval: argument checks for commands that can set values or load plugins, an explicit allowlist of git global flags, rejection of git options that start external programs, exact-argv version queries, rejection of shell assignments and expansions, and removal of entries that write files or run code (@pardnchiu) [5d47f157]

翻譯
  • 收緊唯讀自動放行:可設值或載入外掛的指令加上參數檢查,git 全域旗標改為明列清單,拒絕會啟動外部程式的 git 選項,版本查詢須完整比對 argv,拒絕 shell 賦值與展開,並移除會寫檔或執行程式的條目


Scope


  • internal/agents/exec/readonly/ — FEAT, SECURITY (argv.go, shell.go)
  • internal/agents/exec/explain/ — FEAT (explain.go)
  • internal/agents/exec/ — FEAT, UPDATE, SECURITY (toolCall.go, systemInfo.go)
  • internal/runtime/tui/ — FEAT, FIX, UPDATE (multiple files)
  • internal/runtime/ipc/ — FEAT, UPDATE (client.go, frame.go, server.go, askUser.go)
  • internal/runtime/ — FEAT, UPDATE (listener.go, pending.go, cancelNotify.go)
  • internal/runtime/chatbot/ — FEAT, UPDATE (discord/pending.go, telegram/pending.go)
  • internal/runtime/routes/handler/ — FEAT, FIX (confirm.go)
  • internal/runtime/mcp/ — FEAT, REFACTOR (client.go, expose.go, server.go)
  • internal/runtime/webapp/ — REFACTOR (webapp.go, webapp_linux.go)
  • internal/tools/ — UPDATE, REFACTOR (runCommand.go, runCommandShell.go)
  • internal/tools/interactive/ — FIX (writeTodo.go)
  • internal/agents/types/ — FEAT (event.go)
  • configs/ — FEAT, UPDATE, SECURITY
  • page/ — FEAT, FIX, UPDATE
  • extensions/skills/ — UPDATE
  • README.md, doc/ — DOC
  • go.mod, go.sum — CHORE



Generated by SKILL