- New cities: Hong Kong, Singapore, Amsterdam, Berlin, Vienna,
Lisbon, Budapest, Athens, Mumbai, Mexico City
- All 28 cities now have LLM recommendations (7 categories each)
- Japanese and Traditional Chinese translations pre-warmed for all
- Updated README with ✈️ logo and latest documentation
- Updated warmup.py CITIES list to include all 28
- .gitignore .hermes/ directory
Remove Tier 6 city-level photo fallback — show emoji instead of duplicate photos
Items that can't find a specific image now get image_url='' instead
of sharing a generic city photo. Frontend already shows 🏛️ emoji
fallback for empty image_url.
Also added 10 new cities to warmup queue.
Improve image enrichment: city context in Tier 1 + smarter warmup health check
- _fetch_wiki_image() now accepts city param — tries '{name}, {city}'
and '{name} ({city})' search queries when bare name yields few candidates
- _enrich_one_item() passes city to Tier 1 (was only used by Tiers 2-6)
- check_items() in warmup: 3-pass fix (missing → fallback replace → retry),
detects city-level fallback images shared by >=3 items and replaces them
- New --fix mode: re-check existing cached images without LLM calls
(python scripts/warmup.py --fix --city Tokyo)
- Image cache cleaned: 540 → 519 entries (transients removed)
Unified warmup script + provider observability + Tokyo caches
- New scripts/warmup.py: unified warmup with per-combo checkpointing
(saves all 3 caches after every combo), per-provider logging,
health check + duplicate detection built in, resumable progress
- Added provider_log parameter to get_recommendations() and
get_recommendations_cached() — captures provider name, model,
status, timing, item count per attempt
- Added duplicate image detection to check_cache.py (fallback fix)
- Tokyo caches populated: all 7 categories (19 or 16 items each)
- LLM 44, Images 543, Geocode 142 entries