docs: Add detailed UI components for Phase 4.1 auto-update system

- Add 4.1.2 section for update manager UI
- Specify all dialogs (checking, available, downloading, install, failed, no updates)
- Include status bar integration with update indicators
- Define menu structure for Help menu updates
- Add background behavior specifications
- List async/non-blocking implementation requirements
- Include UI testing acceptance criteria
This commit is contained in:
claudi 2026-01-29 08:04:01 +01:00
parent 3d2f09636d
commit 50ce5abb6f

View file

@ -801,6 +801,95 @@ AUTO_UPDATE_NOTIFY=true
---
#### 4.1.2 Update UI Components (`src/webdrop_bridge/ui/update_manager_ui.py`)
**Menu Integration:**
```
Help Menu
├─ Check for Updates... (manual trigger)
├─ ─────────────────────
└─ About WebDrop Bridge (show current version)
```
**Dialogs:**
1. **"Checking for Updates..." Dialog**
- Animated spinner/progress
- "Cancel" button
- Message: "Checking for updates..."
- Timeout: 10 seconds
2. **"Update Available" Dialog**
- Current version: X.X.X
- New version: Y.Y.Y
- Changelog/release notes (scrollable)
- Buttons: "Update Now", "Later", "Skip This Version"
- Checkbox: "Show next update reminder"
3. **"Downloading Update..." Dialog**
- Progress bar (download %)
- File size info: "Downloading 195 MB..."
- "Cancel Download" button
- Cancel option reverts to "Later"
4. **"Install & Restart?" Dialog**
- Message: "Update downloaded and ready to install"
- Buttons: "Install Now", "Install on Next Restart"
- Checkbox: "Save my work before installing"
- Shows warning if unsaved changes exist
5. **"No Updates Available" Dialog**
- Message: "You're running the latest version (X.X.X)"
- Button: "OK"
- Optional: "Check again" button
6. **"Update Failed" Dialog**
- Error message with reason
- Buttons: "Retry", "Download Manually", "OK"
- Manual download link to Forgejo releases
**Status Bar Integration:**
```
┌─────────────────────────────────────┐
│ Ready 🔄 Checking for updates... │ (during check)
│ Ready ✅ Update available (v1.1.0) │ (when found)
│ Ready ⬇️ Downloading update (45%) │ (during download)
└─────────────────────────────────────┘
```
**Background Behavior:**
- Startup: Check for updates automatically (no UI blocking)
- If newer version found: Show notification badge on Help menu
- Silent background download when user is idle
- Notification when download complete
- Prompt for restart when convenient
**Implementation:**
- Signal/slot architecture for async operations
- Non-blocking UI (all operations async)
- Graceful degradation if network unavailable
- Thread pool for download operations
- Cancel-safe download handling
**Deliverables:**
- [ ] `src/webdrop_bridge/ui/update_manager_ui.py` - UI dialogs
- [ ] Update menu item integration
- [ ] Status bar update indicator
- [ ] All dialogs with error handling
- [ ] Tests for UI interactions
**Acceptance Criteria:**
- Menu item works and triggers check
- All dialogs display correctly
- Progress shown during download
- Restart options work
- Network errors handled gracefully
- Cancel operations work safely
- Status bar updates in real-time
- No blocking operations on main thread
---
### 4.2 Enhanced Logging & Monitoring
**Deliverables:**