fix: handle duplicate repository keys in Dictionary and NSMenu #32
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Dictionary(uniqueKeysWithValues:)withDictionary(_:uniquingKeysWith:)to prevent crashes when duplicatefullNamekeys occurAppState+Refresh.swiftthat use this patternProblem
The app crashes in two ways when duplicate repositories appear in the data:
EXC_BREAKPOINT (SIGTRAP)in_assertionFailurefrom_NativeDictionary.mergewhenmergeHydratedencounters repositories with duplicatefullNamevaluesRoot Cause
Duplicate repository keys can occur when:
Solution
Dictionary fix
Use
Dictionary(_:uniquingKeysWith:)which gracefully handles duplicates by keeping the first occurrence:Menu fix
Deduplicate repos by id before iterating to build menu items:
Test plan
swift build)Fixes #31
🤖 Generated with Claude Code