diff --git a/app.go b/app.go
index 19a57fd..84a4ab0 100644
--- a/app.go
+++ b/app.go
@@ -4,8 +4,10 @@ package main
import (
"context"
+ "fmt"
"log"
"os"
+ "os/exec"
"strings"
"sync"
"time"
@@ -141,6 +143,31 @@ func (a *App) QuitApp() {
os.Exit(133)
}
+// RestartApp performs a full application restart, including the Go backend.
+// It schedules a new process via PowerShell with a short delay to ensure the
+// single-instance lock is released before the new instance starts, then exits.
+func (a *App) RestartApp() error {
+ exe, err := os.Executable()
+ if err != nil {
+ Log("RestartApp: failed to get executable path:", err)
+ return err
+ }
+
+ // Escape single quotes in the path for PowerShell string literal
+ safePath := strings.ReplaceAll(exe, "'", "''")
+ script := fmt.Sprintf(`Start-Sleep -Seconds 1; Start-Process '%s'`, safePath)
+
+ cmd := exec.Command("powershell", "-WindowStyle", "Hidden", "-Command", script)
+ if err := cmd.Start(); err != nil {
+ Log("RestartApp: failed to schedule restart:", err)
+ return err
+ }
+
+ Log("RestartApp: scheduled restart, quitting current instance...")
+ runtime.Quit(a.ctx)
+ return nil
+}
+
// =============================================================================
// Configuration Management
// =============================================================================
diff --git a/config.ini b/config.ini
index a9a8b84..5abdcae 100644
--- a/config.ini
+++ b/config.ini
@@ -1,11 +1,11 @@
[EMLy]
SDK_DECODER_SEMVER = 1.4.2
SDK_DECODER_RELEASE_CHANNEL = beta
-GUI_SEMVER = 1.6.0
+GUI_SEMVER = 1.6.1
GUI_RELEASE_CHANNEL = beta
LANGUAGE = it
-UPDATE_CHECK_ENABLED = false
-UPDATE_PATH =
+UPDATE_CHECK_ENABLED = true
+UPDATE_PATH = "\\dc-rm2\logo\update"
UPDATE_AUTO_CHECK = false
BUGREPORT_API_URL = "https://api.emly.ffois.it"
BUGREPORT_API_KEY = "emly_1BaQdBknsMGcY5DynSby71JnWOKXtJvnuUprkgWT0pujpLFxj5HaTXP9vtJAMk63"
\ No newline at end of file
diff --git a/frontend/messages/en.json b/frontend/messages/en.json
index 69f5daf..f339c52 100644
--- a/frontend/messages/en.json
+++ b/frontend/messages/en.json
@@ -41,9 +41,11 @@
"settings_danger_reset_label": "Reset App Data",
"settings_danger_reset_hint": "This will clear all your settings and return the app to its default state.",
"settings_danger_reset_button": "Reset data",
- "settings_danger_reload_label": "Reload App",
+ "settings_danger_reload_ui_label": "Reload UI",
+ "settings_danger_reload_app_label": "Reload App",
"settings_danger_reload_hint": "Reloads the application interface. Useful if the UI becomes unresponsive.",
- "settings_danger_reload_button": "Reload",
+ "settings_danger_reload_button_ui": "Reload UI",
+ "settings_danger_reload_button_app": "Reload app",
"settings_danger_reset_dialog_title": "Are you absolutely sure?",
"settings_danger_reset_dialog_description": "This action cannot be undone. This will permanently delete your current settings and return the app to its default state.",
"settings_danger_reset_dialog_cancel": "Cancel",
diff --git a/frontend/messages/it.json b/frontend/messages/it.json
index e0708fe..b05159a 100644
--- a/frontend/messages/it.json
+++ b/frontend/messages/it.json
@@ -41,9 +41,11 @@
"settings_danger_reset_label": "Reimposta Dati App",
"settings_danger_reset_hint": "Questo cancellerà tutte le tue impostazioni e riporterà l'app allo stato predefinito.",
"settings_danger_reset_button": "Reimposta dati",
- "settings_danger_reload_label": "Ricarica App",
+ "settings_danger_reload_ui_label": "Ricarica UI",
+ "settings_danger_reload__app_label": "Ricarica App",
"settings_danger_reload_hint": "Ricarica l'interfaccia dell'applicazione. Utile se l'UI non risponde.",
- "settings_danger_reload_button": "Ricarica",
+ "settings_danger_reload_button_ui": "Ricarica UI",
+ "settings_danger_reload_button_app": "Ricarica app",
"settings_danger_reset_dialog_title": "Sei assolutamente sicuro?",
"settings_danger_reset_dialog_description": "Questa azione non può essere annullata. Questo eliminerà permanentemente le tue impostazioni attuali e riporterà l'app allo stato predefinito.",
"settings_danger_reset_dialog_cancel": "Annulla",
diff --git a/frontend/src/routes/(app)/+layout.svelte b/frontend/src/routes/(app)/+layout.svelte
index 91b7545..b337322 100644
--- a/frontend/src/routes/(app)/+layout.svelte
+++ b/frontend/src/routes/(app)/+layout.svelte
@@ -298,8 +298,8 @@
href="/"
class={`${buttonVariants({ variant: "destructive" })} cursor-pointer hover:cursor-pointer`}
style="text-decoration: none; margin-left: auto; height: 24px; font-size: 12px; padding: 0 8px;"
- aria-label={m.settings_danger_reload_button()}
- title={m.settings_danger_reload_button() + " app"}
+ aria-label={m.settings_danger_reload_button_ui()}
+ title={m.settings_danger_reload_button_ui()}
>