fix deferred behavior
This commit is contained in:
parent
f49cdcc297
commit
067233f7f3
2 changed files with 16 additions and 12 deletions
|
|
@ -213,8 +213,11 @@ func (al *AgentLoop) ensureMCPInitialized(ctx context.Context) error {
|
||||||
// The per-server Deferred field takes precedence over the global discoveryEnabled
|
// The per-server Deferred field takes precedence over the global discoveryEnabled
|
||||||
// default. When Deferred is nil, discoveryEnabled is used as the fallback.
|
// default. When Deferred is nil, discoveryEnabled is used as the fallback.
|
||||||
func serverIsDeferred(discoveryEnabled bool, serverCfg config.MCPServerConfig) bool {
|
func serverIsDeferred(discoveryEnabled bool, serverCfg config.MCPServerConfig) bool {
|
||||||
|
if !discoveryEnabled {
|
||||||
|
return false
|
||||||
|
}
|
||||||
if serverCfg.Deferred != nil {
|
if serverCfg.Deferred != nil {
|
||||||
return *serverCfg.Deferred
|
return *serverCfg.Deferred
|
||||||
}
|
}
|
||||||
return discoveryEnabled
|
return true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,31 +21,32 @@ func TestServerIsDeferred(t *testing.T) {
|
||||||
serverDeferred *bool
|
serverDeferred *bool
|
||||||
want 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,
|
discoveryEnabled: false,
|
||||||
serverDeferred: boolPtr(true),
|
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,
|
discoveryEnabled: true,
|
||||||
serverDeferred: boolPtr(false),
|
serverDeferred: boolPtr(false),
|
||||||
want: false,
|
want: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "per-server deferred=true with global true",
|
name: "global true: per-server deferred=true stays true",
|
||||||
discoveryEnabled: true,
|
discoveryEnabled: true,
|
||||||
serverDeferred: boolPtr(true),
|
serverDeferred: boolPtr(true),
|
||||||
want: 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 ---
|
// --- no per-server override: fall back to global ---
|
||||||
{
|
{
|
||||||
name: "no per-server field, global discovery enabled",
|
name: "no per-server field, global discovery enabled",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue