diff --git a/BUGS.md b/BUGS.md index eef9ec0..c518598 100644 --- a/BUGS.md +++ b/BUGS.md @@ -8,31 +8,24 @@ When CLOSED, move the entire entry to Resolved — don't duplicate. ## Open bugs -### BUG-13 — Server Web UI shows raw coordinates instead of geocoded location on trips -- **Status**: `IN PROGRESS` -- **Reported**: 2026-08-12 -- **Affected trips**: 18517, 18516 (and possibly others) -- **Symptom**: The trip detail/replay page shows raw (x, y) coordinates instead of - reverse-geocoded location names (street/city/address). -- **Root cause**: Server `_geocode_cached()` returned `None` when both Nominatim and - reverse_geocoder failed to produce a label. The `/api/geocode` endpoint then returned - HTTP 204 with no body. The frontend JS treated 204 as success, called `r.json()` on - empty body → threw → showed raw-coordinate fallback. The Pi version always returned - a label string (with coordinate fallback) and never 204. -- **Fix**: - - Server `_geocode_cached()` now always returns a non-empty string — coordinate - fallback (`lat, lon`) when both geocoders fail, matching Pi behavior. - - Server `/api/geocode` always returns HTTP 200 with `{label: "..."}` (never 204). - - Server `/api/geocode/batch` always includes every coord key in the result dict. - - Server Nominatim call now uses `jsonv2` + `accept-language=en` (aligned with Pi). - - Server reverse_geocoder now uses `mode=1` (aligned with Pi). - - Pi `_geocode_cached()` now checks for empty reverse_geocoder label before - returning (same guard the server has), falling through to coordinate string. +(No open bugs) --- ## Resolved +### BUG-13 — Server Web UI shows raw coordinates instead of geocoded location on trips +- **Status**: `CLOSED` 2026-08-12 +- **Commit**: `8309819` +- **Fix**: Server `_geocode_cached()` now always returns a non-empty string with + coordinate fallback when Nominatim/reverse_geocoder fail. `/api/geocode` always + returns HTTP 200 with `{label}` (never 204). Batch endpoint includes all keys. + Nominatim params + reverse_geocoder mode aligned with Pi. Pi also hardened against + empty reverse_geocoder label. +- **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-01 — WiFi/hotspot unreachable from phone while cell data is on - **Status**: `CLOSED` 2026-08-11 - **Fix**: Dual-radio — wlan0="yaris 911" at 10.42.0.1 (password "yaris911!"), diff --git a/PLAN.md b/PLAN.md index 8766e60..889b132 100644 --- a/PLAN.md +++ b/PLAN.md @@ -1872,10 +1872,11 @@ phase roadmap. --- -### Phase 26: Road-test bug fixes — ✅ DONE -**Completed 2026-08-11.** Targeted bug-fix pass for 12 defects surfaced by the Phase 25 -in-car road test. Every item tracked in [BUGS.md](./BUGS.md), fixed, deployed, and verified -by owner. BUGS.md Open section is now empty — all 12 bugs in Resolved. +### Phase 26: Road-test bug fixes — ✅ DONE (13 bugs resolved) +**Completed 2026-08-11; BUG-13 resolved 2026-08-12.** Targeted bug-fix pass for 13 defects +surfaced by the Phase 25 in-car road test and follow-up. Every item tracked in +[BUGS.md](./BUGS.md), fixed, deployed, and verified by owner. BUGS.md Open section is +now empty — all 13 bugs in Resolved. **Implemented and verified 2026-08-11:** @@ -1938,10 +1939,17 @@ by owner. BUGS.md Open section is now empty — all 12 bugs in Resolved. .toFixed is not a function` — API returns lat/lon as strings, fixed with `Number()` wrapper (`a4a92cc`). Socket `gps_location` event now passes lat/lon to `renderGpsStatus` so both API and Socket paths display coordinates correctly. +- **BUG-13 — Server Web UI shows raw coords instead of geocoded location** (`8309819`, + 2026-08-12): Server `_geocode_cached()` returned `None` → `/api/geocode` returned HTTP 204 + with no body. Frontend JS couldn't parse 204 → showed raw (x,y) fallback. Fixed by always + 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. -**Result**: All 12 bugs closed. Pi runs at full 1.2 GHz with clean power. GPS has fix. Dual-radio +**Result**: All 13 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. BUGS.md Open section is empty. readme.md project status updated. +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. ---