# v0.28.20 Release Notes

> v0.28.19 -> v0.28.20

## Summary

File interaction gains a batched workflow and clearer edit feedback. The runtime also adds safer command gating and a steerable TUI execution flow.

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

檔案操作支援批次工作流程並提供更清楚的編輯回饋。執行環境也加強命令確認，並讓 TUI 執行流程可以中途調整。

</details>

## ⚠️ Breaking Changes

### File tool interface changed

The single-file read tool was replaced by the batched read interface, and file listing/globbing/search arguments and results were expanded. Integrations that call the old tool name or payload shape must migrate to the new batched interfaces and updated schemas.

**Migration:**

- Replace calls to `read_file` with `read_files`.
- Send the new `files` collection and update consumers for batched results.
- Update `list_files` and `glob_files` callers to the revised argument and result structures.
- Replace single-pattern `search_files` arguments with the batched `queries` array; drop the old single-pattern fields.

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

單檔讀取工具已改為批次讀取介面，檔案列舉、glob 與內容搜尋的參數及結果也已擴充。呼叫舊工具名稱或舊 payload 格式的整合程式，必須遷移至新的批次介面與 schema。

**遷移方式：**

- 將 `read_file` 呼叫改為 `read_files`。
- 傳入新的 `files` 集合，並更新批次結果處理邏輯。
- 依新版參數與結果結構更新 `list_files` 與 `glob_files` 呼叫端。
- 將 `search_files` 的單一 pattern 參數改為批次 `queries` 陣列，並移除舊的單一 pattern 欄位。

</details>

## Changes

### BREAKING
- Replace the single-file read tool with batched `read_files` support and expand file listing/globbing payloads (@pardnchiu) [58e0992]
- Extend batched file tools with patch row numbers and multi-edit support (@pardnchiu)  [3e8bcde]
- Batch `search_files` via a `queries` array and drop single-pattern arguments (@pardnchiu)  [2425314]

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

- 以批次 `read_files` 支援取代單檔讀取工具，並擴充檔案列舉與 glob payload
- 為批次檔案工具加入 patch 行號與多段編輯支援
- 將 `search_files` 改為透過 `queries` 陣列批次查詢，並移除單一 pattern 參數

</details>

### FEAT
- Add a mid-run steer queue and cancel confirmation to the TUI (@pardnchiu)  [a168dec]
- Skip confirmation for read-only commands and clear pending state on cancellation (@pardnchiu)  [2feb014]

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

- 為 TUI 新增執行中 steer queue 與取消確認
- 唯讀命令跳過確認，並在取消時清除 pending 狀態

</details>

## Scope

- `internal/tools/file/` — BREAKING (`globFiles.go`, `listFiles.go`, `patchFile.go`, `readFiles.go`, `searchFiles.go`, `register.go`, `writeFile.go`)
- `internal/runtime/tui/` — FEAT (`commandRemoveSession.go`, `handlerExec.go`, `handlerPopup.go`, `handlerLogFormat.go`, `helper.go`, `init.go`, `renderWait.go`, `update.go`, `view.go`, `viewRender.go`)
- `internal/agents/exec/` — FEAT, BREAKING (`execute.go`, `reset.go`, `skillImprove.go`, `steerWait.go`, `toolCall.go`)
- `configs/` — FEAT, BREAKING (`configs.go`, `jsons/white_command.json`, `prompts/`)
- `extensions/skills/readme-generate/` — BREAKING (`SKILL.md`, `scripts/examples/doc-cli.md`)
- `internal/utils/` — BREAKING (`event.go`, `utils.go`)
- `internal/session/log/` — FEAT (`format.go`, `replay.go`)
- `internal/filesystem/` — FEAT (`runtime.go`)

***

Generated by [SKILL](https://github.com/pardnchiu/skill-version-generate)
