Mask sensitive structural replacements

This commit is contained in:
2026-10-09 12:22:36 +00:00
parent ade5d6a273
commit e5dddef204
3 changed files with 183 additions and 15 deletions

View File

@@ -224,7 +224,7 @@ unchanged, and unsupported intermediate shapes return no nodes.
## Stage 5 — Complete structural-replacement masking
Status: planned. Scope: the fallback rule and its shape-sensitive regressions.
Status: complete. Scope: the fallback rule and its shape-sensitive regressions.
1. Extend the paired traversal to detect incompatible present kinds at the root
or nested positions. Use strict-descendant classification under the mismatch
@@ -243,6 +243,13 @@ Validate: focused `Diff` tests, existing rendering tests, and the everyday
check. Done: every shape branch has defined disclosure behavior without blanket
masking of otherwise compatible public regions.
Evidence: `go test ./internal/engine -run 'Diff|Effective|Snapshot'` and
`./scripts/check.sh` passed. Coverage includes both mapping/scalar directions,
mapping/sequence replacements with numeric path tokens, null/container changes,
nested sequence mismatches, historical-only descendant classification,
unrelated sensitive siblings, targeted masking through absence, and fallback
preserving an absent reported side.
## Stage 6 — Distinguish hidden changes from unchanged masked content
Status: planned. Scope: one flag threaded through the existing paired traversal.