v0.7.0 -> v0.7.1
Summary
Fix race conditions in all provider model fields by migrating from mutable package-level var to instance-level struct fields, and repair context propagation chain broken by context.Background() usage in tool execution.
翻譯
修正所有 Provider 中因可變 package-level `var` 導致的 Race Condition(改為 struct 欄位存儲),並修復工具執行中因使用 `context.Background()` 造成的 Context 傳遞鏈斷裂。Changes
FIX
- Fix race condition in all providers (claude, compat, copilot, gemini, nvidia, openai): migrate
defaultModelmutation to instance-levelmodelfield in struct - Fix context propagation:
runCommandandmoveToTrashnow accept and propagate caller'scontext.Contextinstead of creating freshcontext.Background() - Fix nil error wrapping in
getSession: usefmt.Errorfwith%winstead offmt.Printf+ bare return - Fix empty summary injection: guard
input.Messagesappend withsummary != ""check - Fix
moveToTrashmissing error check onos.MkdirAlland addctx.Err()cancellation guard
翻譯
- 修正所有 Provider(claude、compat、copilot、gemini、nvidia、openai)Race Condition:將
defaultModel可變 package 變數改為 struct 實例欄位model - 修正 Context 傳遞鏈:
runCommand與moveToTrash改為接收並傳遞呼叫方的context.Context,不再自建context.Background() - 修正
getSession中的 nil error wrapping:改用fmt.Errorf+%w包裝 - 修正空 summary 注入:以
summary != ""守衛後才 append 到input.Messages - 修正
moveToTrash缺少os.MkdirAll錯誤處理,並加入ctx.Err()取消守衛
REFACTOR
- Replace
strconv.Unquotewithjson.UnmarshalinnormalizeArgsfor correct Unicode escape handling - Deduplicate
time.Now()call inexecute.goby caching tonow - Convert mutable
varblocks for API URLs and constants toconstacross all providers
翻譯
normalizeArgs中以json.Unmarshal取代strconv.Unquote,正確處理 Unicode 跳脫序列execute.go中快取time.Now()至now變數,消除重複呼叫- 將所有 Provider 中的 API URL 與常數由可變
var改為const
Files Changed
| File | Status | Tag |
|---|---|---|
internal/agents/provider/claude/new.go |
Modified | FIX |
internal/agents/provider/claude/send.go |
Modified | FIX / REFACTOR |
internal/agents/provider/compat/new.go |
Modified | FIX |
internal/agents/provider/compat/send.go |
Modified | FIX |
internal/agents/provider/copilot/login.go |
Modified | REFACTOR |
internal/agents/provider/copilot/new.go |
Modified | FIX |
internal/agents/provider/copilot/refresh.go |
Modified | REFACTOR |
internal/agents/provider/copilot/send.go |
Modified | FIX / REFACTOR |
internal/agents/provider/gemini/new.go |
Modified | FIX |
internal/agents/provider/gemini/send.go |
Modified | FIX / REFACTOR |
internal/agents/provider/nvidia/new.go |
Modified | FIX |
internal/agents/provider/nvidia/send.go |
Modified | FIX / REFACTOR |
internal/agents/provider/openai/new.go |
Modified | FIX |
internal/agents/provider/openai/send.go |
Modified | FIX / REFACTOR |
internal/agents/exec/execute.go |
Modified | REFACTOR |
internal/agents/exec/getSession.go |
Modified | FIX |
internal/tools/executor.go |
Modified | REFACTOR |
internal/tools/tools.go |
Modified | FIX |
Generated by SKILL