Complete resolution provenance readiness audit
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Source origins during resolution: implementation plan
|
||||
|
||||
Status: not started. Implement stages in order, starting with Stage 1.
|
||||
Status: implementation complete (2026-09-12). All stages were completed in order.
|
||||
The [feature roadmap](source-origins-during-resolution.md) owns the target contract
|
||||
and consumer intent. This document owns implementation steps, validation, and
|
||||
handoffs. It is written for one gpt-5.6-terra coding agent per stage; no stage
|
||||
@@ -276,7 +276,7 @@ with Go 1.26.7 on Linux. No deviations or remaining Stage 4 risks were identifie
|
||||
|
||||
## Stage 5 — Audit the complete contract and hand off release readiness
|
||||
|
||||
Status: not started. Dependencies: Stage 4.
|
||||
Status: complete (2026-09-12). Dependencies: Stage 4.
|
||||
|
||||
Scope: integration review, canonical documentation, roadmap completion records,
|
||||
and proportionate fixes for remaining acceptance failures. No feature expansion.
|
||||
@@ -321,6 +321,49 @@ tag or mark unavailable native macOS evidence as passed.
|
||||
|
||||
Validation: `./scripts/check.sh`, `go test -race ./...`, and the full checker above.
|
||||
|
||||
Completion record (2026-09-12): all acceptance criteria have named evidence:
|
||||
|
||||
1. `TestNotariusPathExampleUsesEntryProvenance` covers canonical main-file and
|
||||
symlink target bases without process-CWD dependence.
|
||||
2. `TestResolutionInputKeepsLayeredOriginsAndSources` covers imported scalars and
|
||||
sequence elements.
|
||||
3. The same layered test covers profile replacement and untouched base/import
|
||||
siblings.
|
||||
4. The layered test covers equal-text profile and CLI replacement.
|
||||
5. `TestResolutionEntryQueriesExposeDetachedLoadInput` and
|
||||
`TestResolutionInputDistinguishesNonFileRootsAndImportedFiles` cover defaults,
|
||||
nulls, misses, CLI/file identities, `NoSource`, bytes, and readers.
|
||||
6. The layered test verifies every composite location has a source;
|
||||
`TestResolutionEntryQueriesExposeDetachedLoadInput` verifies unknown IDs miss
|
||||
safely.
|
||||
7. `TestResolutionInputRemainsFixedAcrossRecordedMutations` covers normalization,
|
||||
deletion, addition, and move stability.
|
||||
8. `TestResolutionInputUsesEntryShapesAcrossTypedAndDynamicValues` covers inline,
|
||||
map, array, dynamic, escaped/signed keys, and invalid shape cases.
|
||||
9. `TestNotariusPathExampleUsesEntryProvenance` verifies runtime, effective YAML,
|
||||
and explanation history together.
|
||||
10. `TestResolutionInputQueriesDoNotReadOrResolveSecrets` plus the Notarius test
|
||||
verify no extra reader/credential access and preserved redaction.
|
||||
11. `TestResolutionInputKeepsLayeredOriginsAndSources` and
|
||||
`TestResolutionEntryQueriesExposeDetachedLoadInput` verify detached records.
|
||||
12. `NotariusPathConfig`, its fixtures, executable example, and consumer-guide
|
||||
link provide the maintained public-API/standard-library workflow.
|
||||
|
||||
The final review found that queries use only the callback guard and detached
|
||||
metadata/source indexes; they do not extend callback lifetime, expose raw values, or
|
||||
perform environment/filesystem work. The view is created only for resolver loads and
|
||||
does not retain history. The comparison with `v0.2.0` found only additive exported
|
||||
methods; loading, parser, path, composition, credential, and existing callback
|
||||
semantics remain unchanged. Canonical Go, configuration, consumer, internal, and
|
||||
roadmap documentation are synchronized; the feature roadmap is retained only until
|
||||
release preparation. `./scripts/check.sh`, `go test -race ./...`, documentation and
|
||||
import-boundary checks, and `CONFIGKIT_BASELINE_TOOLCHAIN=go1.25.5
|
||||
CONFIGKIT_NEWER_TOOLCHAIN=go1.26.7 ./scripts/release-check.sh` passed on Linux with
|
||||
Go 1.25.5 and Go 1.26.7. Publication remains unapproved: a maintainer must choose a
|
||||
pre-v1 minor version, write its note, retire completed roadmaps, obtain exact
|
||||
candidate native Linux/macOS evidence, and follow the release procedure. No version,
|
||||
release note, candidate, tag, or push was created.
|
||||
|
||||
## Open Questions
|
||||
|
||||
None blocking implementation. The API, snapshot boundary, missing-value semantics,
|
||||
|
||||
Reference in New Issue
Block a user