1.8.0
Quick Install / Update
Run this command in your terminal to automatically detect your system and install / update the latest version (.deb, .rpm, or AppImage):
curl -sSL https://raw.githubusercontent.com/dawiisss/DzLinux/main/install.sh | bashAdded
- Synchronous Settings Loader: Added and exported a synchronous
loadSettings()helper insettings.jsspecifically for early startup flag initialization prior toapp.whenReady(). - Async Steam Path Unit Tests: Added dedicated unit test coverage for
getSteamInstallPathAsync()andfindDayzWorkshopFolderAsync()insteamPaths.test.js. - Workshop URL Opener Unit Tests: Added unit test coverage for
openWorkshopPage()verifying URL parameter sanitization and Electron shell opening ingame.test.js. - Launch Port and Settings Unit Tests: Added unit tests verifying defensive port defaulting in
game.test.jsand synchronousloadSettings()insettings.test.js.
Changed
- Proton Launch Process Spawn: Replaced
child_process.execFilewithspawnusingstdio: "ignore"inlaunchProton.jsto avoidmaxBuffermemory limits and prevent unexpected process termination during long DayZ gameplay sessions. - Dependency Cache Memory Bounds: Capped the Steam Workshop dependency resolver cache at 1,000 entries with bulk eviction to 90% capacity in
steamDependencyResolver.jsto prevent unbounded memory growth and reduce churn at the boundary. - Direct Toast Icon Identifiers: Standardized
showToast()calls acrossserverRow.jsandmodManager.jsto pass clean icon name strings ("star","download") rather than raw SVG constants or HTML elements. - UI Copy Casing Standardization: Converted hardcoded uppercase button and label text (
Refresh,Servers:,Players:,Filtered:) inindex.html, reset dialog text insettings.js(cannot), and dependency error tags inmodManager.js([Error: ...]). - Early Wayland Ozone Bootstrap: Moved Chromium command-line switch configuration (
UseOzonePlatform,ozone-platform=wayland) inmain.jsto execute prior toapp.whenReady(), ensuring Chromium activates native Wayland Ozone mode during initial process bootstrap. - External URL Opener Standardization: Replaced
child_process.execFile("xdg-open")inopenWorkshopPage()with Electron'sshell.openExternal(url)for robust sandbox/Flatpak compatibility and error propagation. - Table Colspan Consistency: Aligned table skeleton loading placeholders and empty-state rows across
index.html,serverBrowserRender.js, andfavorites.jstocolspan="9"to maintain visual alignment with the 9-column Security/Trust layout. - Preload API Cleanliness: Removed orphaned
onCompleteIPC channel and listener references frompreload.js. - Markdown Heading Anchor Hygiene: Replaced literal ampersands (
&) withandin markdown headings across all repository documentation. - Sync Filesystem Deprecation Notices: Annotated legacy synchronous filesystem methods
getSteamInstallPath()andfindDayzWorkshopFolder()insteamPaths.jswith JSDoc@deprecatedwarnings directing callers to async equivalents (Rule 13). - Build Utility Import Hygiene: Removed unused
_pathimport fromscripts/lib/utils.js. - Centralized
existsAsyncUtility: Consolidated the duplicateexistsAsynchelper (previously defined locally insteamPaths.js,game.js, andlaunchProton.js) into the sharedfileUtils.jsmodule. - Synchronous Settings Loader Documentation: Added JSDoc to
loadSettings()insettings.jsexplicitly documenting it as a startup-only constraint required for pre-ready Chromium command-line switch initialization. - Server Pipeline Step Numbering: Fixed step comment numbering gap (4→6) in
servers.jsfetchDayZServersto be sequential.
Fixed
- Test Environment Variable Teardown: Wrapped
process.env.TEST_VARtest manipulation inprepareEnv.test.jswith atry ... finallyblock to guarantee environment restoration on assertion failures (Rule 8). - Early Wayland Settings Load Error: Fixed a startup
TypeError: settingsManager.loadSettings is not a functioninmain.jswhich caused Wayland flags to fail silently. - Game Launch Missing Port Exception: Fixed a potential
TypeErrorinlaunchDayZandlaunchViaSteamwhenportargument is missing or non-string by safely defaulting to"2302". - History Favorite Port Mapping: Fixed a bug where adding a favorite directly from the Connection History view assigned the game port as the A2S query port instead of preserving
queryPort. - Gitignore Cleanliness: Removed obsolete
server-portal/entry from.gitignore. - UI Label Casing: Changed hardcoded uppercase
ACTIVE LINK:label in the Steam profile header to title caseActive Link:. - Mod Manager IPC Error Propagation: Added
.catch()handlers with toast error feedback to fire-and-forget IPC calls (openWorkshop,openFolder,subscribefallback) inmodManager.jsso failures are surfaced to the user instead of silently swallowed.