#548·qs

[Breaking] flip `strictMerge` default to `false` in v7

Author: ljharbCreated Feb 13, 2026Updated Mar 14, 2026
Labelssemver-major: breaking change

In v6, the new strictMerge option (added in cb41a54) defaults to true, which changes the behavior of parsing conflicting key types. When a key appears as both a plain value and an object (e.g. a[b]=c&a=d), the result is now wrapped in an array ({ a: [{ b: 'c' }, 'd'] }) instead of the legacy behavior of using the primitive as a key with value true ({ a: { b: 'c', d: true } }).

In v7, strictMerge should default to false (removing the legacy target[source] = true code path entirely), since the array-wrapping behavior will be the only supported behavior.