fix(settings): preserve distinct catalog identities - #120
Conversation
Independent QA auditReview target: the post-merge findings on #110, not only the implementation-authored tests.
The baseline/treatment harness and mutation were run outside the committed test surface and then removed. This is an agent-run independent verification pass, not a claim of a separate human approval. |
Post-remediation QA auditBlocker
Current data already contains a concrete mismatch for the same path:
Because both are This directly misses #110's acceptance criteria around conflicting domains and stale/duplicate semantic tables. The duplicate comparison needs to compare the full semantic Major
The identity-collision remediation itself is valid: the prior #110 should remain open until the duplicate projections are compared on the semantic facts that affect the effective catalog rather than only their broad Rust enum variant. |
Summary
Fixes #110 by making settings identity and projection validation fail closed.
Independent QA evidence
This PR was checked against the exact pre-remediation merge head
ea45518185c8d34b7186376b9e376e57480b9c85:ability1Kb%andability1SelfKb%both resolved tosetting.hero.ability.knockback.ability1Kb%/ability1SelfKb%identities and distinctdamageDealt%/damageReceived%identities.gamemodes.general.heroLimitfromEnumtoBoolcausedworkshop-catalog-gen checkto fail withconflicting duplicate settings path.Local verification
cargo fmt --all --checkcargo test --workspace --all-targets --lockedcargo run -p workshop-rs --bin workshop-catalog-gen -- checkcargo clippy --workspace --all-targets --locked -- -D warningsgit diff --check