From 163af456b42bfbbce087c3b2b13485b8a95d0063 Mon Sep 17 00:00:00 2001 From: Vantz Stockwell Date: Tue, 17 Mar 2026 11:38:08 -0400 Subject: [PATCH] fix: SSH password prompt on auth failure, version from Go backend, visible errors - ConnectSSH returns NO_CREDENTIALS error when no credential is stored - Frontend catches auth failures and prompts for username/password - ConnectSSHWithPassword method for ad-hoc password auth - Version loaded from Go backend (build-time -ldflags) in settings + unlock screen - Connection errors shown as alert() instead of silent console.error - Added UpdateService.CurrentVersion() and WraithApp.GetVersion() Co-Authored-By: Claude Opus 4.6 (1M context) --- .../src/components/common/SettingsModal.vue | 6 +- frontend/src/layouts/UnlockLayout.vue | 11 +++- frontend/src/stores/session.store.ts | 50 ++++++++++++---- internal/app/app.go | 57 ++++++++++++++++--- internal/updater/service.go | 5 ++ 5 files changed, 108 insertions(+), 21 deletions(-) diff --git a/frontend/src/components/common/SettingsModal.vue b/frontend/src/components/common/SettingsModal.vue index 7a44ebe..b7156d5 100644 --- a/frontend/src/components/common/SettingsModal.vue +++ b/frontend/src/components/common/SettingsModal.vue @@ -335,6 +335,9 @@ onMounted(async () => { if (theme) settings.value.terminalTheme = theme; if (fontSize) settings.value.fontSize = Number(fontSize); if (scrollback) settings.value.scrollbackBuffer = Number(scrollback); + // Load version from Go backend + const ver = await Call.ByName(`${APP}.GetVersion`) as string; + if (ver) currentVersion.value = ver; } catch (err) { console.error("Failed to load settings:", err); } @@ -360,7 +363,8 @@ watch(() => settings.value.scrollbackBuffer, (val) => { // --- Update check state --- type UpdateCheckState = "idle" | "checking" | "found" | "up-to-date" | "error"; const updateCheckState = ref("idle"); -const currentVersion = ref("0.1.0-dev"); +const APP = "github.com/vstockwell/wraith/internal/app.WraithApp"; +const currentVersion = ref("loading..."); const latestVersion = ref(""); function open(): void { diff --git a/frontend/src/layouts/UnlockLayout.vue b/frontend/src/layouts/UnlockLayout.vue index 8931322..938fbd6 100644 --- a/frontend/src/layouts/UnlockLayout.vue +++ b/frontend/src/layouts/UnlockLayout.vue @@ -68,7 +68,7 @@

- v1.0.0-alpha + v{{ appVersion }}

@@ -76,17 +76,24 @@