From 97e49a5d982292bbfaa323789160896c75e60c91 Mon Sep 17 00:00:00 2001 From: nick Date: Fri, 19 Jun 2026 02:09:19 -0600 Subject: [PATCH] docs: update roadmap --- docs/roadmap.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/roadmap.md b/docs/roadmap.md index 22ced84..3680543 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -192,3 +192,24 @@ Next Dashboard Milestones: ## M9N GPS Module The dashboard enclosure will include an M9N GPS module connected to the ESP32-S3 dashboard over UART. It will provide GPS fix status, satellite count, position, speed, and UTC time. Future work will use GPS time/location for automatic timezone and DST handling. + +## Planned: WebSocket live dashboard updates + +Add a WebSocket push channel alongside the existing `/api/v1` REST API. The REST API remains the stable snapshot/debug/control contract, while WebSockets provide lower-latency live status updates for the dashboard. + +Planned behavior: + +- Cargo ESP continues to expose `/api/v1/status` and existing `/api/v1/...` endpoints. +- Cargo ESP adds a WebSocket endpoint, likely `/ws`. +- Dashboard ESP connects once to `/ws` and receives pushed status updates. +- Relay commands may continue using REST initially, with pushed status updates confirming state changes. +- Future high-rate data such as CAN/OBD, GPS, inclinometer, and temperature updates can use the WebSocket path. +- If WebSocket disconnects, dashboard should fall back to the existing REST polling behavior. + +Rationale: + +- Keeps the current API architecture intact and easy to debug. +- Avoids ESP-NOW channel-management complexity for now. +- Improves perceived responsiveness without a major communication rewrite. +- Supports future live gauges better than fixed-interval polling. +