@@ -187,6 +187,10 @@ func NewAgent(
187187
188188 go func() {
189189 slog.Info("Initializing agent tools", "agent", agentCfg.ID)
190+ defer func() {
191+ slog.Info("Initialized agent tools", "agent", agentCfg.ID)
192+ agent.toolsDone.Store(true)
193+ }()
190194
191195 cwd := cfg.WorkingDir()
192196 allTools := []tools.BaseTool{
@@ -203,29 +207,28 @@ func NewAgent(
203207 }
204208
205209 mcpTools := GetMCPTools(ctx, permissions, cfg)
210+ allTools = append(allTools, mcpTools...)
211+
206212 if len(lspClients) > 0 {
207− mcpTools = append(mcpTools, tools.NewDiagnosticsTool(lspClients))
213+ allTools = append(allTools, tools.NewDiagnosticsTool(lspClients))
208214 }
209− allTools = append(allTools, mcpTools...)
210215
211216 if agentTool != nil {
212217 allTools = append(allTools, agentTool)
213218 }
214219
215− agentTools := []tools.BaseTool{}
216220 if agentCfg.AllowedTools == nil {
217− agentTools = allTools
218− } else {
219− for _, tool := range allTools {
220− if slices.Contains(agentCfg.AllowedTools, tool.Name()) {
221− agentTools = append(agentTools, tool)
222− }
223− }
221+ agent.tools = allTools
222+ return
224223 }
225224
226− slog.Info("Initialized agent tools", "agent", agentCfg.ID)
227− agent.tools = agentTools
228− agent.toolsDone.Store(true)
225+ var filteredTools []tools.BaseTool
226+ for _, tool := range allTools {
227+ if slices.Contains(agentCfg.AllowedTools, tool.Name()) {
228+ filteredTools = append(filteredTools, tool)
229+ }
230+ }
231+ agent.tools = filteredTools
229232 }()
230233
231234 return agent, nil