Share recursive mapping merge across configuration assembly

This commit is contained in:
2026-09-29 22:20:10 +00:00
parent f564fef84c
commit 78d4b59bbe
4 changed files with 165 additions and 34 deletions

View File

@@ -96,6 +96,13 @@ composition, decode, and budget codes retain their meanings.
## Stage 1 — Prepare shared recursive combination
**Completed 2026-09-29.** Recursive mapping overlay now uses a private
value-combination walk with path-aware add, combine, and replacement callbacks;
the existing overlay adapter continues to own source origins and history, while
strict composition remains separate. A focused table covers recursive and
atomic replacements, empty mappings, event paths, and detached inputs. Focused
composition/overlay/override/underlay tests and `./scripts/check.sh` passed.
Inspect `internal/engine/overlay.go`, `compose.go`, `mapping_index.go`,
`history.go`, and `internal/document/document.go`. `applyOverlay` already shares
`mergeOverlayMappings` across underlays, main-over-underlay assembly, and selected