fix: normalize model picker refs (#683) (thanks @benithors)
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
- Agents: strip `<thought>`/`<antthinking>` tags from hidden reasoning output and cover tag variants in tests. (#688) — thanks @theglove44.
|
- 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.
|
- 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.
|
- 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`.
|
- Gateway: disable the OpenAI-compatible `/v1/chat/completions` endpoint by default; enable via `gateway.http.endpoints.chatCompletions.enabled=true`.
|
||||||
|
|||||||
@@ -832,7 +832,7 @@ struct ConfigSettings: View {
|
|||||||
if id.lowercased().hasPrefix("\(normalizedProvider)/") {
|
if id.lowercased().hasPrefix("\(normalizedProvider)/") {
|
||||||
return id
|
return id
|
||||||
}
|
}
|
||||||
return "\(provider)/\(id)"
|
return "\(normalizedProvider)/\(id)"
|
||||||
}
|
}
|
||||||
|
|
||||||
private func matchesConfigModel(_ choice: ModelChoice) -> Bool {
|
private func matchesConfigModel(_ choice: ModelChoice) -> Bool {
|
||||||
@@ -875,7 +875,14 @@ struct ConfigSettings: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func selectManualModel(_ value: String) {
|
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.autosaveConfig()
|
||||||
self.isModelPickerOpen = false
|
self.isModelPickerOpen = false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user