diff --git a/internal/config/config.go b/internal/config/config.go index fd9d785..a18886e 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -99,7 +99,7 @@ type RefinementConfig struct { MinCandidateSNRDb float64 `yaml:"min_candidate_snr_db" json:"min_candidate_snr_db"` MinSpanHz float64 `yaml:"min_span_hz" json:"min_span_hz"` MaxSpanHz float64 `yaml:"max_span_hz" json:"max_span_hz"` - AutoSpan bool `yaml:"auto_span" json:"auto_span"` + AutoSpan *bool `yaml:"auto_span" json:"auto_span"` } type ResourceConfig struct { @@ -178,7 +178,7 @@ func Default() Config { MinCandidateSNRDb: 0, MinSpanHz: 0, MaxSpanHz: 0, - AutoSpan: true, + AutoSpan: boolPtr(true), }, Resources: ResourceConfig{ PreferGPU: true, @@ -364,6 +364,9 @@ func applyDefaults(cfg Config) Config { if cfg.Refinement.MaxSpanHz > 0 && cfg.Refinement.MinSpanHz > cfg.Refinement.MaxSpanHz { cfg.Refinement.MaxSpanHz = cfg.Refinement.MinSpanHz } + if cfg.Refinement.AutoSpan == nil { + cfg.Refinement.AutoSpan = boolPtr(true) + } if cfg.Resources.MaxRefinementJobs <= 0 { cfg.Resources.MaxRefinementJobs = cfg.Refinement.MaxConcurrent } diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 97bb592..be87026 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -41,6 +41,9 @@ func TestLoadConfig(t *testing.T) { if !cfg.Refinement.Enabled { t.Fatalf("refinement default not applied") } + if cfg.Refinement.AutoSpan == nil || !*cfg.Refinement.AutoSpan { + t.Fatalf("refinement auto_span default not applied") + } if cfg.EventPath == "" { t.Fatalf("event path default not applied") } diff --git a/internal/config/helpers.go b/internal/config/helpers.go new file mode 100644 index 0000000..acb5ac2 --- /dev/null +++ b/internal/config/helpers.go @@ -0,0 +1,12 @@ +package config + +func BoolValue(v *bool, fallback bool) bool { + if v == nil { + return fallback + } + return *v +} + +func boolPtr(v bool) *bool { + return &v +} diff --git a/internal/pipeline/policy.go b/internal/pipeline/policy.go index cabf6d0..d9a1fd4 100644 --- a/internal/pipeline/policy.go +++ b/internal/pipeline/policy.go @@ -43,7 +43,7 @@ func PolicyFromConfig(cfg config.Config) Policy { MinCandidateSNRDb: cfg.Refinement.MinCandidateSNRDb, RefinementMinSpanHz: cfg.Refinement.MinSpanHz, RefinementMaxSpanHz: cfg.Refinement.MaxSpanHz, - RefinementAutoSpan: cfg.Refinement.AutoSpan, + RefinementAutoSpan: config.BoolValue(cfg.Refinement.AutoSpan, true), PreferGPU: cfg.Resources.PreferGPU, } }