1.7.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
- Server Trust Score System: Implemented a new heuristic-based trust scoring engine (
trustScore.js) that analyzes DayZ servers to calculate a security rating. Verified communities, active moderation tools, high population counts, and password protection all contribute to the final tier calculation. - Strict IP Verification: Built a background fetching system that downloads, parses, and caches (
24hTTL) an open-source JSON list (verified_ips.json) of known, verified DayZ community server IPs and ports from GitHub. Servers matching this strict criteria receive an immense Trust Score boost and custom tooltip recognition, preventing malicious servers from spoofing popular names. - Trust Score UI Integration: Added a new Security/Trust column to both the Server Browser and Favorites tables. Servers display dynamically colored shields (Green for High Trust, Yellow for Modded/Moderated, Gray for Unverified) based on their evaluated score.
- Settings Toggle: Added an "Enable Trust Score Indicators" toggle in the Appearance & Audio settings. Disabling this toggle instantly removes the security columns globally and suppresses the background network polling for the verified IPs list to save bandwidth.
- Path Guard Security Tests: Added a comprehensive 16-test unit test suite for
pathGuard.js, covering allowed path validation, path traversal attack rejection, non-string input handling, dynamic mod directory inclusion from settings, and graceful fallback when settings fail to load.
Changed
-
Watchlist Performance: Optimized server lookups in background polling and UI rendering from
$O(N)$ nested.find()iterations to$O(1)$ Map lookups, ensuring stable UI performance regardless of the master server list size. -
Toast Icon Identifier Cleanup: Replaced raw
<app-icon>HTML strings and SVG constants passed toshowToast()with direct icon name identifiers ("trash","cube","info","eye") acrosswatchlist.js,serverRow.js, andcontextMenu.js. TheshowToast()function already auto-wraps icon names natively. -
UI Casing Compliance: Converted hardcoded uppercase filter labels (
PERSPECTIVE:,CATEGORY:,MAP:,COUNTRY:,SHORTLISTS:,CONNECTION:) inindex.htmlto sentence case. The CSS class.filter-labelalready appliestext-transform: uppercasefor visual rendering. Also changed uppercase UI copy ("MISMATCH","UPDATE ALL") inlogParser.jssuggested fix text to title case ("Mismatch","Update All").
Fixed
- Server UI Data Streaming: Fixed a race condition where the backend process streamed the initial server batch to the UI before background async checks (Monetization & Verified IPs) finished processing. This caused hit-or-miss tag rendering on the first launch. The pipeline now waits until the servers are fully enriched before streaming to the frontend.
- DOM Recycler Stale Data: Fixed an issue in the server list DOM recycler where
tdSecuritycells (Trust Score shields) andtdMonetizationwere completely ignored during row recycling. The renderer now dynamically evaluates state changes on the fly and updates shields dynamically without needing an app restart. - Favorites Ping Worker Abort: Added a generation-based cancellation mechanism to the favorites ping worker pool. Rapidly clicking the refresh button now aborts any stale worker loops from a previous run, preventing background query accumulation and potential memory growth.
- Bohemia Monetization Fetching: Fixed an issue where the Bohemia monetization scraper broke due to layout changes on the official website. The app now fetches an open-source JSON list (
monetized_ips.json) directly from the DzLinux GitHub repository, falling back gracefully to the legacy archived Bohemia page (old.bohemia.net) if the CDN is unreachable. - Cache Tag Persistence: Fixed a bug in the disk serializer (
server_cache.json) where it failed to save theverifiedCommunityattribute. This caused Verified Server shields to disappear on app re-launches occurring inside the 5-minute cache window.
Security
- Path Guard Prefix Boundary Vulnerability: Fixed a directory traversal vulnerability where the IPC path guard's
startsWith()check lacked a path-separator boundary check. This previously allowed paths sharing a string prefix (like/optional-evil/payloadbypassing an/optcheck) to be incorrectly allowed. The check now strictly enforces boundary separation or exact matching.