From 4a9a4cec1739007936d434a6a51180158e25078b Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 24 Jun 2026 02:17:08 +0800
Subject: [PATCH] Fix missing model language switch flow

---
 privatevoice.src/internal/model/resolver.go |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/privatevoice.src/internal/model/resolver.go b/privatevoice.src/internal/model/resolver.go
index b5455fd..d9942ce 100644
--- a/privatevoice.src/internal/model/resolver.go
+++ b/privatevoice.src/internal/model/resolver.go
@@ -19,6 +19,20 @@
 	return ResolveModelInRoot(modelID, paths.ModelsRoot())
 }
 
+func HasAnyUsableModel() bool {
+	return HasAnyUsableModelInRoot(paths.ModelsRoot())
+}
+
+func HasAnyUsableModelInRoot(modelsRoot string) bool {
+	for _, profile := range ListModelProfiles() {
+		resolved, err := ResolveModelInRoot(profile.ID, modelsRoot)
+		if err == nil && resolved.IsUsable() {
+			return true
+		}
+	}
+	return false
+}
+
 func ResolveModelInRoot(modelID, modelsRoot string) (ResolvedModel, error) {
 	profile, err := GetModelProfile(modelID)
 	if err != nil {

--
Gitblit v1.9.3