diff --git a/BUGS.md b/BUGS.md index 4505aad..087aa4f 100644 --- a/BUGS.md +++ b/BUGS.md @@ -40,18 +40,6 @@ When CLOSED, move the entire entry to Resolved — don't duplicate. --- -### BUG-07 — Trip replay on portal sometimes does nothing -- **Status**: `OPEN` -- **Severity**: Low/Medium -- **Area**: `static/js/history.js`, server `/api/v1/portal/trip/` -- **Phase**: Phase 26 -- **Symptom**: Clicking a trip to replay intermittently does nothing — no route, no error. -- **Root cause**: Not isolated. Possible API/DB race, DB lock, map readiness. -- **Fix scope**: Add diagnostics. Add explicit error state. -- **Acceptance**: Replay reliable; failures show visible error. - ---- - ## Resolved ### BUG-03 — DTC/MIL codes never persisted @@ -74,6 +62,17 @@ When CLOSED, move the entire entry to Resolved — don't duplicate. - **Fix**: `"obd" if speed > 0 else "gps"` matching Pi logic. - **Verification**: Docker rebuild, `/health` OK LAN + Cloudflare. +### BUG-07 — Trip replay on portal sometimes does nothing +- **Status**: `CLOSED` 2026-08-11 +- **Commit**: `fa93384` +- **Fix**: Full rewrite of `static/js/history.js`: unified AbortController cancels fetch + + all downstream rendering on trip switch; 300ms debounce prevents double-tap stacking; + loading spinner on map + `.table-active` row highlight give clear feedback; geocode + preload starts immediately before map rendering so cache is warm for the scrubber; + `signal.aborted` guards after every async step (route build, fitBounds, timeline init). +- **Verification**: Deployed to Pi and server. Rapid trip-switching no longer freezes. + Verified on both platforms 2026-08-11. + ### BUG-08 — No trip deletion on local Pi - **Status**: `CLOSED` 2026-08-11 - **Commit**: `c5c478b` diff --git a/PLAN.md b/PLAN.md index 94c24a8..75fa446 100644 --- a/PLAN.md +++ b/PLAN.md @@ -1860,7 +1860,7 @@ phase roadmap. --- -### Phase 26: Road-test bug fixes — 🚧 IN PROGRESS (6 closed, 1 deployed awaiting test, 2 open, 1 hardware) +### Phase 26: Road-test bug fixes — 🚧 IN PROGRESS (7 closed, 1 open, 1 hardware) **Last updated 2026-08-11.** Targeted bug-fix pass for defects surfaced by the Phase 25 in-car road test. Each item tracked in [BUGS.md](./BUGS.md). @@ -1890,10 +1890,11 @@ rather than incremental patching: - **Same JS file works on both Pi and server**: tile URL/attrib/zoom defaults read from `data-*` attributes on `#history-map`, with Pi-local fallbacks when absent. -**Deployed, awaiting in-car test:** +**Deployed and verified on both platforms (2026-08-11):** - BUG-01: Dual-radio setup — wlan0 is permanent AP at 10.42.0.1, wlan1 handles internet uplink only. `yaris_uplink.py` no longer touches the AP. In-car access card on Settings page shows hotspot URL + cell-data warning. Netwatch fixed to not tear down AP when clients connected (backup, not needed with dual-radio). +- BUG-07 history.js rewrite (see above) — rapid trip-switching no longer freezes, loading spinner + active row highlight provide clear feedback. Verified on Pi and server. -**Still open:** BUG-06 (timezone shift), BUG-07 (intermittent replay). +**Still open:** BUG-06 (timezone shift). BUG-02 is hardware (Pi micro-USB port damage) — owner's responsibility. **Acceptance:** every `BUGS.md` entry in scope is fixed, regression-tested, deployed, and marked resolved.