Repository navigation
SysManager 1.52.85
[1.52.85] - 2026-07-10
Fixed
- Importing a config profile that omitted its
Sectionslist crashed with an unhandledNullReferenceException.ConfigProfile.Sectionswas a non-nullable positional record parameter, but System.Text.Json does not enforce non-null on positional params — so any syntactically-valid profile JSON lacking a"Sections"property (an empty{}, a truncated export, or foreign/hand-edited JSON chosen in the Import dialog) deserializedSectionsto null.ProfileViewModel.Importthen calledprofile.Sections.Count, throwing an NRE that escaped the surrounding try/catch (which only caughtIOException/UnauthorizedAccessException/NotSupportedException) unhandled on the UI thread.Sectionsis now a defaultedinitproperty (= [], matching theCleanupResult.Errors/HealthScoreResult.Recommendationsidiom), andProfileService.Deserializealso normalizes a null list to empty (mirroringSettingsWatchdogService.LoadBaseline) so the import path can always enumerate it safely. - The PATH editor flagged every
PATHEXTentry as a "missing directory", rendering the whole list in red.PATHEXTis a;-separated list of file extensions (.COM;.EXE;.BAT;…), not directories, butEnvVariable.IsPathLikereturned true for it and that single flag gated the editor'sDirectory.Exists()annotation — so each extension row was checked as a path (Directory.Exists(".COM")is false) and marked missing. Added a distinctIsDirectoryList(every path-like variable exceptPATHEXT) and gated the missing-directory annotation on it.PATHEXTstill opens the reorderable list editor (IsPathLikeis unchanged); its entries are simply no longer checked for directory existence.
Verify the download
Get-FileHash .\SysManager-v1.52.85.exe -Algorithm SHA256Expected SHA256: 7968270A91FFD2AE46D327655EC12ACFD2045BD0BEA4FA007C8A59247E9BA711