diff --git a/pkg/providers/protocoltypes/types.go b/pkg/providers/protocoltypes/types.go index 00c5b202d..e962bafe1 100644 --- a/pkg/providers/protocoltypes/types.go +++ b/pkg/providers/protocoltypes/types.go @@ -153,8 +153,8 @@ type ToolFunctionDefinition struct { Parameters json.RawMessage `json:"parameters"` } -func (t ToolFunctionDefinition) ParametersMap() map[string]any { - if len(t.Parameters) == 0 { +func (t *ToolFunctionDefinition) ParametersMap() map[string]any { + if t == nil || len(t.Parameters) == 0 { return nil } var params map[string]any diff --git a/todo/TASKS-1.md b/todo/TASKS-1.md index 3a2c8281e..bb2685e41 100644 --- a/todo/TASKS-1.md +++ b/todo/TASKS-1.md @@ -1,4 +1,6 @@ -# TASKS-1: Memory & Performance Optimization`r`n`r`n> ✅ 2026-03-04: D-1 / D-2 / D-3 / D-4 / D-6 と stats.Tracker 定期フラッシュを実装済み。 +# TASKS-1: Memory & Performance Optimization + +> ✅ 2026-03-04: D-1 / D-2 / D-3 / D-4 / D-6 と stats.Tracker 定期フラッシュを実装済み。 内部リファクタリング。外部APIの変更なし。他トラックへの依存なし。 @@ -74,3 +76,16 @@ D-1 の解決策と合わせて、メソッド境界を「必要な情報の単 - ToolFunctionDefinition.Parameters の Marshal がプロバイダー初期化時のみ (D-3) - stats.json の書き込み頻度が 98% 削減 (stats.Tracker) + +## 作業報告 (2026-03-05) + +- 実装完了: D-1 / D-2 / D-3 / D-4 / D-6、stats.Tracker 定期フラッシュ +- 主要変更: + - MemoryStore に長期メモリキャッシュとパース済み plan state キャッシュを導入 + - FunctionCall.Arguments を map 中心に統一し、JSON 文字列は内部互換層で吸収 + - ToolFunctionDefinition.Parameters を json.RawMessage 化し、各 provider で必要時 decode + - Web 検索(Brave/Tavily/DuckDuckGo)の結果整形を共通化 +- 検証結果: + - Linux (WSL): go generate ./... 成功 + - Linux (WSL): go test ./... 成功 + - 差分 lint: golangci-lint run -n 0 issues