SMT Stability, Performance & Quality-of-Life Update - #212
Open
coresync2k wants to merge 4 commits into
Open
Conversation
Fixed an issue where selecting a ship type such as Super/Titan, Command Carrier, Black Ops, or JF/Rorqual could crash SMT. Ship jump ranges are now parsed using a culture-independent format. This prevents invalid values or parsing exceptions on systems using regional number formats. Also removed the duplicate default ship selection in the Jump Planner.
Fixed an issue where decloak and combat notifications were re-enabled after restarting SMT. Character settings are now saved immediately when the Character Settings window is closed, instead of only when SMT fully exits. This ensures notification preferences are preserved when SMT closes to the system tray or terminates unexpectedly.
Key improvements: Optimized capital route calculation and jump-range searches to reduce unnecessary processing. Fixed alternate midpoint calculations for routes containing multiple waypoints. Improved Jump Planner input handling and culture-independent number parsing. Fixed potential crashes caused by invalid or malformed configuration data. Replaced blocking asynchronous calls to improve responsiveness. Properly disposed file streams and XML readers to prevent locked files and resource leaks. Improved background-thread shutdown behavior. Made custom universe-layout files portable across different regional number formats. Fixed the default build configuration so the solution builds correctly with .NET 8. Added additional null checks and input validation throughout the UI.
### Fixed - Fixed Slazanger#210: Selecting Super/Titan, Command Carrier, Black Ops, Jump Freighter, or Rorqual in the Jump Planner no longer crashes SMT. - Fixed culture-dependent jump-range parsing and removed the duplicate default ship selection. - Fixed Slazanger#186: Decloak and combat notification settings now remain disabled after restarting SMT. - Character settings are saved immediately when the Character Settings window is closed. - Fixed failed ESI waypoint requests leaving route synchronization permanently stuck. - Fixed several shutdown races involving background updates, file watchers, timers, and the zKill feed. - Fixed concurrent access to character, alliance, intel, combat-log, and sovereignty data. - Fixed duplicate jump bridges being added during ESI discovery. - Fixed Jump Planner alternative midpoint insertion and waypoint reordering. - Fixed invalid or missing faction-warfare systems interrupting the complete update. - Fixed corrupted configuration or layout files preventing normal startup by loading the latest valid backup. - Fixed resources remaining active after closing overlays, authentication windows, or SMT. ### Added - Added atomic saving for character data, application settings, map layouts, anomaly data, jump bridges, and intel filters. - Added automatic `.bak` backups and recovery for serialized application data. - Added a rotating local diagnostic log at `%APPDATA%\SMT\Logs\SMT.log`. - Added application status and error information to the main status bar. - Added detailed Jump Planner summaries showing jumps, midpoints, total light-years, and failed route segments. - Added drag-and-drop reordering for capital-route waypoints. - Added duplicate prevention for waypoints and avoided systems. - Added a button to copy the complete capital route to the clipboard. - Added localized Jump Planner status messages for English and Chinese. ### Improved - Replaced blocking background workers, `.Result`, `Thread.Sleep`, and unmanaged update threads with cancellable asynchronous tasks. - Reworked the zKill feed to use a shared HTTP client, proper cancellation, rate-limit handling, expiration cleanup, and non-blocking alliance resolution. - Improved ESI, EVE-Scout, Dotlan, sovereignty, and server-status update handling. - Sovereignty campaigns are now updated in place on the UI thread instead of repeatedly rebuilding the complete collection. - Optimized faction-warfare classification by replacing repeated list scans with indexed lookups. - Improved character and alliance identity-cache thread safety. - The EVE log folder can now be changed without restarting SMT. - Switching log folders preserves current intel data, combat-log data, and configured filters. - Map colour changes now use debounced redraws. - Hidden map views no longer perform unnecessary periodic redraws. - Overlay timers and event handlers are correctly released when an overlay closes. - Improved cleanup of HTTP listeners, timers, audio devices, file watchers, HTTP clients, and the tray icon. - Improved error reporting across loading, saving, authentication, routing, and background-update operations. ### Technical - Confirmed that all active SMT solution projects target .NET 8. - The bundled legacy `External/ESI.NET` source remains multi-targeted, including .NET 7, but is not part of the active SMT solution build.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixed
Added
.bakbackups and recovery for serialized application data.%APPDATA%\SMT\Logs\SMT.log.Improved
.Result,Thread.Sleep, and unmanaged update threads with cancellable asynchronous tasks.Technical
External/ESI.NETsource remains multi-targeted, including .NET 7, but is not part of the active SMT solution build.