Files
saladday 06e9cdf7f6 fix(common-config): merge arrays as union instead of replacing
Common config snippets with array fields (e.g. permissions.deny) were
silently overwriting provider-specific entries instead of merging them.
This changes deepMerge to append only new elements (deduplicated by
bidirectional subset equality), deepRemove to strip one element per
source item, and isSubset to use bipartite matching so each source
element claims a distinct target element.

On the Rust side, the live backfill path now uses a new
json_deep_remove_preserving_original_arrays that receives the original
provider settings and only removes entries injected by the snippet,
preserving entries the provider already had. Type-mismatch guards in
both the object and array branches restore the original value when a
snippet changes a key's type.

Fixes #6141
2026-08-07 14:38:43 -04:00
..
2026-06-04 23:32:32 +08:00
2026-08-06 12:21:00 +08:00
2026-08-06 12:21:00 +08:00
2026-08-06 12:21:00 +08:00