# v0.3.0 Release Notes

> v0.2.0 -> v0.3.0

## Summary

Add multi-agent backend support (OpenAI, Claude, Gemini, Nvidia) with unified Agent interface architecture, complete filesystem toolchain, and interactive confirmation mechanism.
<details>
<summary>翻譯</summary>
新增多 Agent 後端支援（OpenAI、Claude、Gemini、Nvidia），建立統一 Agent Interface 架構，完善檔案系統工具鏈與互動式確認機制。
</details>

## Changes

### FEAT
- Add OpenAI Agent with API key authentication and `gpt-5-nano` default model
- Add Claude Agent with Anthropic Messages API integration and typed response deserialization
- Add Nvidia Agent with NIM API support and multiple model options
- Add Gemini Agent with Google Generative AI API and function calling protocol conversion
- Add `search_content` tool for regex-based file content searching
- Add `run_command` tool with command whitelist and safe `rm` via `.Trash` mechanism
- Add `list_files`, `glob_files`, `write_file` filesystem tools with directory exclusion
- Add interactive confirmation prompt before each tool call with `--allow` flag to bypass
- Add agent selection menu (GitHub Copilot, OpenAI, Claude, Gemini, Nvidia) at runtime
- Add `.env` support via `godotenv` for API key management

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

- 新增 OpenAI Agent，支援 API Key 認證與 `gpt-5-nano` 預設模型
- 新增 Claude Agent，整合 Anthropic Messages API 與型別化回應反序列化
- 新增 Nvidia Agent，支援 NIM API 與多模型選項
- 新增 Gemini Agent，整合 Google Generative AI API 與 Function Calling 協定轉換
- 新增 `search_content` 工具，支援正規表示式檔案內容搜尋
- 新增 `run_command` 工具，含指令白名單與 `rm` 安全刪除至 `.Trash` 機制
- 新增 `list_files`、`glob_files`、`write_file` 檔案系統工具與目錄排除機制
- 新增工具呼叫前的互動式確認提示，支援 `--allow` 旗標跳過確認
- 新增執行時 Agent 選擇選單（GitHub Copilot、OpenAI、Claude、Gemini、Nvidia）
- 新增透過 `godotenv` 的 `.env` 支援以管理 API Key

</details>

### REFACTOR
- Restructure `internal/client` into `internal/agents` with unified `Agent` interface (`Send` + `Execute`)
- Extract Copilot implementation into dedicated `internal/agents/copilot` sub-package
- Extract shared execution loop into `agents.Execute()` with 128-iteration tool call limit
- Extract `OpenAIToolCall` as shared type for cross-agent response normalization
- Restructure Skill Scanner with concurrent goroutine scanning and `SkillList` indexing
- Refactor Claude agent from `map[string]any` response parsing to typed `Output`/`Content` structs
- Embed system prompt via `//go:embed sysprompt.md`

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

- 重構 `internal/client` 為 `internal/agents`，建立統一 `Agent` 介面（`Send` + `Execute`）
- 將 Copilot 實作抽離至獨立 `internal/agents/copilot` 子套件
- 將共用執行迴圈抽出為 `agents.Execute()`，限制最多 128 次工具呼叫迭代
- 將 `OpenAIToolCall` 抽出為共用型別，用於跨 Agent 回應正規化
- 重構 Skill Scanner，採用 Goroutine 併發掃描與 `SkillList` 索引
- 重構 Claude Agent 從 `map[string]any` 回應解析改為型別化 `Output`/`Content` 結構
- 透過 `//go:embed sysprompt.md` 嵌入系統提示

</details>

### CHORE
- Add `.env.example` with `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`, `NVIDIA_API_KEY`

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

- 新增 `.env.example`，包含 `OPENAI_API_KEY`、`ANTHROPIC_API_KEY`、`GEMINI_API_KEY`、`NVIDIA_API_KEY`

</details>

### REMOVE
- Remove legacy `internal/client/copilot.go` and `internal/client/exec.go`
- Remove `internal/skill/skill.go` (merged into `scanner.go`)

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

- 移除舊版 `internal/client/copilot.go` 與 `internal/client/exec.go`
- 移除 `internal/skill/skill.go`（合併至 `scanner.go`）

</details>

***

## Files Changed

| File | Status | Tag |
|------|--------|-----|
| `.env.example` | Modified | CHORE |
| `.gitignore` | Modified | CHORE |
| `README.md` | Modified | DOC |
| `README.zh.md` | Modified | DOC |
| `cmd/cli/main.go` | Modified | FEAT |
| `go.mod` | Modified | CHORE |
| `go.sum` | Modified | CHORE |
| `internal/agents/claude/interface.go` | Added | FEAT |
| `internal/agents/claude/new.go` | Added | FEAT |
| `internal/agents/claude/send.go` | Added | FEAT |
| `internal/agents/copilot/login.go` | Renamed | REFACTOR |
| `internal/agents/copilot/new.go` | Added | REFACTOR |
| `internal/agents/copilot/refresh.go` | Renamed | REFACTOR |
| `internal/agents/copilot/send.go` | Added | REFACTOR |
| `internal/agents/exec.go` | Added | REFACTOR |
| `internal/agents/gemini/interface.go` | Added | FEAT |
| `internal/agents/gemini/new.go` | Added | FEAT |
| `internal/agents/gemini/send.go` | Added | FEAT |
| `internal/agents/nvidia/new.go` | Added | FEAT |
| `internal/agents/nvidia/send.go` | Added | FEAT |
| `internal/agents/openai/new.go` | Added | FEAT |
| `internal/agents/openai/send.go` | Added | FEAT |
| `internal/agents/sysPrompt.md` | Added | REFACTOR |
| `internal/client/copilot.go` | Deleted | REMOVE |
| `internal/client/exec.go` | Deleted | REMOVE |
| `internal/skill/parser.go` | Modified | FIX |
| `internal/skill/scanner.go` | Modified | REFACTOR |
| `internal/skill/skill.go` | Deleted | REMOVE |
| `internal/tools/executor.go` | Modified | FEAT |
| `internal/tools/file.go` | Added | FEAT |
| `internal/tools/tools.go` | Added | FEAT |
| `internal/tools/tools.json` | Modified | FEAT |

***

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