From 8d2f7e9907af342617f9da69aa398202139d3ddd Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Wed, 15 Apr 2026 10:27:30 +0200 Subject: [PATCH] fix(installer): null-defensive WelcomePage heading + guard unreachable modes --- .../Pages/WelcomePage/WelcomePageViewModel.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ClaudeDo.Installer/Pages/WelcomePage/WelcomePageViewModel.cs b/src/ClaudeDo.Installer/Pages/WelcomePage/WelcomePageViewModel.cs index 456be22..0f2c791 100644 --- a/src/ClaudeDo.Installer/Pages/WelcomePage/WelcomePageViewModel.cs +++ b/src/ClaudeDo.Installer/Pages/WelcomePage/WelcomePageViewModel.cs @@ -45,10 +45,15 @@ public partial class WelcomePageViewModel : ObservableObject, IInstallerPage break; case InstallerMode.Update: - Heading = $"Update ClaudeDo {_context.InstalledVersion} -> {_context.LatestVersion}"; + Heading = $"Update ClaudeDo {_context.InstalledVersion ?? "?"} -> {_context.LatestVersion ?? "?"}"; Subheading = "Your tasks, config, and database will be preserved. Click Next to continue."; - InstallDirEditable = false; + InstallDirEditable = false; // stay where we were installed break; + + default: + // Config and any future modes should never reach the wizard; guard loudly if they do. + throw new InvalidOperationException( + $"WelcomePage is not valid for installer mode {_context.Mode}"); } return Task.CompletedTask;