feat: implement "what's new" and update notifications#1901
feat: implement "what's new" and update notifications#1901
Conversation
Co-authored-by: rnwood <1327895+rnwood@users.noreply.github.com>
|
@copilot The build triggered by this PR has failed. Please use the Azure DevOps REST API to investigate and fix the issues. 🚨 IMPORTANT: Only proceed if this is the most recent commit on your branch. If a newer commit exists, ignore this notification. Build Details:
Instructions for @copilot:
The Azure DevOps REST API provides comprehensive build failure information without requiring browser access. |
Co-authored-by: rnwood <1327895+rnwood@users.noreply.github.com>
|
📊 Code Coverage Report
📁 Coverage by Namespace
Overall Coverage Details:
Enhanced coverage report with namespace breakdown - Azure DevOps Build #3.11.0-ci20251006103_pr1901 20251006.4 |


Overview
Implements comprehensive update notification and "what's new" functionality for smtp4dev, helping users stay informed about new releases and features.
Features
What's New Notifications
-rcversions only see other-rcreleases)Auto Update Notifications
Settings & Configuration
New settings in the General tab:
Both settings support:
appsettings.json--disablewhatsNewnotifications,--disableupdatenotificationsServerOptions__DisableWhatsNewNotifications,ServerOptions__DisableUpdateNotificationsPersistence & Tracking
UserVersionInfotable tracks last seen version, check dates, and dismissal state per userTechnical Implementation
Backend Components
UpdateNotificationService: Core service handling GitHub API integration, version comparison, and filtering logicUpdatesController: REST API endpoints for update checks and version trackingUserVersionInfoModel: Entity Framework model for database persistence20250915000000_AddUserVersionInfofor schema updatesFrontend Components
UpdateNotificationManager.ts: Manages periodic update checks, localStorage persistence, and callback coordinationWhatsNewDialog.vue: Vue 3 component displaying release notes with markdown rendering, timeline view, and GitHub linksAPI Endpoints
Console Output Example
On startup, users see:
Screenshots
Main Application
Settings Dialog with New Notification Options
Version Comparison Logic
The implementation includes sophisticated version comparison:
3.3.0-rc.1)vprefix automatically)Breaking Changes
None. All features are opt-in and backward compatible.
Configuration Examples
appsettings.json:
{ "ServerOptions": { "DisableWhatsNewNotifications": false, "DisableUpdateNotifications": false } }Command Line:
Environment Variables:
Related Issue
Closes #68cc30c9
Original prompt
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.