Upstream: davidfowl#88
When multiple rules share the same merchant name but different category/subcategory values, by_merchant dict uses last-write-wins for category display. Fix: use (merchant, category, subcategory) as composite key, or enforce uniqueness validation.
Upstream: davidfowl#88
When multiple rules share the same merchant name but different category/subcategory values, by_merchant dict uses last-write-wins for category display. Fix: use (merchant, category, subcategory) as composite key, or enforce uniqueness validation.