v4.7.0
Play back a stored recording
LiteVehicle history gets a "Play recording" button that opens the clip already stored on the camera, the same viewer used for live video, with its own status while it starts and a "Playback finished" message when it ends.
Video evidence on events
LiteAn alert that requests its video now shows a "View evidence" button right on the event, opening a view-only player. While the clip is on its way it shows "Waiting for the camera"; if it never arrives, the reason is spelled out — it did not finish uploading, it took too long, it could not be requested, or it was deleted by the storage schedule.
Each camera shows its role
LiteWhen the role of a camera channel — Driver, Front, Cabin, Rear... — is set on the web, live view, multi-camera and recordings show it next to the channel number instead of a plain "Channel 1".
Crash icon for accident events
LiteAccident alerts get their own icon in the events list and the summary, instead of sharing the generic alert icon.
Device photo as a map pin
LiteA device with a photo set as its icon on the web now shows it on the map as a circular pin, the same look already used on the web map.
Camera failures say what went wrong
LiteLive view and multi-camera used to just spin when a stream failed to start. Now the message says why: the camera rejected the request, the platform failed, the format is not supported (H.265), it connected without image, or it stopped sending. Multi-camera shows the reason in each cell instead of trying to load a player that already failed.
Pause, resume and cancel a download
LiteThe video download queue can now be paused and resumed, and a download still waiting can be cancelled — which also cancels it on the device — or removed. It shows elapsed time, tells an expired file apart from a rejected one, and the final size once it completes. The Download button no longer stays stuck after a failure.
No camera buttons on devices without one
LiteIf a device is not flagged as having a camera, the app stops offering camera commands the server would reject anyway.

