Separate projection cloning and value comparison
This commit is contained in:
@@ -23,8 +23,10 @@ module and package documentation boundary. Its implemented public primitives are
|
||||
in `override.go`, sharing overlay, source, byte, node, and depth policies;
|
||||
- a per-operation private reflection descriptor graph in `schema.go` for supported
|
||||
types, YAML field binding, inlining, secret tags, recursion, and semantic paths;
|
||||
- descriptor-driven canonical projection, detached typed cloning, cycle/limit
|
||||
enforcement, and structural comparison in `projection.go`;
|
||||
- descriptor-driven canonical projection in `projection.go`, detached typed
|
||||
cloning with explicit secret-state modes in `clone.go`, shared reflection and
|
||||
cycle/limit state in `value_operation.go`, and configuration-value comparison
|
||||
in `document_compare.go`; validation separately audits sensitivity and secrets;
|
||||
- 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;
|
||||
|
||||
@@ -204,7 +204,16 @@ or predicate coverage changes. Do not add tests that assert walker call counts.
|
||||
|
||||
## Stage 5 — Separate typed projection, cloning, and comparison
|
||||
|
||||
Status: pending.
|
||||
Status: complete.
|
||||
|
||||
Completion: projection, detached cloning, shared reflection state, and value-only
|
||||
comparison now have separate owners. Named secret clone modes preserve the two
|
||||
ownership barriers. Validation combines value and sensitivity comparison in a
|
||||
named helper and separately audits resolved secret state. Standard `cmp.Compare`
|
||||
replaces the custom comparator; tests changed only for private symbol renames.
|
||||
Full offline baseline and race suites passed with Go 1.26.7 on Linux/amd64,
|
||||
including codec/cycle/limit, callback ownership, sensitivity, and secret-state
|
||||
regressions.
|
||||
|
||||
Evidence: [projection.go](../../projection.go) combines roughly 622 lines of
|
||||
projection, detached cloning, dynamic schema handling, cycle/limit enforcement,
|
||||
|
||||
Reference in New Issue
Block a user