docs: Phase 26 DONE — BUG-01 closed, all 11 bugs resolved. BUG-06/12 moved to Resolved.

This commit is contained in:
Mathieu Moran
2026-08-11 17:19:42 -04:00
parent e54391b5c9
commit 0f6d9b20a2
2 changed files with 37 additions and 36 deletions
+29 -31
View File
@@ -8,20 +8,6 @@ When CLOSED, move the entire entry to Resolved — don't duplicate.
## Open bugs
### BUG-01 — WiFi/hotspot unreachable from phone while cell data is on
- **Status**: `IN PROGRESS` (AP tested, phone-hotspot uplink awaits test)
- **Fix applied**: Dual-radio — wlan0="yaris 911" at 10.42.0.1 (password "yaris911!"),
wlan1=uplink. AP verified: iOS + Android connect, `yaris.local` resolves.
- **Test steps for phone-hotspot uplink**:
1. Settings → "Phone hotspot internet" → enter hotspot name + password → Save
2. Click "Wait for hotspot" (or wait ~60s for auto-detect)
3. Turn on phone hotspot → Pi should auto-connect on wlan1
4. Check Settings: mode should show "Phone hotspot", internet reachable
5. Turn off phone hotspot → Pi falls back to home-wifi
6. Verify wlan0 AP stays up throughout (connect another device to confirm)
---
### BUG-02 — Micro-USB power port on the Pi is physically damaged
- **Status**: `OPEN`
- **Severity**: Hardware
@@ -32,23 +18,6 @@ When CLOSED, move the entire entry to Resolved — don't duplicate.
---
### BUG-06 — Server timestamps are shifted (naive local time stored as UTC)
- **Status**: `CLOSED` 2026-08-11
- **Commit**: `7ce2a1e` (upload fix), manual migration on server
- **Fix**:
1. New `_to_tz_aware()` helper in `app_upload.py` converts naive SQLite
timestamps to timezone-aware ISO strings before upload (e.g.,
`2026-08-10 19:27:30` → `2026-08-10T19:27:30-04:00`). Already-aware
timestamps pass through unchanged.
2. One-time SQL migration on the Unraid server shifted all existing
`tracking_points.recorded_at` and `trips.start_time`/`end_time` by +4
hours (EDT), cleared deleted-trip markers, and recomputed all trips.
Result: 3593 tracking rows and 43 trips corrected.
- **Verification**: Server trip history now shows Aug 10 trips at 7:27 PM
and 7:58 PM (was 3:27 PM / 3:58 PM). Confirmed 2026-08-11.
---
### BUG-12 — Dashboard OBD shows "—" while Status page shows correct OBD state
- **Status**: `CLOSED` 2026-08-11
- **Commit**: `91281b1`
@@ -68,6 +37,15 @@ When CLOSED, move the entire entry to Resolved — don't duplicate.
## Resolved
### 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!"),
wlan1=uplink. Never touches wlan0. Phone-hotspot auto-connect on wlan1 within ~60s,
falls back to home-wifi. Settings page shows in-car access card.
- **Verification**: iOS + Android connect to AP, `yaris.local` resolves. Phone-hotspot
uplink tested: auto-connects when hotspot enabled, falls back when disabled. wlan0 AP
stays up throughout.
### BUG-03 — DTC/MIL codes never persisted
- **Status**: `CLOSED` 2026-08-11
- **Commit**: `e2f2314`
@@ -98,6 +76,26 @@ When CLOSED, move the entire entry to Resolved — don't duplicate.
- **Verification**: Deployed to Pi, dashboard GPS card now shows lat/lon coordinates
even when fix is stale. Both pages agree on fix status.
### BUG-06 — Server timestamps are shifted (naive local time stored as UTC)
- **Status**: `CLOSED` 2026-08-11
- **Commit**: `7ce2a1e` (upload fix), manual migration on server
- **Fix**:
1. `_to_tz_aware()` in `app_upload.py` converts naive SQLite timestamps to
TZ-aware ISO before upload (`2026-08-10 19:27:30` → `2026-08-10T19:27:30-04:00`).
2. One-time SQL migration on Unraid: shifted 3,593 tracking rows +4h EDT,
cleared deleted-trip markers, recomputed 43 trips from corrected data.
- **Verification**: Server trips now show Aug 10 at 7:27 PM / 7:58 PM (was 3:27 / 3:58).
### BUG-12 — Dashboard OBD shows "—" while Status page shows correct OBD state
- **Status**: `CLOSED` 2026-08-11
- **Commit**: `91281b1`
- **Fix**: Added `/api/obd/status` endpoint. Dashboard calls `refreshObdStatus()`
on load + every 15s. Socket events still update in real-time. Side fix: `Number()`
wrap on API string lat/lon prevents crash. Socket `gps_location` now passes lat/lon
to `renderGpsStatus` (`a4a92cc`).
- **Verification**: Dashboard shows "Adapter only" matching Status page. GPS lat/lon
display correctly. Confirmed on live Pi.
### BUG-07 — Trip replay on portal sometimes does nothing
- **Status**: `CLOSED` 2026-08-11
- **Commit**: `fa93384`