- 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