Add ConfigKit comparison acquisition
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
# Implement ConfigKit adoption and configuration comparison
|
||||
|
||||
Status: implementation plan; no implementation stages are complete.
|
||||
Status: implementation in progress; Stages 1–5 are complete.
|
||||
|
||||
## Scope and authority
|
||||
|
||||
Follow the stages in order, starting with Stage 1. Each stage is sized for one
|
||||
Follow the stages in order, starting with the first stage without completion
|
||||
evidence. Each stage is sized for one
|
||||
Luna implementation assignment. The [feature roadmap](configkit.md) owns the
|
||||
selected end state, operator behavior, target API, and scope limits. This document
|
||||
owns the steps to reach that state. Read [development guidance](../development.md)
|
||||
@@ -257,14 +258,19 @@ This is the selected internal coordination for the adapter, not a new policy
|
||||
for application-supplied pair callbacks. Tests should protect diagnostic retention
|
||||
and required lifecycle boundaries, not an incidental number of context polls.
|
||||
|
||||
**Completion evidence:** direct adapter tests with real ConfigKit loads for
|
||||
public changes, base-versus-overlay loading, equal effective values,
|
||||
defaults/resolution, and paired-safe concealed changes. Test right failure
|
||||
retaining left warnings, wrapped load-error identity, nil results, and
|
||||
cancellation between loads. Exercise a native
|
||||
comparison error with a non-nil uninitialized result and retain available
|
||||
diagnostics. Do not build a global fake comparator just to force an unreachable
|
||||
branch; handler-level provider errors can carry diagnostics from both sides.
|
||||
**Completion evidence — complete:** `FromConfigKit` now declares all five
|
||||
operations and wires its typed comparison callback to sequentially load both
|
||||
selected sides with the same state, then return `configkit.Diff` records. The
|
||||
adapter keeps successful and `LoadError` diagnostics in left-to-right order,
|
||||
labels comparison diagnostics by side, checks cancellation at the selected
|
||||
boundaries, and wraps load/native comparison failures with their causes intact.
|
||||
Direct tests use real ConfigKit loads for public changes, base-versus-overlay
|
||||
loading, equal values after defaults and resolution, and safe concealed-change
|
||||
records. They also cover both sides' diagnostics when the right load fails,
|
||||
wrapped `LoadError` identity, nil results, cancellation between loads, and a
|
||||
native Diff error from a non-nil uninitialized result while retaining available
|
||||
diagnostics. Ordinary `Acquire` diagnostics and error identity remain covered
|
||||
and unchanged. `go test -count=1 ./...` passes in ckconfig and ckp.
|
||||
|
||||
## Stage 6: Implement safe YAML snapshot and semantic-path placement helpers
|
||||
|
||||
|
||||
Reference in New Issue
Block a user