Commit Graph
200 Commits
Author SHA1 Message Date
Mathieu Moran cdb3fc19c7 fix(phase26): abort preload fetches when switching trips to prevent server freeze 2026-08-11 05:01:18 -04:00
Mathieu Moran ad56380e23 fix(phase26): revert batch geocode, use rate-limited concurrent requests to avoid server freeze 2026-08-11 04:57:44 -04:00
Mathieu Moran 5018c6c531 fix(phase26): batch geocode endpoint for faster server trip scrubber 2026-08-11 04:44:37 -04:00
Mathieu Moran bdc7a9afb7 fix(phase26): server trip delete persists across recompute + batch delete with checkboxes 2026-08-11 04:18:58 -04:00
Mathieu Moran e6bc488e84 docs: update Phase 26 with dual-radio + trip fix details 2026-08-11 03:57:06 -04:00
Mathieu Moran cf096744d1 fix(phase26): BUG-10 side effect — preserve trips when OBD never connected 2026-08-11 03:56:00 -04:00
Mathieu Moran ae7f6358b2 docs: update BUG-01 dual-radio fix status 2026-08-11 03:46:18 -04:00
Mathieu Moran 592e049f59 fix(phase26): dual-radio — wlan0 permanent AP, wlan1 internet uplink (BUG-01) 2026-08-11 03:44:01 -04:00
Mathieu Moran 89bbc4fdb8 fix(phase26): skip netwatch AP scan when clients connected (BUG-01) 2026-08-11 03:11:13 -04:00
Mathieu Moran f9d967e71c docs: update Phase 26 bug count in PLAN.md 2026-08-11 03:02:02 -04:00
Mathieu Moran e83e5eaa7c docs: tighten features list in readme 2026-08-11 03:00:35 -04:00
Mathieu Moran 6355869a8d docs: fix bug count in readme project status 2026-08-11 02:58:01 -04:00
Mathieu Moran f7d305a036 docs: update Phase 26, simplify readme project status, de-emoji 2026-08-11 02:57:01 -04:00
Mathieu Moran 1487fd3478 docs: bold feature names, clean up readme 2026-08-11 02:55:27 -04:00
Mathieu Moran e733ab1ac1 docs: update Phase 26 progress, de-emoji readme, refresh status 2026-08-11 02:50:57 -04:00
Mathieu Moran 936064e963 docs: move BUG-09/10 from Open to Resolved 2026-08-11 02:47:26 -04:00
Mathieu Moran 7beb882136 docs: restructure BUGS.md, close BUG-09/10 (already deployed) 2026-08-11 02:45:40 -04:00
Mathieu Moran 5a3be5347a docs: close BUG-09/10, update resolved section 2026-08-11 02:41:12 -04:00
Mathieu Moran 7e913558f6 fix(phase26): geocode pre-caching (BUG-09) + gate trips on OBD presence (BUG-10) 2026-08-11 02:38:00 -04:00
Mathieu Moran a709517973 docs: close BUG-04 server trip merge (verified in prod) 2026-08-11 02:31:13 -04:00
Mathieu Moran 96fb8971eb fix(phase26): server trip detection mirrors Pi motion-aware logic (BUG-04) 2026-08-11 02:27:17 -04:00
Mathieu Moran 447d73bbe5 fix(phase26): close BUG-08 Pi trip deletion (verified in prod) 2026-08-11 02:12:40 -04:00
Mathieu Moran c5c478bef6 fix(phase26): add Pi trip deletion (BUG-08) 2026-08-11 02:07:59 -04:00
Mathieu Moran 786d5b8f3e docs: close BUG-03/05, add Phase 27 features + renumber Android to Phase 28 2026-08-11 02:04:55 -04:00
Mathieu Moran aa1f247d80 docs(bugs): record Phase 26 deploy/verify status for BUG-03 and BUG-05
Amend the Phase 26 progress note: BUG-03 was deployed to the Pi (pulled to
4f975ad, service active, /api/health ok) and real in-car behavior verification
is still pending; BUG-05 is code-ready but the unraid/server side is not yet
deployed (needs docker compose build api && docker compose up -d api).
2026-08-11 01:23:39 -04:00
Mathieu Moran 4f975ad079 docs(bugs): mark BUG-03 and BUG-05 FIXED (e2f2314) + update PLAN Phase 26
BUGS.md: BUG-03 and BUG-05 status -> FIXED with commit ref and fix summary.
PLAN.md: Phase 26 items 3 and 5 marked FIXED; add progress note.
2026-08-11 00:48:05 -04:00
Mathieu Moran e2f2314318 fix(phase26): persist DTC/MIL state + server speed_source (BUG-03, BUG-05)
BUG-03: DTC/MIL codes were never persisted; lost on OBD disconnect or reboot.
- Add new dtc table schema (code, description, MIL, first/last seen, IS_SET)
  and a migration that rebuilds the original unused NAME/STATUS/DTC_ID table.
