From aae5b6f03eebfc2c0ca801829c4ffb90ffcc8858 Mon Sep 17 00:00:00 2001 From: spencrmartin Date: Fri, 13 Feb 2026 10:41:14 -0500 Subject: [PATCH] fix: Add ToSchema derives and register theme endpoints in OpenAPI - Add utoipa::ToSchema derives to ThemePreset and ThemeColors - Register get_theme_presets and apply_theme_preset in OpenAPI paths - Add ThemePresetsResponse and ApplyPresetRequest to OpenAPI schemas - This enables frontend TypeScript client generation for theme APIs --- crates/goose-server/src/openapi.rs | 6 ++++++ crates/goose-server/src/theme_presets.rs | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/goose-server/src/openapi.rs b/crates/goose-server/src/openapi.rs index 1f347bbd8c..496824f96e 100644 --- a/crates/goose-server/src/openapi.rs +++ b/crates/goose-server/src/openapi.rs @@ -360,6 +360,8 @@ derive_utoipa!(Icon as IconSchema); super::routes::config_management::get_pricing, super::routes::config_management::get_theme_variables, super::routes::config_management::save_theme, + super::routes::config_management::get_theme_presets, + super::routes::config_management::apply_theme_preset, super::routes::prompts::get_prompts, super::routes::prompts::get_prompt, super::routes::prompts::save_prompt, @@ -450,6 +452,10 @@ derive_utoipa!(Icon as IconSchema); super::routes::config_management::PricingData, super::routes::config_management::ThemeVariablesResponse, super::routes::config_management::SaveThemeRequest, + super::routes::config_management::ThemePresetsResponse, + super::routes::config_management::ApplyPresetRequest, + super::theme_presets::ThemePreset, + super::theme_presets::ThemeColors, super::routes::prompts::PromptsListResponse, super::routes::prompts::PromptContentResponse, super::routes::prompts::SavePromptRequest, diff --git a/crates/goose-server/src/theme_presets.rs b/crates/goose-server/src/theme_presets.rs index 767ca8f7d2..2f17c18190 100644 --- a/crates/goose-server/src/theme_presets.rs +++ b/crates/goose-server/src/theme_presets.rs @@ -5,8 +5,9 @@ use serde::{Deserialize, Serialize}; use std::collections::HashMap; +use utoipa::ToSchema; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] pub struct ThemePreset { pub id: String, pub name: String, @@ -17,7 +18,7 @@ pub struct ThemePreset { pub version: String, } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] pub struct ThemeColors { pub light: HashMap, pub dark: HashMap,