Implement strict document composition
This commit is contained in:
@@ -802,7 +802,27 @@ Acceptance:
|
||||
|
||||
## Stage 10 — Implement strict document composition
|
||||
|
||||
Status: pending.
|
||||
Status: complete.
|
||||
|
||||
Completion evidence (2026-09-06):
|
||||
|
||||
- Adapted Narratio's additive claim validation and recursive mapping join into the
|
||||
private `composeDocuments` boundary over ConfigKit-owned document trees. Present
|
||||
equal or unequal scalars, nulls, sequences, mapping/value kind changes, and nested
|
||||
duplicate entries return `compose.conflict`; mapping pairs alone recurse.
|
||||
- Changed the extracted empty-map behavior to ConfigKit's operation table: empty
|
||||
mappings add no children, compose with other mappings, and retain their container
|
||||
location in composite base origins. Application defaults never enter the composer.
|
||||
- Preserved source/declaration traversal in detached ordered claim records and used
|
||||
it only for assembled order and exact primary/related diagnostics. Conflicts across
|
||||
three or more inputs report every claimant, while shared containers aggregate all
|
||||
contributing locations instead of selecting an arbitrary owner.
|
||||
- Cloned every retained branch and verified mutations of a composed result cannot
|
||||
affect any input. Focused tests cover disjoint keyed joins, operation categories,
|
||||
ancestor and nested conflicts, equal values, nulls, sequences, empty mappings,
|
||||
exact locations, all claimants, invalid boundaries, and nonmutation. The
|
||||
[current composition contract](../config.md#strict-document-composition) owns the
|
||||
implemented semantics; public import wiring remains deferred to subsequent work.
|
||||
|
||||
Read: feature [composition table](initial.md#composition-and-overlay).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user