- Persist MIL + codes to SQLite on each successful OBD poll (_persist_dtc_state).
- /api/dtc falls back to the last-persisted snapshot when OBD is offline/stale.
- Fix get_overview_stats to count the real dtc table (was querying non-existent
  dtc_codes table).
- Add cleared/since tracking via IS_SET + FIRST_SEEN_AT/LAST_SEEN_AT.

BUG-05: server trip replay hardcoded speed_source:'gps'; mirror Pi's
'obd if speed>0 else gps' logic in server get_trip_route.

Adds tests/test_dtc_persistence.py (7 tests).
2026-08-11 00:38:05 -04:00
Mathieu Moran cd0583ac84 docs: add FEAT-04 4G LTE modem (Huawei E3372h-153) to replace SIM868 2G hat 2026-08-11 00:03:15 -04:00
Mathieu Moran bd43003a7e docs: rename features.md to FEATURES.md (all caps) 2026-08-10 23:46:43 -04:00
Mathieu Moran ef3a9510ab docs: add features.md tracker with odometer-fallback idea 2026-08-10 23:45:52 -04:00
Mathieu Moran 3e626830d5 docs: sign off Phase 25 road test, add BUGS.md, renumber Android to Phase 27 2026-08-10 23:42:39 -04:00
Mathieu MoranandCopilot d216aac97e Refresh docs and reorder roadmap
Co-authored-by: Copilot <[email protected]>
2026-08-10 18:48:59 -04:00
Mathieu MoranandCopilot 457e3dcc08 Record dashboard card order swap
Co-authored-by: Copilot <[email protected]>
2026-08-10 18:43:46 -04:00
Mathieu MoranandCopilot b815e0aaaa Swap dashboard map and overview
Co-authored-by: Copilot <[email protected]>
2026-08-10 18:43:01 -04:00
Mathieu MoranandCopilot 6ee6215662 Record status action verification
Co-authored-by: Copilot <[email protected]>
2026-08-10 18:41:34 -04:00
Mathieu MoranandCopilot 8907c51016 Add status page quick actions
Co-authored-by: Copilot <[email protected]>
2026-08-10 18:40:22 -04:00
Mathieu MoranandCopilot ef38ec92b4 Record status page verification
Co-authored-by: Copilot <[email protected]>
2026-08-10 18:38:16 -04:00
Mathieu MoranandCopilot 5406935bf5 Add Pi status page
Co-authored-by: Copilot <[email protected]>
2026-08-10 18:37:26 -04:00
Mathieu MoranandCopilot a7302229d1 Tighten Pi dashboard layout
Co-authored-by: Copilot <[email protected]>
2026-08-10 18:25:30 -04:00
Mathieu MoranandCopilot f6de658a88 docs: record live Pi GPS status check
- note that GPS thread is alive on the Pi but has no current fix
- clarify that missing live updates are currently due to absent GNSS fix data

