Retire obsolete collection identity before replacement agreement

This commit is contained in:
2026-10-24 00:51:10 +00:00
parent d2e20a304a
commit 146e7e56d9
8 changed files with 242 additions and 43 deletions

View File

@@ -435,7 +435,16 @@ Validation:
## 12. Complete Identity Retirement Across Replacement Shapes — P2
Status: [ ] Open.
Status: [x] Complete.
Completion: source composition and inheritance now prepare eligible lower policy
from actual replacement paths before agreement. Removed identity and record state
cannot constrain a new pending key or reappear in later inheritance. Shared mode
selection preserves explicit-mode persistence and authoritative registrations.
Regressions cover null/scalar/mapping/list replacement, ancestor removal with a
new key, reintroduction, and retained/application-constrained conflicts. Verified
focused retirement/inheritance tests, engine ownership race coverage, and
`./scripts/check.sh`.
Owners: [`resolveStrictCollectionPolicies`](../../internal/engine/compose.go),
especially its `sequencePresent` reset condition;