docs: add BUG-14 (Nominatim slowness), update PLAN.md Phase 26 (14 bugs)

- BUG-14: Nominatim replaced with offline reverse_geocoder — instant, no network
- PLAN.md Phase 26: 13 → 14 bugs resolved, updated result summary
This commit is contained in:
Mathieu Moran
2026-08-12 03:31:50 -04:00
parent 0ddfe39901
commit 78cd05c4cb
2 changed files with 20 additions and 3 deletions
+12
View File
@@ -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). - **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). 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 ### BUG-01 — WiFi/hotspot unreachable from phone while cell data is on
- **Status**: `CLOSED` 2026-08-11 - **Status**: `CLOSED` 2026-08-11
+8 -3
View File
@@ -1945,11 +1945,16 @@ now empty — all 13 bugs in Resolved.
returning `{label}` with coordinate-string last-resort fallback (matching Pi behavior), returning `{label}` with coordinate-string last-resort fallback (matching Pi behavior),
aligning Nominatim params (`jsonv2`, `accept-language=en`) and reverse_geocoder `mode=1` aligning Nominatim params (`jsonv2`, `accept-language=en`) and reverse_geocoder `mode=1`
between server and Pi. Also hardened Pi against empty reverse_geocoder label. 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 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 agree on OBD and GPS state. Geocode is instant and always works (offline reverse_geocoder).
for git operations. BUGS.md Open section is empty. readme.md project status updated. Unraid now uses SSH deploy key for git operations. BUGS.md Open section is empty.
--- ---