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:
parent
3d2f09636d
commit
50ce5abb6f
1 changed files with 89 additions and 0 deletions
|
|
@ -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:**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue