diff --git a/BUGS.md b/BUGS.md index c518598..d202dd8 100644 --- a/BUGS.md +++ b/BUGS.md @@ -25,6 +25,18 @@ When CLOSED, move the entire entry to Resolved — don't duplicate. - **Verification**: Deployed to Unraid (Docker rebuild) and Pi (git pull + restart). Both healthy. Unraid now uses SSH deploy key for git fetch (was failing on HTTPS auth). +### BUG-14 — Geocode slow/unreliable — location labels fail to load during scrubbing +- **Status**: `CLOSED` 2026-08-12 +- **Commit**: `0ddfe39` +- **Fix**: Ditched Nominatim entirely — it was slow (1 req/sec rate limit, ~4s + timeouts) and often blocked/throttled from Docker/Cloudflare IPs. Replaced with + reverse_geocoder exclusively: an offline Python library that maps lat/lon → + city/province instantly with no network. JS `preload()` switched from N individual + GET requests to single `POST /api/geocode/batch`. Server batch endpoint simplified + to sequential loop with lru_cache + dedup. +- **Verification**: `POST /api/geocode/batch` returns `{"Montreal, Quebec", + "Longueuil, Quebec"}` instantly on Pi. Server Docker rebuilt and healthy. + ### BUG-01 — WiFi/hotspot unreachable from phone while cell data is on - **Status**: `CLOSED` 2026-08-11 diff --git a/PLAN.md b/PLAN.md index 889b132..70673b5 100644 --- a/PLAN.md +++ b/PLAN.md @@ -1945,11 +1945,16 @@ now empty — all 13 bugs in Resolved. returning `{label}` with coordinate-string last-resort fallback (matching Pi behavior), aligning Nominatim params (`jsonv2`, `accept-language=en`) and reverse_geocoder `mode=1` between server and Pi. Also hardened Pi against empty reverse_geocoder label. +- **BUG-14 — Geocode slow/unreliable during trip scrubbing** (`0ddfe39`, 2026-08-12): + Nominatim was the root bottleneck — 1 req/sec rate limit, ~4s timeouts, often blocked + from Docker/Cloudflare IPs. Replaced entirely with reverse_geocoder (offline Python lib, + instant city/province lookup). JS `preload()` switched from N individual GETs to single + `POST /api/geocode/batch`. Geocoding is now instant, zero network, always works. -**Result**: All 13 bugs closed. Pi runs at full 1.2 GHz with clean power. GPS has fix. Dual-radio +**Result**: All 14 bugs closed. Pi runs at full 1.2 GHz with clean power. GPS has fix. Dual-radio AP stays up regardless of uplink state. Server trip times are correct. Dashboard and Status page -agree on OBD and GPS state. Server geocode always returns a label. Unraid now uses SSH deploy key -for git operations. BUGS.md Open section is empty. readme.md project status updated. +agree on OBD and GPS state. Geocode is instant and always works (offline reverse_geocoder). +Unraid now uses SSH deploy key for git operations. BUGS.md Open section is empty. ---