Files
teernisse 28479071ae Fix category synonym matching: deduplicate aliases, remove broken fast-path
Three issues in categoryAliasList/categoryMatcher:

1. categoryAliasList appended raw synonyms without deduplication—the
   addAlias helper already handles lowering and dedup, so route synonyms
   through it instead of direct append.

2. categoryMatcher.matches had a fast-path that returned false when the
   input contained no separators (-_ space), skipping the normalization
   step entirely. This caused legitimate matches like "frozen foods" vs
   "frozen" to fail when the input was a simple word that needed plural
   stripping to match.

3. normalizeCategory unconditionally replaced underscores/hyphens and
   re-joined fields even for inputs without separators. Gate the
   separator logic behind a ContainsAny check, and use direct slice
   indexing instead of TrimSuffix for the plural stripping.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 01:31:50 -05:00
..