# v1.3.3 Release Notes

> 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.

<details>
<summary>翻譯</summary>

每個確認提示都會說明動作內容，並提供更清楚的退出選項，終端、網頁與聊天的行為一致。收緊唯讀快速通道，只有確實不會寫入或啟動其他程式的指令才免確認。開著提示時任務結束或視窗變動，終端介面不再卡住或錯位。

</details>

## 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]

<details>
<summary>翻譯</summary>

- `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

</details>

### 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]

<details>
<summary>翻譯</summary>

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

</details>

### 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]

<details>
<summary>翻譯</summary>

- 系統密碼輸入錯誤時保留輸入框重試，驗證成功才關閉，不再直接當成拒絕
- 提權確認只提供可行的選項：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 的所有用途

</details>

### 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]

<details>
<summary>翻譯</summary>

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

</details>

## 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](https://github.com/pardnchiu/skill-version-generate)
