openclaw/apps/macos/Sources/Clawdbot/ViewMetrics.swift
Jon Shapiro 92697edb7c fix(venice): add compat settings to prevent HTTP 400 errors
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>
2026-01-26 17:56:01 -08:00

30 lines
844 B
Swift

import SwiftUI
private struct ViewWidthPreferenceKey: PreferenceKey {
static let defaultValue: CGFloat = 0
static func reduce(value: inout CGFloat, nextValue: () -> CGFloat) {
value = max(value, nextValue())
}
}
extension View {
func onWidthChange(_ onChange: @escaping (CGFloat) -> Void) -> some View {
self.background(
GeometryReader { proxy in
Color.clear.preference(key: ViewWidthPreferenceKey.self, value: proxy.size.width)
})
.onPreferenceChange(ViewWidthPreferenceKey.self, perform: onChange)
}
}
#if DEBUG
enum ViewMetricsTesting {
static func reduceWidth(current: CGFloat, next: CGFloat) -> CGFloat {
var value = current
ViewWidthPreferenceKey.reduce(value: &value, nextValue: { next })
return value
}
}
#endif