Summary
PR #2201 replaced the hot-path deep merge implementation with a native Go implementation (deepMergeNative) that is ~3.5× faster. However, the mergo library is still used in two lower-traffic call sites:
pkg/merge/merge_yaml_functions.go — YAML function merge helpers
pkg/devcontainer/config_loader.go — devcontainer config loading
Goal
- Port
pkg/merge/merge_yaml_functions.go to use deepMergeNative / MergeWithOptions
- Port
pkg/devcontainer/config_loader.go to use the native merge
- Remove
dario.cat/mergo from go.mod / go.sum entirely (eliminates CVE surface)
Why
Until these sites are ported, a future CVE in mergo could still affect atmos. The dependency should be dropped once no call sites remain.
References
Summary
PR #2201 replaced the hot-path deep merge implementation with a native Go implementation (
deepMergeNative) that is ~3.5× faster. However, themergolibrary is still used in two lower-traffic call sites:pkg/merge/merge_yaml_functions.go— YAML function merge helperspkg/devcontainer/config_loader.go— devcontainer config loadingGoal
pkg/merge/merge_yaml_functions.goto usedeepMergeNative/MergeWithOptionspkg/devcontainer/config_loader.goto use the native mergedario.cat/mergofromgo.mod/go.sumentirely (eliminates CVE surface)Why
Until these sites are ported, a future CVE in
mergocould still affect atmos. The dependency should be dropped once no call sites remain.References