Skip to content

Harden software updates and prepare v1.0.1 release#30

Merged
HadenSmith merged 8 commits into
mainfrom
bug-fixes-and-enhancements
Jul 10, 2026
Merged

Harden software updates and prepare v1.0.1 release#30
HadenSmith merged 8 commits into
mainfrom
bug-fixes-and-enhancements

Conversation

@HadenSmith

@HadenSmith HadenSmith commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Allow the software updater payload to update itself by running installation from a disposable copy.
  • Protect settings, logs, backups, and updater staging data from update archives.
  • Add preflight validation, staged installation, transactional rollback, and optional required SHA256 verification.
  • Improve irregular time-series ordering validation, line annotation defaults, and control gallery documentation.
  • Finalize package, citation, CodeMeta, documentation, and NuGet metadata for v1.0.1.

Updater hardening

The installed updater previously ran in place, so an update containing new updater binaries could encounter Windows file locks. Archive extraction also wrote directly into the installation and could overwrite runtime-owned folders such as settings.

This change launches a complete updater payload from a GUID-named temp runner, preflights and stages archives before installation, permanently protects runtime-owned paths, and tracks overwritten and newly created files for rollback. Existing UpdaterBootstrapper.LaunchUpdater callers retain the original binary signature.

Archive roots that already exist in the installation are never treated as removable release wrappers. This preserves application folders and ensures reparse-point checks run against their intended destination paths.

Validation

  • Release restore and build succeed with version 1.0.1 (0 warnings, 0 errors).
  • Updater installer tests pass (73/73).
  • Updater service tests pass (274/274).
  • Full Release suite passes (6,962 passed, 6 skipped, 0 failed).
  • XML documentation validation passes.
  • All four NuGet packages pack and pass metadata/content validation.
  • Support package contains updater EXE/DLL version 1.0.1.0 and both JSON runtime files.
  • A cache-isolated consumer build copies the complete updater payload.
  • End-to-end self-update tests preserve settings and replace installed updater files.
  • Failure injection restores overwritten files and removes newly introduced files.

@HadenSmith HadenSmith marked this pull request as ready for review July 10, 2026 16:13
@HadenSmith HadenSmith merged commit 14c7db9 into main Jul 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant