Pass effective destinations through import traversal

This commit is contained in:
2026-10-14 17:21:07 +00:00
parent a8beb3e620
commit 49c0c6d908
7 changed files with 189 additions and 35 deletions

View File

@@ -169,7 +169,7 @@ Done: baseline and decision are recorded; implemented behavior is unchanged.
## Stage 2 — Refactor traversal to explicit per-document placement
Status: planned. Scope: private context plumbing; old syntax remains unchanged.
Status: complete. Scope: private context plumbing; old syntax remains unchanged.
1. Add the relative-destination slot to `importDeclaration`, initially zero for
all parsed declarations. Add the destination-append helper and bounded
@@ -189,10 +189,17 @@ Status: planned. Scope: private context plumbing; old syntax remains unchanged.
Public syntax and complete acceptance follow Stage 3.
Validate: `go test ./internal/engine -run 'Import|Glob|Destination|Grouped'`,
`go test . -run 'Destination|FacadeLayered'`, and `./scripts/check.sh`.
`go test . -run 'Destination|FacadeLayered|Mapping'`, and `./scripts/check.sh`.
Done: baseline loads remain equivalent; all placement consumers use explicit
document context and no uniform setter can erase per-import placement.
Evidence (2026-10-14): based on `a8beb3e62014cb960f3c922c79cd98bd04a657e7`,
using `go1.26.8 linux/amd64`. The focused engine command, the root destination,
layered, and Mapping regression tests, and `./scripts/check.sh` all passed. The
private traversal fixture verifies nested accumulation, sibling isolation, and
one shared destination across glob matches; failure fixtures verify entry
placement survives import-context and imported-parse errors. No limitations.
## Stage 3 — Accept and document the selected YAML syntax
Status: planned. Scope: directive parsing and first complete public behavior.