Co-authored-by: Copilot <[email protected]>
2026-08-10 18:18:50 -04:00
Mathieu MoranandCopilot be40bbc15f feat: add GPS status endpoint and dashboard indicator
- add /api/gps/status for thread/fix-age visibility
- surface GPS status in Pi health and live GPS cards
- add tests for app_gps status snapshots

Co-authored-by: Copilot <[email protected]>
2026-08-10 18:18:14 -04:00
Mathieu MoranandCopilot 675bffb4a4 feat: add server-side device deletion
- add portal API and UI action to delete non-default devices
- protect the configured portal default device from deletion
- document that trip/history pages still scope to the single DEVICE_NAME

Co-authored-by: Copilot <[email protected]>
2026-08-10 18:09:15 -04:00
Mathieu MoranandCopilot 690cf0a5d4 docs: record live Phase 25.5c deployment validation
- mark Phase 25.5c complete in PLAN
- record unraid migration/deploy and Pi API smoke tests
- note sync-ack metadata and temp provisioning helper validation

Co-authored-by: Copilot <[email protected]>
2026-08-10 18:05:39 -04:00
Mathieu MoranandCopilot ba682fbf3a feat: add multi-device provisioning and local remote-config UI
- add multi-device portal device management, key rotation, and sync request APIs
- add Pi settings UI for remote server URL, device name, and API key
- add local test-connection and sync-now actions
- make upload and config sync reuse dynamic shared credentials
- add Phase 25.5c migration and docs updates

Co-authored-by: Copilot <[email protected]>
2026-08-10 18:02:09 -04:00
Mathieu MoranandCopilot fbc41a5db5 docs: record live Phase 25.5b sync verification
- update plan with live portal route deployment status
- document fixed Pi sync blockers and successful round-trip test
- refresh passing test count after runtime sync coverage additions

Co-authored-by: Copilot <[email protected]>
2026-08-10 17:48:42 -04:00
Mathieu MoranandCopilot a114939914 fix: authenticate device config sync like upload client
- send X-Device-Name and X-Api-Key to /api/device-config
- require YARIS_DEVICE_NAME alongside shared upload creds
- fix server create_device output to match actual Pi env names
- document shared upload/config sync credential requirements

Co-authored-by: Copilot <[email protected]>
2026-08-10 17:42:40 -04:00
Mathieu MoranandCopilot 5a5058adca fix: reuse upload credentials for device config sync
- load server sync creds from db/upload_creds.env like uploads do
- fall back from YARIS_DEVICE_KEY to existing YARIS_API_KEY
- document shared credential flow for server-synced identity
- add test coverage for sync credential fallback

Co-authored-by: Copilot <[email protected]>
2026-08-10 17:37:52 -04:00
Mathieu MoranandCopilot 585da18225 feat: add remote device settings portal and Pi hot reload
- add /settings/device portal page and portal device-config GET endpoint
- add portal navigation and client-side device settings editor UI
- hot-reload Account/Car display config after local saves and server syncs
- document portal workflow and Phase 25.5b completion
- add runtime reload tests for account, car, and sync callback

Co-authored-by: Copilot <[email protected]>
2026-08-10 17:34:22 -04:00
Mathieu MoranandCopilot c4ccc3efb9 docs: record verified Pi and unraid deployment state
- note verified Pi IP after WiFi card change
- record successful 2026-08-10 Pi/unraid rollout
- document unraid checkout divergence and temp-clone deploy workaround

Co-authored-by: Copilot <[email protected]>
2026-08-10 17:26:17 -04:00
Mathieu MoranandCopilot cd004fbdde fix: wire Phase 25.5a deploy docs and sync connectivity
- use app_network status for device sync connectivity checks
- mount migrate_phase25_5a.sql in server docker compose
- document manual server upgrade migration steps
- record verified Pi and unraid SSH access details in PLAN

Co-authored-by: Copilot <[email protected]>
2026-08-10 17:22:02 -04:00