From 4e7591ebb1294f611e7b85082be55313dd53820f Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 03 Jun 2026 13:25:19 +0800
Subject: [PATCH] Implement Round 3 Moonshine English model

---
 privatevoice.src/frontend/src/App.svelte |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/privatevoice.src/frontend/src/App.svelte b/privatevoice.src/frontend/src/App.svelte
index e6dc993..d0bfc4e 100755
--- a/privatevoice.src/frontend/src/App.svelte
+++ b/privatevoice.src/frontend/src/App.svelte
@@ -84,11 +84,7 @@
       }
     })
 
-    Call.ByName('voicesnap/services.EngineService.ModelExists').then((exists: any) => {
-      if (!exists) {
-        engineStatus.set('need_model')
-      }
-    })
+    refreshCurrentModelAvailability()
 
     // Load actual hotkey name from backend (store default is generic "Ctrl")
     Call.ByName('voicesnap/services.HotkeyService.GetHotkeyName').then((name: any) => {
@@ -110,6 +106,22 @@
     setLocale(locale)
     languageReady = true
   }
+
+  async function refreshCurrentModelAvailability() {
+    try {
+      const current: any = await Call.ByName('voicesnap/services.EngineService.GetCurrentModelStatus')
+      if (!current?.installed) {
+        engineStatus.set('need_model')
+      }
+    } catch {
+      try {
+        const exists: any = await Call.ByName('voicesnap/services.EngineService.ModelExists')
+        if (!exists) {
+          engineStatus.set('need_model')
+        }
+      } catch {}
+    }
+  }
 </script>
 
 {#if isIndicatorRoute}

--
Gitblit v1.9.3