fix: normalize model picker refs (#683) (thanks @benithors)

This commit is contained in:
Peter Steinberger
2026-01-10 23:39:39 +01:00
parent 3853f632e5
commit d4a93bc25c
2 changed files with 10 additions and 2 deletions

View File

@@ -16,6 +16,7 @@
### Fixes
- Agents: strip `<thought>`/`<antthinking>` tags from hidden reasoning output and cover tag variants in tests. (#688) — thanks @theglove44.
- macOS: save model picker selections as normalized provider/model IDs and keep manual entries aligned. (#683) — thanks @benithors.
- Agents: recognize "usage limit" errors as rate limits for failover. (#687) — thanks @evalexpr.
- CLI: avoid success message when daemon restart is skipped. (#685) — thanks @carlulsoe.
- Gateway: disable the OpenAI-compatible `/v1/chat/completions` endpoint by default; enable via `gateway.http.endpoints.chatCompletions.enabled=true`.

View File

@@ -832,7 +832,7 @@ struct ConfigSettings: View {
if id.lowercased().hasPrefix("\(normalizedProvider)/") {
return id
}
return "\(provider)/\(id)"
return "\(normalizedProvider)/\(id)"
}
private func matchesConfigModel(_ choice: ModelChoice) -> Bool {
@@ -875,7 +875,14 @@ struct ConfigSettings: View {
}
private func selectManualModel(_ value: String) {
self.configModel = value.trimmingCharacters(in: .whitespacesAndNewlines)
let trimmed = value.trimmingCharacters(in: .whitespacesAndNewlines)
if let slash = trimmed.firstIndex(of: "/") {
let provider = trimmed[..<slash].trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
let model = trimmed[trimmed.index(after: slash)...].trimmingCharacters(in: .whitespacesAndNewlines)
self.configModel = provider.isEmpty ? String(model) : "\(provider)/\(model)"
} else {
self.configModel = trimmed
}
self.autosaveConfig()
self.isModelPickerOpen = false
}