Notify users of available update
Proposal: Add a widget to the dashboard landing page that displays the running version of Juice and warns users when updates are available ### Acceptance Criteria #### Core Functionality - [ ] Widget displays the **current running version** of Juice - [ ] Widget checks the package registry and determines the **latest stable version** - [ ] Pre-release versions (alpha, beta, rc) are ignored in version comparison - [ ] If a newer version is available, the widget displays a **clear update warning** --- #### Update Checking - [ ] Version check is performed via registry API call - [ ] Polling occurs **at most once every 24 hours** - [ ] Last successful check timestamp is stored and displayed in the widget - [ ] Widget does not trigger redundant checks within the polling interval --- #### UI / UX - [ ] Widget is visible on the **dashboard landing page** - [ ] Displays: - [ ] Current version - [ ] Latest available version (if different) - [ ] Last checked timestamp - [ ] When update is available: - [ ] Shows a clear visual indicator (e.g., warning badge/message) - [ ] Includes a link to **update instructions in documentation** --- #### Reusability - [ ] Widget can be reused for other Python packages - [ ] Package name is configurable via initialization - [ ] Registry endpoint/link is configurable via initialization - [ ] Version comparison logic works generically (not Juice-specific) --- #### Error Handling - [ ] Gracefully handles network/API failures (no UI crash) - [ ] Displays fallback state (e.g., “Last check failed” or cached result) - [ ] Logs errors for debugging without affecting user experience --- #### Performance - [ ] Does not block dashboard rendering - [ ] Uses cached result when within polling interval --- #### Definition of Done (optional add-on) - [ ] Unit tests for version parsing and comparison - [ ] Integration test with mock registry API - [ ] MR description includes usage example for reuse
issue