From 7019583b2db7a2023aea49d7817773cc6794caa8 Mon Sep 17 00:00:00 2001 From: HAMZA ABUABADA Date: Mon, 4 May 2026 15:39:11 +0300 Subject: [PATCH 1/2] fix: prevent white screen when log_creds.txt is missing fields When log_creds.txt was empty or shorter than 4 non-empty lines, the destructure left apiKey/apiSecret/errorLogUrl/telemetryUrl as undefined. The original code then wrapped them in encodeURI(...), which turned telemetryUrl into the literal string "undefined". Because "undefined" is truthy, the hasCreds guard in TelemetryManager did not skip telemetry, and at first render navigator.sendBeacon("undefined", ...) was called. Chromium throws synchronously since the URL is not HTTP/S; the unhandled rejection during boot aborted Vue mount and the window stayed blank. Return the empty Creds object when any required field is missing so the downstream hasCreds checks correctly skip both telemetry and error-log reporting. Co-Authored-By: Claude Opus 4.7 (1M context) --- main/contactMothership.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/main/contactMothership.ts b/main/contactMothership.ts index 2f4159118..b05f0a9ea 100644 --- a/main/contactMothership.ts +++ b/main/contactMothership.ts @@ -39,6 +39,10 @@ export function getUrlAndTokenString(): Creds { return empty; } + if (!apiKey || !apiSecret || !errorLogUrl || !telemetryUrl) { + return empty; + } + return { errorLogUrl: encodeURI(errorLogUrl), telemetryUrl: encodeURI(telemetryUrl), From ba3b22b646ec30e17f7d7907eeeb2dae18e4550f Mon Sep 17 00:00:00 2001 From: HAMZA ABUABADA Date: Tue, 5 May 2026 17:20:19 +0300 Subject: [PATCH 2/2] feat: update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b295d302..4f3402d01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rukn-books", - "version": "0.47.0", + "version": "0.48.2", "description": "Simple book-keeping app for everyone", "author": { "name": "Rukn Software",