Skip to content
- App now receives updates based on the user's assigned channel (stable, beta, alpha, dev)
- JWT token sent with update check so HydroCore resolves the correct channel
- Channel displayed in Settings and Device Info screens (no longer hardcoded to "stable")
- Update dialog redesigned with modern card layout, channel badge, and release notes section

- Force-logout when server-side role change is detected (checked on every app resume)
- Admin and superadmin can access all screens without a registered device
- Admins go directly to home screen instead of device registration when no devices are available

- New "HydroCore" tab in Advanced screen (admin only)
- Live WebSocket status: connection state, device ID, message queue, retry delay
- REST API status: endpoint URL, test button with result indicator
- Cloud Sync status: pending queue count, manual sync trigger
- All URLs are selectable for easy copying

- Device selector and status icons (BLE, cloud, remote) are now pinned at the top and stay visible while scrolling

- Centralized version parsing via ParsedVersion class — single source of truth
- Handles format inconsistencies between server and client (leading zeros, channel suffixes)
- Server's channel field used as fallback when version string lacks suffix (backward compatible with older DB records)
- Update only proposed when server version is strictly newer (no more self-update loops)

- JWT read is now async and awaited before each check (was fire-and-forget, often null at boot)
- If JWT unavailable, check skipped without consuming debounce timer (retries immediately next time)
- Debounce reduced from 15 to 5 minutes
- Release notes from GitLab shown in update dialog under "Novita'" section

- Release notes automatically extracted from annotated tag message
- Fallback to commit log when tag has no message
- Build number (Android versionCode) derived from version for monotonic increase, not exposed in version string

- Fixed update loop proposing install of already-installed version
- Fixed channel always showing "stable" in device info and settings screens
- Fixed stale JWT causing update check to resolve wrong channel at boot
- Fixed Android rejecting APK install due to versionCode regression

- Added comprehensive architecture and flow documentation with UML diagrams