Skip to content

v1.0.7

Choose a tag to compare

@dawiisss dawiisss released this 10 Jun 17:46
· 9 commits to main since this release
0359542

v1.0.7

Features

  • Server Watchlist: Added a new "Watchlist" tab and background tracker. Players can now watch servers and receive native desktop notifications when player counts cross user-defined thresholds (e.g., notifying you when a full server has an open slot).
  • Right-click context menu integration for easily adding servers to the Watchlist.
  • Favorites Refactoring: Unified favorites data model. Consolidated favorites, favoriteNames, and favoritePorts into a single watchlist-style unified object array {ip, port, queryPort, name}. Conserved query ports across sessions, added auto-migration on load, and improved UI sync behavior.
  • UI & Accessibility: Added aria-label and title properties to dynamically generated mod checkboxes in Mod Manager to improve screen reader support and hover tooltips.

Performance Optimizations

  • Folder Size Calculation: Optimized getFolderSize in src/modManager.js to process stats concurrently using Promise.all, providing a ~4.5x speedup on large workshop directories.
  • Async I/O in Server Cache: Converted saveServerCache to use asynchronous file writing (fs.promises.writeFile) to prevent blocking the Node.js event loop during large sweeps.
  • Async Mod Metadata: Converted mod metadata cache saving (saveModsMetadataCache) to asynchronous file writing.
  • Async Query Cache: Prevented event loop blocking in serverQuery.js with async cache read/write operations and implemented a serialization queue to prevent data corruption.

Bug Fixes

  • Fixed queryPort retrieval for the update script.

Testing Improvements

  • Replaced flaky setTimeout tests with exact cacheWriteQueue awaiting in Jest.
  • Added test coverage for saveSettings error handling.
  • Improved isSystemInstall unit tests using the AAA pattern and resolved mock reference memory leaks.
  • Added edge case tests for the countryToFlag utility.