Preserve inherited reference path origins
This commit is contained in:
@@ -80,10 +80,12 @@ umask, setgid inheritance, and default ACLs; see [Operations](operations.md#cach
|
||||
|
||||
Every nonempty relative configured destination or reference path resolves from
|
||||
the canonical directory of the file that supplies its surviving declaration.
|
||||
This includes imported fragments and selected configuration overlays. Built-in
|
||||
relative destinations use the selected main configuration file's directory;
|
||||
explicit `--output-dir` and `--debug-dir` values use the invocation working
|
||||
directory. Absolute values remain unchanged.
|
||||
This includes imported fragments, selected configuration overlays, and values
|
||||
copied through inheritance: the copied value keeps its original declaring
|
||||
file. A child-supplied replacement resolves from the child's declaring file.
|
||||
Built-in relative destinations use the selected main configuration file's
|
||||
directory; explicit `--output-dir` and `--debug-dir` values use the invocation
|
||||
working directory. Absolute values remain unchanged.
|
||||
|
||||
The root file can use ConfigKit imports to compose disjoint definitions. Imports
|
||||
and selected overlays remain under the configuration root; they do not merge or
|
||||
|
||||
@@ -28,10 +28,13 @@ at their respective [CLI](cli.md), [pipeline](pipeline.md), and
|
||||
|
||||
## Loading And Validation
|
||||
|
||||
ConfigKit acquires the selected root, imports, optional selected overlay, and
|
||||
explicit CLI overrides in precedence order. Its document definition supplies
|
||||
typed defaults, source-aware path normalization, and structural validation
|
||||
before conversion to the independently owned runtime **Config**. Only
|
||||
ConfigKit composes the selected root, imports, optional selected overlay, and
|
||||
explicit CLI overrides in precedence order, then expands native sibling
|
||||
inheritance before typed decoding. The document definition supplies typed
|
||||
defaults and structural validation; Notarius's recorded resolution changes
|
||||
normalize configured paths after decode. Path normalization follows the source
|
||||
of the surviving value, including a value copied through inheritance, rather
|
||||
than the inheritance directive's location. Only
|
||||
`NOTARIUS_CONFIG` participates in discovery; retired field-level environment
|
||||
variables do not participate in loading. Version 5 decoding rejects scalar
|
||||
module bindings and scalar external references. ConfigKit retains redacted,
|
||||
|
||||
@@ -227,6 +227,8 @@ not change defaults or add CLI flags for arbitrary configuration overrides.
|
||||
|
||||
## Stage 4 — Verify Declaration-Relative Paths Through Inheritance
|
||||
|
||||
> Completion: complete.
|
||||
|
||||
Goal: keep inherited resource paths anchored to the original declaration.
|
||||
|
||||
Inspect `document_paths.go`, `document_paths_test.go`, the original-path map in
|
||||
|
||||
Reference in New Issue
Block a user