Skip to content

v1.0.0-rc2.14

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Jun 20:36
199fa42

Changes:

  • Introduced controller architecture: split MainWindow responsibilities into six focused controller classes (NotificationManager, GreenLumaLauncher, GameListController, ProfileController, SearchController, AppListController) and one new model (AppListProgressReport)
  • Injected an inline search box and type-filter ComboBox row directly above the game list
  • Added an AppList import progress overlay containing an indeterminate ProgressBar and live status labels
  • Tweaked header layout dimensions
  • Hardened SteamService by switching SteamClient to the WebSocket protocol with a 10-second connection timeout to prevent indefinite hangs caused by stale task-completion sources after a reconnection
  • Implemented exponential backoff on reconnection attempts (5s × 2^attempt, capped at 60 seconds) along with a SemaphoreSlim(2,2) API throttle for batch app and package info lookups
  • Implemented a hybrid app-list merge feature that streams a local legacy snapshot (Data/steam_applist_legacy.json) using an async FileStream with a 64 KB read buffer to discover hidden and delisted Apps
  • Configured the hybrid merge engine to use the legacy data as a baseline, overwrite collisions with modern live API data, and sort final entries ascending by AppId (falling back to an unsorted merge on sort failures)
  • Added a 5-second per-request timeout to SearchStoreAsync
  • Added multi-resolution ICO file decoding in IconUrlConverter via IconBitmapDecoder to pick the largest available frame and prevent FileFormatException crashes
  • Added a no-op DecodeFailed handler on BitmapImage to suppress async HTTP source decode exceptions from surfacing on the UI thread
  • Pre-warmed the SteamService connection on a background thread immediately after configuration loading to establish the WebSocket handshake before the user's first search
  • Optimization pass: replaced results.Any(...) with results.Exists(...) on active List structures to completely eliminate unnecessary LINQ allocations
  • Increased AppListLimit to 148
  • Renamed Software to Other

New Contributors:

Full Changelog: v1.0.0-rc2.13...v1.0.0-rc2.14

ToDo:

  • Remove entries from Data/steam_applist_legacy.json that are present in the modern API endpoint
  • Fix Data/steam_applist_legacy.json not being included in the build (tehee, sry about that)
  • Add the option to turn off the GreenLuma version notice
  • Split the Lots of improvements commit into seperate commits.