Commit Graph
1 Commits
Author SHA1 Message Date
Максименко Никита ВладимировичandClaude Sonnet 5 c1a1319088 feat: settlements from the 2020-2021 census, not just the 1111 official cities
The city dictionary only covered cities with formal status (~1100).
Real client addresses are village/settlement, and those never had
an anchor to match on: "рп. Ильинское", "с. Кукуево" from the spec
were undetectable no matter how good the dictionary got, because
ADDRESS_CITY only recognized "г./город".

Replaces cities.txt with settlements.txt (79,362 names, tochno.st's
processing of Rosstat's 2020-2021 census + CIS capitals) and extends
the rule's anchors to рп./пгт/с./д./дер./х./ст-ца/станица/аул/сл./
слобода/аал. isKnownCity renamed to isKnownSettlement to match what
it actually validates now.

Verified: native image startup time and idle memory unchanged despite
the ~70x larger dictionary (prefix-set lookup from the last pass is
O(word length), not O(dictionary size)); no regression in existing
benchmark false-positive thresholds or load-test latency at 1000/1800/
3000 RPS.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 22:21:27 +03:00