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