mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-09-12 21:57:19 -04:00
Chardonnay's Serilog-free crash record was private to its entry point, so Classic wrote nothing at all when startup failed before logging. Move it to LibationFileManager as PreLoggingCrashLog, where both UIs can call it and where the existing test project can cover it. It needs nothing from AppScaffolding: Configuration.LibationVersion already holds the version, and ReleaseIdentifier is not populated this early, so callers pass what they know. Guard every field, since an unguarded InteropFactory.InteropFunctionsType, whose static constructor logged through Serilog, was enough for the bare catch to swallow the whole record and leave no trace of the crash. Return the file written so the dialog names it: both UIs pointed at LibationCrash.log, which is not where the record goes when a Log*.log already exists. RecoverFromIncompleteUpgradeIfNeeded now reports a completed rollback, and both entry points show it and quit. Continuing meant running the assemblies already loaded against the older files just restored underneath them. Consuming the alert at startup also retires the two late call sites that could never fire. Co-authored-by: rmcrackan <rmcrackan@gmail.com>