diff --git a/pkg/agent/loop_mcp.go b/pkg/agent/loop_mcp.go index d4c5ee31e..97debbc33 100644 --- a/pkg/agent/loop_mcp.go +++ b/pkg/agent/loop_mcp.go @@ -213,8 +213,11 @@ func (al *AgentLoop) ensureMCPInitialized(ctx context.Context) error { // The per-server Deferred field takes precedence over the global discoveryEnabled // default. When Deferred is nil, discoveryEnabled is used as the fallback. func serverIsDeferred(discoveryEnabled bool, serverCfg config.MCPServerConfig) bool { + if !discoveryEnabled { + return false + } if serverCfg.Deferred != nil { return *serverCfg.Deferred } - return discoveryEnabled + return true } diff --git a/pkg/agent/loop_mcp_test.go b/pkg/agent/loop_mcp_test.go index 7e8d88f46..35c3e49c8 100644 --- a/pkg/agent/loop_mcp_test.go +++ b/pkg/agent/loop_mcp_test.go @@ -21,31 +21,32 @@ func TestServerIsDeferred(t *testing.T) { serverDeferred *bool want bool }{ - // --- per-server override wins regardless of global setting --- + // --- global false always wins: per-server deferred is ignored --- { - name: "per-server deferred=true overrides global false", + name: "global false: per-server deferred=true is ignored", discoveryEnabled: false, serverDeferred: boolPtr(true), - want: true, + want: false, }, { - name: "per-server deferred=false overrides global true", + name: "global false: per-server deferred=false stays false", + discoveryEnabled: false, + serverDeferred: boolPtr(false), + want: false, + }, + // --- global true: per-server override applies --- + { + name: "global true: per-server deferred=false opts out", discoveryEnabled: true, serverDeferred: boolPtr(false), want: false, }, { - name: "per-server deferred=true with global true", + name: "global true: per-server deferred=true stays true", discoveryEnabled: true, serverDeferred: boolPtr(true), want: true, }, - { - name: "per-server deferred=false with global false", - discoveryEnabled: false, - serverDeferred: boolPtr(false), - want: false, - }, // --- no per-server override: fall back to global --- { name: "no per-server field, global discovery enabled",