Execute configuration comparisons

This commit is contained in:
2026-10-11 21:51:54 +00:00
parent 783f17f274
commit 18ee987a88
4 changed files with 316 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
# Implement ConfigKit adoption and configuration comparison
Status: implementation in progress; Stages 1–7 are complete.
Status: implementation in progress; Stages 1–8 are complete.
## Scope and authority
@@ -404,12 +404,20 @@ the writer error and the existing incomplete-report indication. Diagnostic
delivery itself continues through core, including its established writer-failure
handling. Do not manually write the same diagnostics from the handler.
**Completion evidence:** default/explicit YAML, text rejection, file/overlay
selection inheritance, comparison-only scope, discovery/help availability, and
unsupported scopes with zero provider work. Cover provider diagnostics with an
error, wrapped identity, report preparation failure, cancellation, output/short
writes, and repeated invocations with fresh inputs/state. Existing four operations
and their output defaults must continue to work.
**Completion evidence — complete:** the installed `config diff` dispatches through
the prepared comparison pair and its provider once, never through ordinary
acquisition. Execution preserves provider diagnostics and causes, checks
cancellation before writing, renders the full report before delivery, and uses
the existing operational/delivery outcomes. Public core/Cobra execution tests
cover default and explicit YAML, text rejection before provider work, right-side
configuration with inherited overlay selection, comparison-only discovery and
execution, and unsupported scopes before factories or providers. They also cover
provider errors with diagnostics and wrapped identity, malformed report snapshots,
cancellation after acquisition, output errors and short writes, and repeated
invocations with distinct side inputs and fresh shared state. A real ConfigKit
consumer comparison covers concealed changes and empty results. Existing
operations remain covered by the ckconfig suite. `go test -count=1 ./...` passes
in ckconfig and ckp.
## Stage 9: Demonstrate the simple consumer comparison