diff --git a/main.js b/main.js
index 70468cf..4271337 100644
--- a/main.js
+++ b/main.js
@@ -500,11 +500,15 @@ app.whenReady().then(() => {
// Auto-check for updates after 3 seconds
setTimeout(async () => {
try {
+ debugLog('update-check: starting');
const result = await checkForUpdate();
+ debugLog(`update-check: available=${result && result.available}, remote=${result && result.remoteVersion}`);
if (result && result.available && mainWindow && !mainWindow.isDestroyed()) {
mainWindow.webContents.send('app:update-available', result);
}
- } catch {}
+ } catch (err) {
+ debugLog(`update-check failed: ${err && err.message || err}`);
+ }
}, 3000);
});
diff --git a/renderer/app.js b/renderer/app.js
index e46b02c..580d0f9 100644
--- a/renderer/app.js
+++ b/renderer/app.js
@@ -1750,6 +1750,11 @@ function renderSettings() {
+
Updates
+
+
+
+
Log
@@ -1899,6 +1904,23 @@ function renderSettings() {
}
document.getElementById('chooseLogFilePathBtn')?.addEventListener('click', chooseLogFilePath);
+ document.getElementById('manualUpdateCheckBtn')?.addEventListener('click', async (e) => {
+ const btn = e.target;
+ btn.disabled = true;
+ btn.textContent = 'Prüfe...';
+ try {
+ const result = await window.api.checkForUpdate();
+ if (result && result.available) {
+ showUpdateBanner(result);
+ btn.textContent = 'Update gefunden!';
+ } else {
+ btn.textContent = 'Kein Update verfügbar';
+ }
+ } catch {
+ btn.textContent = 'Fehler beim Prüfen';
+ }
+ setTimeout(() => { btn.disabled = false; btn.textContent = 'Nach Updates suchen'; }, 3000);
+ });
container.querySelectorAll('.settings-autosave').forEach((input) => {
const eventName = input.type === 'checkbox' ? 'change' : 'input';
input.addEventListener(eventName, scheduleSettingsSave);