tui: remove language from transcription edit flow, use Language menu
This commit is contained in:
@@ -114,7 +114,13 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
|||||||
}
|
}
|
||||||
cfg.Transcription.Provider = selectedProvider
|
cfg.Transcription.Provider = selectedProvider
|
||||||
|
|
||||||
modelOptions := getTranscriptionModelOptions(selectedProvider, cfg.Transcription.Language)
|
// use effective language for model compatibility display
|
||||||
|
effectiveLanguage := cfg.General.Language
|
||||||
|
if cfg.Transcription.Language != "" {
|
||||||
|
effectiveLanguage = cfg.Transcription.Language
|
||||||
|
}
|
||||||
|
|
||||||
|
modelOptions := getTranscriptionModelOptions(selectedProvider, effectiveLanguage)
|
||||||
selectedModel := cfg.Transcription.Model
|
selectedModel := cfg.Transcription.Model
|
||||||
if selectedModel == "" && len(modelOptions) > 0 {
|
if selectedModel == "" && len(modelOptions) > 0 {
|
||||||
selectedModel = modelOptions[0].Value
|
selectedModel = modelOptions[0].Value
|
||||||
@@ -125,17 +131,6 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
|||||||
modelDesc = fmt.Sprintf("Currently: %s", cfg.Transcription.Model)
|
modelDesc = fmt.Sprintf("Currently: %s", cfg.Transcription.Model)
|
||||||
}
|
}
|
||||||
|
|
||||||
selectedLanguage := cfg.Transcription.Language
|
|
||||||
|
|
||||||
// get current model for language compatibility warnings
|
|
||||||
var currentModel *provider.Model
|
|
||||||
registryName := mapConfigProviderToRegistry(selectedProvider)
|
|
||||||
if m, err := provider.GetModel(registryName, selectedModel); err == nil {
|
|
||||||
currentModel = m
|
|
||||||
}
|
|
||||||
|
|
||||||
languageOptions := getLanguageOptions(currentModel)
|
|
||||||
|
|
||||||
modelForm := huh.NewForm(
|
modelForm := huh.NewForm(
|
||||||
huh.NewGroup(
|
huh.NewGroup(
|
||||||
huh.NewSelect[string]().
|
huh.NewSelect[string]().
|
||||||
@@ -143,12 +138,6 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
|||||||
Description(modelDesc).
|
Description(modelDesc).
|
||||||
Options(modelOptions...).
|
Options(modelOptions...).
|
||||||
Value(&selectedModel),
|
Value(&selectedModel),
|
||||||
huh.NewSelect[string]().
|
|
||||||
Title("Language").
|
|
||||||
Description("Select language for transcription").
|
|
||||||
Options(languageOptions...).
|
|
||||||
Filtering(true).
|
|
||||||
Value(&selectedLanguage),
|
|
||||||
),
|
),
|
||||||
).WithTheme(getTheme())
|
).WithTheme(getTheme())
|
||||||
|
|
||||||
@@ -157,17 +146,16 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
// validate language-model compatibility before saving
|
// validate language-model compatibility before saving
|
||||||
registryName = mapConfigProviderToRegistry(selectedProvider)
|
registryName := mapConfigProviderToRegistry(selectedProvider)
|
||||||
if err := provider.ValidateModelLanguage(registryName, selectedModel, selectedLanguage); err != nil {
|
if err := provider.ValidateModelLanguage(registryName, selectedModel, effectiveLanguage); err != nil {
|
||||||
// show error dialog and let user fix
|
// show error dialog - user needs to change language in Language menu
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
fmt.Println(StyleError.Render("Language-Model Incompatibility"))
|
fmt.Println(StyleError.Render("Language-Model Incompatibility"))
|
||||||
fmt.Println(StyleMuted.Render(err.Error()))
|
fmt.Println(StyleMuted.Render(err.Error()))
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
fmt.Println(StyleMuted.Render("You can:"))
|
fmt.Println(StyleMuted.Render("You can:"))
|
||||||
fmt.Println(StyleMuted.Render(" - Change to a different model"))
|
fmt.Println(StyleMuted.Render(" - Choose a different model that supports your language"))
|
||||||
fmt.Println(StyleMuted.Render(" - Select 'Auto-detect' for language"))
|
fmt.Println(StyleMuted.Render(" - Change language to 'Auto-detect' in the Language menu"))
|
||||||
fmt.Println(StyleMuted.Render(" - Choose a supported language"))
|
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
|
|
||||||
var retry bool
|
var retry bool
|
||||||
@@ -175,8 +163,8 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
|||||||
huh.NewGroup(
|
huh.NewGroup(
|
||||||
huh.NewConfirm().
|
huh.NewConfirm().
|
||||||
Title("Try again?").
|
Title("Try again?").
|
||||||
Description("Return to fix the incompatibility").
|
Description("Choose a different model").
|
||||||
Affirmative("Yes, let me fix it").
|
Affirmative("Yes, let me pick another model").
|
||||||
Negative("Cancel").
|
Negative("Cancel").
|
||||||
Value(&retry),
|
Value(&retry),
|
||||||
),
|
),
|
||||||
@@ -187,7 +175,7 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
if retry {
|
if retry {
|
||||||
// recurse to let user fix the issue
|
// recurse to let user pick another model
|
||||||
return editTranscription(cfg, configuredProviders)
|
return editTranscription(cfg, configuredProviders)
|
||||||
}
|
}
|
||||||
return configuredProviders, nil
|
return configuredProviders, nil
|
||||||
@@ -245,7 +233,8 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
cfg.Transcription.Model = selectedModel
|
cfg.Transcription.Model = selectedModel
|
||||||
cfg.Transcription.Language = selectedLanguage
|
// language is now set in the Language menu (cfg.General.Language)
|
||||||
|
// cfg.Transcription.Language can still be used as override but not set here
|
||||||
|
|
||||||
return configuredProviders, nil
|
return configuredProviders, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -546,4 +546,14 @@ Started: Sun Feb 1 12:22:47 AM CET 2026
|
|||||||
- Checks if current transcription model supports selected language via `provider.GetModel()` + `model.SupportsLanguage()`
|
- Checks if current transcription model supports selected language via `provider.GetModel()` + `model.SupportsLanguage()`
|
||||||
- Shows warning dialog with 3 options: keep incompatible language, use auto-detect, or choose different language
|
- Shows warning dialog with 3 options: keep incompatible language, use auto-detect, or choose different language
|
||||||
- Recursive retry flow if user chooses "Choose a different language"
|
- Recursive retry flow if user chooses "Choose a different language"
|
||||||
|
- All tests passing, typecheck passes
|
||||||
|
|
||||||
|
### Task 6: Remove language from transcription edit flow
|
||||||
|
- Removed language select from `editTranscription()` model form in configure_transcription.go
|
||||||
|
- Model form now only shows model selection (no language picker)
|
||||||
|
- Added `effectiveLanguage` calculation: `cfg.Transcription.Language || cfg.General.Language`
|
||||||
|
- Language validation still happens using effective language before saving
|
||||||
|
- Updated error message to point users to Language menu: "Change language to 'Auto-detect' in the Language menu"
|
||||||
|
- Only `cfg.Transcription.Model` saved now, not language
|
||||||
|
- `cfg.Transcription.Language` can still be used as manual override but not set via TUI
|
||||||
- All tests passing, typecheck passes
|
- All tests passing, typecheck passes
|
||||||
+1
-1
@@ -97,7 +97,7 @@
|
|||||||
"Language validation still occurs using effective language",
|
"Language validation still occurs using effective language",
|
||||||
"Typecheck passes"
|
"Typecheck passes"
|
||||||
],
|
],
|
||||||
"passes": false
|
"passes": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Enable streaming models in TUI model picker",
|
"title": "Enable streaming models in TUI model picker",
|
||||||
|
|||||||
Reference in New Issue
Block a user