You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.