Summary
Release Notes (Help menu) only succeeds when the most recent Check for Updates confirmed the running version is the latest applicable release. Any other state shows Release Notes Failure, including the common case of being a version or two behind.
Repro
- Run a version older than the latest published release on the configured channel (or open a fresh install before the auto check completes).
- Help → Release Notes.
Expected
The release notes for the currently running version are shown.
Actual
Release Notes Failure modal: "Failed to get release notes for the current version".
Why
UpdateService.CheckForUpdates only assigns _currentRawChanges inside the loop branch that runs when the iterated release version equals versionProvider.CurrentVersion. If a newer release is encountered first, the loop sets latest = release; break; before reaching the assignment, so _currentRawChanges stays null. GetReleaseNotes() then fails the null/whitespace guard and shows the failure modal.
src/EventLogExpert.UI/Update/UpdateService.cs lines 65-95 (loop), 164-179 (GetReleaseNotes).
Suggested fix
Decouple "find newest applicable release" from "find raw changes for the running version". Always locate the release whose version matches versionProvider.CurrentVersion (independent of newer releases existing) and cache its RawChanges. Fall through to the failure path only when no release matches the running version (e.g. dev/sideload builds without a corresponding GitHub release).
Summary
Release Notes(Help menu) only succeeds when the most recentCheck for Updatesconfirmed the running version is the latest applicable release. Any other state showsRelease Notes Failure, including the common case of being a version or two behind.Repro
Expected
The release notes for the currently running version are shown.
Actual
Release Notes Failuremodal: "Failed to get release notes for the current version".Why
UpdateService.CheckForUpdatesonly assigns_currentRawChangesinside the loop branch that runs when the iterated release version equalsversionProvider.CurrentVersion. If a newer release is encountered first, the loop setslatest = release; break;before reaching the assignment, so_currentRawChangesstays null.GetReleaseNotes()then fails the null/whitespace guard and shows the failure modal.src/EventLogExpert.UI/Update/UpdateService.cslines 65-95 (loop), 164-179 (GetReleaseNotes).Suggested fix
Decouple "find newest applicable release" from "find raw changes for the running version". Always locate the release whose version matches
versionProvider.CurrentVersion(independent of newer releases existing) and cache itsRawChanges. Fall through to the failure path only when no release matches the running version (e.g. dev/sideload builds without a corresponding GitHub release).