fix(desktop): surface failed update installs

"Restart to Update" answered the renderer with null before the install was
attempted, so a rejected install only reached main.log and the button looked
dead. The apply-update path now keeps the IPC call open until the app quits or
autoUpdater reports the failure, rolls the quit/install flags back when the app
stays up, and the update dialog shows the real reason with a translated hint for
a rejected code signature.

Also settle the download promise on downloadUpdate() itself: an already cached
payload emits no 'update-downloaded', which left that promise pending with its
listeners attached on every retry.
This commit is contained in:
Iuliia Ivashko
2026-08-28 14:47:09 +03:00
parent 1760347dc7
commit 52d79cb368
19 changed files with 221 additions and 16 deletions
+4
View File
@@ -2940,6 +2940,10 @@ export const dict = {
'updateDialog.status.updating': 'Güncelleniyor...',
'updateDialog.error.updateFailed': 'Güncelleme başarısız oldu',
'updateDialog.error.takingLonger': 'Güncelleme beklenenden uzun sürüyor. Biraz bekleyip sayfayı yenileyin ya da şunu çalıştırın: openchamber update',
'updateDialog.error.signatureRejected': 'İndirilen güncelleme reddedildi: kod imzası bu kurulumla eşleşmiyor. Bu genellikle çalışan kopyanın resmi imzalı bir sürümden kurulmadığı anlamına gelir. OpenChamber’ı resmi bir sürümden kurun ve yeniden güncelleyin.',
'updateDialog.error.updaterDisabled': 'Başarısız bir kurulumdan sonra güncelleyici durdu. OpenChamber’dan çıkın, yeniden açın ve güncellemeyi tekrar deneyin.',
'updateDialog.error.restartFailed': 'Güncellemeyi kurmak için yeniden başlatılamadı.',
'updateDialog.error.restartUnavailable': 'Güncellemeyi kurmak için OpenChamber masaüstü uygulaması gerekir.',
'mobileUpdate.toast.available.title': 'OpenChamber güncellemesi var',
'mobileUpdate.toast.available.description': '{version} sürümü Android için hazır.',
'mobileUpdate.toast.actions.download': 'İndir',