# v0.19.0 Release Notes

> v0.18.3 -> v0.19.0

## Summary

Introduces concurrent tool-call dispatch, an `invoke_subagent` in-process delegate, and a same-payload circuit breaker; switches `search_web` to the DuckDuckGo lite endpoint and hardens provider/fetch fallbacks across Codex, Google RSS, and Yahoo Finance.
<details>
<summary>翻譯</summary>
新增並發 tool-call 分派、in-process `invoke_subagent` 子 agent 與相同 payload 斷路器；`search_web` 切換至 DuckDuckGo lite endpoint，並強化 Codex、Google RSS、Yahoo Finance 的 provider 與抓取 fallback。
</details>

## Changes

### FEAT
- Add three-pass concurrent tool-call dispatcher with `Concurrent` registry flag, fan-out for `fetch_page`/`invoke_subagent`/`calculate`, and per-batch stub activation guard
- Add `invoke_subagent` in-process sub-agent with isolated temp sessions, model/system-prompt/exclude overrides, and mandatory self-exclusion to prevent recursion
- Add same-payload retry circuit breaker across provider and tool calls to abort identical repeats after `MaxRetry`
- Expose `ToolArgs` on tool-call events so UIs can render arguments before execution

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

- 新增三段式並發 tool-call 分派器、registry `Concurrent` 旗標，`fetch_page`／`invoke_subagent`／`calculate` fan-out，並以 batch 內 stub activation 防止重複啟用
- 新增 in-process `invoke_subagent` 子 agent：獨立暫時 session、可覆寫 model／system prompt／排除工具，並強制排除自身避免無限巢狀
- 新增 provider 與 tool call 的相同 payload 重試斷路器，超過 `MaxRetry` 即中止
- 事件流暴露 `ToolArgs`，讓 UI 能在執行前顯示參數

</details>

### REFACTOR
- Switch `search_web` from `html.duckduckgo.com` to `lite.duckduckgo.com/lite/` with new anchor/snippet parsing and drop sub-day time ranges unsupported by DDG
- Extract Yahoo Finance fetch constants and simplify tool registration layout

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

- `search_web` 由 `html.duckduckgo.com` 改用 `lite.duckduckgo.com/lite/`，改寫 anchor／snippet parser，移除 DDG 不支援的日內時間區間
- 抽出 Yahoo Finance 抓取常數並精簡 tool 註冊結構

</details>

### UPDATE
- Add `prompt_cache_key` (sha256 of system instructions) to Codex Responses API body to route identical prefixes to the same cache shard
- Allow Codex in general routing; separate system instructions for Responses API and abort repeated validator retries
- Consolidate tool cache storage and harden fetch fallbacks, including `isRedirected404` detection for soft 404 via `err=404/403/410` query params
- Harden Google RSS parameter handling with a default time range
- Strengthen agent tier routing and memory-driven tool recovery

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

- Codex Responses API body 加入 `prompt_cache_key`（system instructions sha256），相同前綴落到同一 cache shard
- 一般路由允許 Codex；Responses API 獨立系統 instructions，並中止重複的 validator 重試
- 統一 tool cache 儲存並強化 fetch fallback；新增 `isRedirected404`，透過 `err=404/403/410` query param 偵測 soft 404
- 強化 Google RSS 參數處理並設定預設時間區間
- 強化 agent 分級路由與基於 error memory 的 tool 復原

</details>

***

## Files Changed

| File | Status | Tag |
|------|--------|-----|
| `cmd/app/main.go` | Modified | FEAT |
| `cmd/app/runEvents.go` | Modified | FEAT |
| `configs/prompts/agent_selector.md` | Modified | UPDATE |
| `configs/prompts/system_prompt.md` | Modified | UPDATE |
| `internal/agents/exec/execute.go` | Modified | FEAT |
| `internal/agents/exec/toolCall.go` | Modified | FEAT |
| `internal/agents/host/host.go` | Added | FEAT |
| `internal/agents/provider/copilot/send.go` | Modified | UPDATE |
| `internal/agents/provider/openai/send.go` | Modified | UPDATE |
| `internal/agents/provider/openaiCodex/send.go` | Modified | UPDATE |
| `internal/agents/subagent/subagent.go` | Added | FEAT |
| `internal/filesystem/isExclude.go` | Modified | UPDATE |
| `internal/filesystem/store/store.go` | Modified | UPDATE |
| `internal/tools/calculator/register.go` | Modified | FEAT |
| `internal/tools/external/googleRSS/fetch.go` | Modified | UPDATE |
| `internal/tools/external/googleRSS/register.go` | Modified | UPDATE |
| `internal/tools/external/searchWeb/SearchWeb.go` | Modified | REFACTOR |
| `internal/tools/external/searchWeb/fetch.go` | Added | REFACTOR |
| `internal/tools/external/searchWeb/fetchDDG.go` | Deleted | REFACTOR |
| `internal/tools/external/searchWeb/register.go` | Modified | REFACTOR |
| `internal/tools/external/yahooFinance/fetch.go` | Modified | REFACTOR |
| `internal/tools/external/yahooFinance/register.go` | Modified | REFACTOR |
| `internal/tools/fetchPage/download.go` | Modified | UPDATE |
| `internal/tools/fetchPage/load.go` | Modified | UPDATE |
| `internal/tools/fetchPage/register.go` | Modified | FEAT |
| `internal/tools/fetchPage/skipped.go` | Modified | UPDATE |
| `internal/tools/file/register.go` | Modified | UPDATE |
| `internal/tools/register/register.go` | Modified | FEAT |

***

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