atproto Thingiverse but good

PM-86: fix protocol-root-collapsed duplicate resource identity master

The target_keys_by_path cache dedupes on local RootId, but resolved_closure.resolved stores protocol_root() which collapses multiple local roots (Models|Parts|P|External -> UploadedLdraw, OfficialParts|OfficialP -> OfficialLibrary). Same path resolved through two different local roots bypassed the cache and pushed to resolved_closure.resolved twice, causing DuplicateIdentity at validation. Add a resolved_identities HashSet keyed on (protocol_root, path) matching the validation identity exactly, and guard both push sites. Epic: PM-86


Author Orual Date Commit 40a9ce3f Parent 5500159f Change ID qwpttqrw
+9 -1
4 changed files