Add public facade value wrappers
This commit is contained in:
@@ -323,6 +323,26 @@ Acceptance: candidate wrapper tests and engine tests pass. Run
|
||||
`go test ./internal/facade ./internal/engine` and the everyday check. Lifecycle
|
||||
entry points are added in Stage 6; do not add nonfunctional stubs here.
|
||||
|
||||
### Completion
|
||||
|
||||
Status: complete (2026-09-12).
|
||||
|
||||
Created the temporary `internal/facade` package (named `configkit`) with
|
||||
root-owned `Path`, `Source`, and `Secret` wrappers; root-owned scalar and
|
||||
provenance records; explicit private conversions; `LoadError`; and
|
||||
`WriteDiagnostics`. Public fields and signatures contain only facade types.
|
||||
`Path` carries its engine value privately without text round-tripping, `Source`
|
||||
retains the engine's source value so copied reader sources preserve their shared
|
||||
claim, and the facade builds the exact-type secret binding locally. No lifecycle
|
||||
entry point or placeholder was added.
|
||||
|
||||
Candidate tests cover semantic path distinctions, source byte snapshotting and
|
||||
copied-reader ownership, external-package type ownership and interfaces, and
|
||||
safe secret formatting/JSON. Linux validation with Go 1.26.7 passed
|
||||
`go test ./internal/facade ./internal/engine` and `./scripts/check.sh`. There
|
||||
were no deviations. The next handoff separates engine publication from its
|
||||
generic result before lifecycle delegation begins.
|
||||
|
||||
## Stage 5 — Separate engine publication and inspection
|
||||
|
||||
Status: not started.
|
||||
|
||||
Reference in New Issue
Block a user