docs: Phase 27 DONE (3 shipped) — odometer sync, trip ID, hotspot docs; FEAT-08 shipped, FEAT-09 wontfix
This commit is contained in:
@@ -1945,23 +1945,35 @@ agree on OBD and GPS state. BUGS.md Open section is empty. readme.md project sta
|
||||
|
||||
---
|
||||
|
||||
### Phase 27: Feature additions — 🚧 IN PROGRESS (1 shipped, 6 candidates)
|
||||
**Started 2026-08-11.** Phase 26 is complete.
|
||||
### Phase 27: Feature additions — ✅ DONE (3 shipped, 4 candidates remain)
|
||||
**Completed 2026-08-12.** Three features shipped; remaining 4 are low-priority ideas
|
||||
tracked in FEATURES.md.
|
||||
|
||||
**Shipped:**
|
||||
- **FEAT-03 — Manual odometer fallback** (2026-08-11): Settings page has an "Odometer
|
||||
baseline (km)" field. `odometer_km = baseline + cumulative trip distance`. Dashboard
|
||||
label shows "(manual)" when using baseline. Falls back to live OBD when baseline is 0.
|
||||
Changed files: `modules/app_settings.py`, `modules/app_sql.py`, `templates/settings.html`,
|
||||
`templates/index.html`, `static/js/settings.js`, `FEATURES.md`.
|
||||
- **FEAT-03 — Manual odometer baseline** (2026-08-11): Pi settings has "Odometer baseline
|
||||
(km)". Dashboard shows `odometer_km = baseline + trip distance`. Pushes to server on save
|
||||
via `POST /api/device-config/push`. Portal shows read-only synced value. Server overview
|
||||
stat card. Four sync bugs fixed during implementation:
|
||||
1. Sync overwrote Pi odometer with stale server value (`_store_synced_config` no longer touches it).
|
||||
2. JS skipped `POST /api/device-config` when enabling sync (always-send fix).
|
||||
3. Backend returned error when toggling sync with locked fields present (toggle-first fix).
|
||||
4. `get_device_by_id()` missing `odometer_baseline` in SQL SELECT (added column, shifted indices).
|
||||
Changed: `modules/app_settings.py`, `modules/app_sql.py`, `modules/app_device_sync.py`,
|
||||
`modules/app_device_config.py`, `templates/settings.html`, `static/js/settings.js`,
|
||||
`server/modules/db.py`, `server/modules/device_config.py`,
|
||||
`server/templates/device_settings.html`, `static/js/portal-device-settings.js`,
|
||||
`server/app.py`, `FEATURES.md`.
|
||||
- **FEAT-06 — Trip ID column in history** (2026-08-11): Narrow `#ID` column on server
|
||||
history (`data-show-id="1"`). Checkbox + batch-delete server-only (`data-batch-delete-url`).
|
||||
Changed: `static/js/history.js`, `server/templates/history.html`.
|
||||
- **FEAT-07 — Phone-hotspot auto-connect docs** (2026-08-11): Already implemented in
|
||||
Phase 22; documented and verified with real Pixel hardware.
|
||||
|
||||
**Remaining candidates:**
|
||||
**Remaining candidates (4):**
|
||||
1. **FEAT-01** — Parallel/concurrent chunked dashcam uploads (medium)
|
||||
2. **FEAT-02** — QR / claim-code device pairing flow (medium)
|
||||
3. **FEAT-04** — Replace SIM868 2G GSM with 4G LTE modem (large)
|
||||
4. **FEAT-05** — DTC history synced to remote server (medium)
|
||||
5. **FEAT-08** — Predictable IP on phone hotspot (small)
|
||||
6. **FEAT-09** — mDNS on phone hotspot (small)
|
||||
|
||||
### Phase 28: Native Android companion app — 🚧 IN PROGRESS (low priority, always last)
|
||||
**Renumbered from former Phase 26 on 2026-08-10 to make room for the road-test bug-fix phase.
|
||||
|
||||
Reference in New Issue
Block a user