From aa84cd1c9fef7dcbe524e71c18f8ab9154a3d5bd Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Mon, 3 Aug 2026 15:45:57 +0200 Subject: [PATCH] agent: nil-check ToolServer before ListTools in turn Prevents nil pointer dereference when a newly created agent's tool server connection failed to establish (keeper.Dial returned nil, or session was restored with a dead toolsConn). --- agent/turn.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/agent/turn.go b/agent/turn.go index 9a0bed7..280a190 100644 --- a/agent/turn.go +++ b/agent/turn.go @@ -125,8 +125,12 @@ func (ag *Agent) executeTurn(ctx context.Context, input string) string { // Refresh tool definitions from the tool server so dynamically loaded // tools (via tool_load) are available on the next turn without a rebuild. var tools []backend.Tool - if ti, err := ag.runtime.ToolServer.ListTools(); err == nil { - tools = toolInfosToBackend(ti) + if ag.runtime.ToolServer != nil { + if ti, err := ag.runtime.ToolServer.ListTools(); err == nil { + tools = toolInfosToBackend(ti) + } else { + tools = ag.runtime.Tools + } } else { tools = ag.runtime.Tools }