Venice's API doesn't support certain OpenAI-compatible parameters that Clawdbot sends by default: - `store`: Venice returns HTTP 400 with no body when this is present - `developer` role: Not supported by Venice's API This adds VENICE_COMPAT settings (supportsStore: false, supportsDeveloperRole: false) to all Venice model definitions, both from the static catalog and dynamically discovered models. Fixes issues reported in PR #1666 where users experienced silent failures (HTTP 400, no body) when using Venice models. Co-authored-by: jonisjongithub <jonisjongithub@users.noreply.github.com> Co-authored-by: Clawdbot <bot@clawd.bot>
69 lines
2.1 KiB
Swift
69 lines
2.1 KiB
Swift
import Testing
|
|
@testable import Clawdbot
|
|
|
|
@Suite(.serialized)
|
|
@MainActor
|
|
struct ConfigStoreTests {
|
|
@Test func loadUsesRemoteInRemoteMode() async {
|
|
var localHit = false
|
|
var remoteHit = false
|
|
await ConfigStore._testSetOverrides(.init(
|
|
isRemoteMode: { true },
|
|
loadLocal: { localHit = true; return ["local": true] },
|
|
loadRemote: { remoteHit = true; return ["remote": true] }))
|
|
|
|
let result = await ConfigStore.load()
|
|
|
|
await ConfigStore._testClearOverrides()
|
|
#expect(remoteHit)
|
|
#expect(!localHit)
|
|
#expect(result["remote"] as? Bool == true)
|
|
}
|
|
|
|
@Test func loadUsesLocalInLocalMode() async {
|
|
var localHit = false
|
|
var remoteHit = false
|
|
await ConfigStore._testSetOverrides(.init(
|
|
isRemoteMode: { false },
|
|
loadLocal: { localHit = true; return ["local": true] },
|
|
loadRemote: { remoteHit = true; return ["remote": true] }))
|
|
|
|
let result = await ConfigStore.load()
|
|
|
|
await ConfigStore._testClearOverrides()
|
|
#expect(localHit)
|
|
#expect(!remoteHit)
|
|
#expect(result["local"] as? Bool == true)
|
|
}
|
|
|
|
@Test func saveRoutesToRemoteInRemoteMode() async throws {
|
|
var localHit = false
|
|
var remoteHit = false
|
|
await ConfigStore._testSetOverrides(.init(
|
|
isRemoteMode: { true },
|
|
saveLocal: { _ in localHit = true },
|
|
saveRemote: { _ in remoteHit = true }))
|
|
|
|
try await ConfigStore.save(["remote": true])
|
|
|
|
await ConfigStore._testClearOverrides()
|
|
#expect(remoteHit)
|
|
#expect(!localHit)
|
|
}
|
|
|
|
@Test func saveRoutesToLocalInLocalMode() async throws {
|
|
var localHit = false
|
|
var remoteHit = false
|
|
await ConfigStore._testSetOverrides(.init(
|
|
isRemoteMode: { false },
|
|
saveLocal: { _ in localHit = true },
|
|
saveRemote: { _ in remoteHit = true }))
|
|
|
|
try await ConfigStore.save(["local": true])
|
|
|
|
await ConfigStore._testClearOverrides()
|
|
#expect(localHit)
|
|
#expect(!remoteHit)
|
|
}
|
|
}
|