# v0.9.0 Release Notes

> Generated: 2026-01-19 17:58 (+00:00)
> v0.8.0 → v0.9.0

## Recommended Commit Message

feat: add rsync dry-run preview with user confirmation before sync
<details>
<summary>翻譯</summary>
feat: 新增 rsync dry-run 預覽與同步前使用者確認機制
</details>

***

## Summary

Add interactive rsync preview with dry-run mode, allowing users to inspect file changes before confirming synchronization. Also add `CMDOutput` utility function for capturing command output.
<details>
<summary>翻譯</summary>
新增互動式 rsync 預覽功能，使用 dry-run 模式讓使用者在確認同步前檢視檔案變更。同時新增 `CMDOutput` 工具函式以擷取命令輸出。
</details>

## Changes

### FEAT
- Add rsync dry-run preview (`-avni`) to show pending changes before sync
- Add user confirmation prompt (`y/N`) before executing actual sync
- Add `changeExist()` helper to detect meaningful changes in rsync output
- Add `CMDOutput()` utility function to capture command stdout

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

- 新增 rsync dry-run 預覽 (`-avni`) 於同步前顯示待處理變更
- 新增使用者確認提示 (`y/N`) 於執行實際同步前
- 新增 `changeExist()` 輔助函式偵測 rsync 輸出中的有效變更
- 新增 `CMDOutput()` 工具函式擷取命令標準輸出

</details>

### UPDATE
- Refactor `RsyncToRemote()` to separate preview and sync phases
- Expand exclude list with `.next/`, `docker-compose.yml`, `docker-compose.yaml`, `app/package-lock.json`
- Relocate visual separator to preview and sync phases for better UX

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

- 重構 `RsyncToRemote()` 將預覽與同步階段分離
- 擴充排除清單加入 `.next/`、`docker-compose.yml`、`docker-compose.yaml`、`app/package-lock.json`
- 移動視覺分隔線至預覽與同步階段以改善使用者體驗

</details>

***

## Files Changed

| File | Status | Tag |
|------|--------|-----|
| `internal/command/composeCMD.go` | Modified | FEAT, UPDATE |
| `internal/utils/command.go` | Modified | FEAT |

***

Generated by [Claude Code](https://gist.github.com/pardnchiu/cc619549138ccc7b57c073c314b7d0d8)
