Add private sequence-item placement

This commit is contained in:
2026-10-16 15:55:29 +00:00
parent 1cf3b0d78f
commit 1a04bb3835
10 changed files with 298 additions and 46 deletions

View File

@@ -1,6 +1,6 @@
# Implementation Plan: Sequence Placement and Composition
Status: implementation in progress; stages 1–6 completed.
Status: implementation in progress; stages 1–7 completed.
## Purpose and authority
@@ -451,6 +451,22 @@ Scope: placement primitives and engine per-input options; not public exposure.
Validation: placement/accounting/option tests and `./scripts/check.sh`.
Completion: the private operation places a mapping once with correct ownership.
Completion evidence: added private placement modes to engine options, load
requests, and source records, with preflight rejection of unknown modes and
item placement at an empty destination. A completed mapping can now be wrapped
in one singleton sequence at its destination; nil payloads remain absent and
empty mappings remain real items. Wrapper accounting includes both destination
mapping nodes and the added sequence depth/node, with limits checked before
allocation. Focused tests cover mapping zero-value equivalence, nested paths,
empty and absent payloads, invalid modes/destinations, and exact/exceeded
allowances. These checks passed with Go `go1.26.9 linux/amd64`:
- `GOTOOLCHAIN=local GOPROXY=off go test ./internal/engine -run 'Destination|Import|Mounted|PlaceDocument|Options|Layered' -count=1`
- `GOTOOLCHAIN=local ./scripts/check.sh`
- `git diff --check`
No environmental limitation affected validation; checks ran on Linux/amd64.
## Stage 8 — Assemble item scopes and YAML path/glob imports
Scope: directive parsing and scoped acquisition/composition.