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>
68 lines
1.9 KiB
Swift
68 lines
1.9 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import Clawdbot
|
|
|
|
@Suite struct WebChatMainSessionKeyTests {
|
|
@Test func configGetSnapshotMainKeyFallsBackToMainWhenMissing() throws {
|
|
let json = """
|
|
{
|
|
"path": "/Users/pete/.clawdbot/clawdbot.json",
|
|
"exists": true,
|
|
"raw": null,
|
|
"parsed": {},
|
|
"valid": true,
|
|
"config": {},
|
|
"issues": []
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "main")
|
|
}
|
|
|
|
@Test func configGetSnapshotMainKeyTrimsAndUsesValue() throws {
|
|
let json = """
|
|
{
|
|
"path": "/Users/pete/.clawdbot/clawdbot.json",
|
|
"exists": true,
|
|
"raw": null,
|
|
"parsed": {},
|
|
"valid": true,
|
|
"config": { "session": { "mainKey": " primary " } },
|
|
"issues": []
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "main")
|
|
}
|
|
|
|
@Test func configGetSnapshotMainKeyFallsBackWhenEmptyOrWhitespace() throws {
|
|
let json = """
|
|
{
|
|
"config": { "session": { "mainKey": " " } }
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "main")
|
|
}
|
|
|
|
@Test func configGetSnapshotMainKeyFallsBackWhenConfigNull() throws {
|
|
let json = """
|
|
{
|
|
"config": null
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "main")
|
|
}
|
|
|
|
@Test func configGetSnapshotUsesGlobalScope() throws {
|
|
let json = """
|
|
{
|
|
"config": { "session": { "scope": "global" } }
|
|
}
|
|
"""
|
|
let key = try GatewayConnection.mainSessionKey(fromConfigGetData: Data(json.utf8))
|
|
#expect(key == "global")
|
|
}
|
|
}
|