dc63632e77
- app/utils/geo.py: reverse_geocoder 单例(mode=1 单进程 KDTree),经纬度→最近聚居点 - app/utils/meituan_city.py: 坐标→美团 city_id(省份/城市名桥接 + 多级兜底 + lru_cache 量化) - feed(rec) / top-sales: 按解析出的 city_id 过滤离线库;城市解析不出 / 老客户端不带坐标 → degraded - top-sales 与 rec 一致置空库内距离(相对城市默认点,对用户无意义) - main.py 启动预热 KDTree;pyproject 加 reverse_geocoder 依赖 + 分发 city_dict.txt - 新增 geo / meituan_city 测试(56 例);scripts/load_meituan_coupon_tsv.py 灌样本到本地 SQLite - .gitignore 忽略样本 TSV 与 .claude 本地设置 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>