omnigraph/crates/omnigraph-config
Ragnor Comerford d3ebc29c05
feat(config): layered merge engine + per-field provenance
Add merge_layers(Vec<LoadedLayer>) -> (OmnigraphConfig, Provenance): folds parsed
config layers low->high into one merged config plus a dotted-path origin map.
Settings-objects deep-merge per leaf (a higher layer's Some/non-empty wins, None
inherits); named-resource maps (servers/graphs/aliases/queries) union by key with
a higher layer's entry replacing the lower wholesale (no intra-entry bleed); lists
and scalars replace. Provenance is a sorted BTreeMap side-table, so the merged
OmnigraphConfig shape and all its accessors stay unchanged — only config view reads
it. Pure structure: every layer is already version-gated and path-resolved before
merge. Not yet wired into loading.
2026-06-05 11:19:53 +02:00
..
src feat(config): layered merge engine + per-field provenance 2026-06-05 11:19:53 +02:00
Cargo.toml refactor(config): extract load_single_layer; add Layer/Provenance + dirs 2026-06-05 11:08:09 +02:00