fix deferred behavior

This commit is contained in:
afjcjsbx 2026-03-18 13:03:28 +01:00
parent f49cdcc297
commit 067233f7f3
2 changed files with 16 additions and 12 deletions

View file

@ -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
}

View file

@ -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",