Extract explicit configuration loading phases

This commit is contained in:
2026-09-07 01:13:20 +00:00
parent 75a5829132
commit 6a1c7df4be
8 changed files with 342 additions and 256 deletions

View File

@@ -31,7 +31,9 @@ module and package documentation boundary. Its implemented public primitives are
- strict schema-driven decoding over detached defaults in `decode.go`, including
mapping/sequence semantics, null and numeric policy, safe codec errors, presence,
baseline/final trees, and initial default/input origins;
- public lifecycle coordination in `load.go`, bounded canonical import DFS in
- public lifecycle coordination in `load.go`, option selection in `options.go`,
input assembly in `load_input.go`, typed phases/publication in `load_result.go`,
bounded canonical import DFS in
`imports.go`, filesystem context/containment in `filesystem.go`, directive
parsing/restrictions in `directives.go`, pattern-directed glob expansion in
`glob.go`, version-report contexts

View File

@@ -293,7 +293,16 @@ profile/CLI provenance remains identical.
## Stage 7 — Extract explicit loader lifecycle phases
Status: pending.
Status: complete.
Completion: `load.go` now visibly coordinates ordered phases using source assembly
in `load_input.go`, option selection in `options.go`, and typed phase outputs and
publication in `load_result.go`. Version checking lives in `validation.go`.
One composition initializer covers profiles, CLI, and NoSource overrides without
changing budgets. Diagnostics and source handoffs remain explicit, both ownership
clones remain, and publication adds no history copies. Full offline baseline and
race suites passed with Go 1.26.7 on Linux/amd64; lifecycle, early-stop, warning,
precedence, provenance, callback ownership, and secret tests passed unchanged.
Evidence: `loadWithSecretLookup` in [load.go](../../load.go) coordinates roughly
200 lines of source assembly, decoding, callbacks, history, secrets, and result