From 9f76ca2bf1b25f044cd7249ff00ef6e8d745bd9c Mon Sep 17 00:00:00 2001 From: octo-patch Date: Fri, 10 Apr 2026 12:00:00 +0800 Subject: [PATCH] fix: exclude internal providers from routing_preferences model validation (fixes #645) --- crates/brightstaff/src/main.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/brightstaff/src/main.rs b/crates/brightstaff/src/main.rs index bc88b60b..49881c44 100644 --- a/crates/brightstaff/src/main.rs +++ b/crates/brightstaff/src/main.rs @@ -189,10 +189,13 @@ async fn init_app_state( // Validate that all models referenced in top-level routing_preferences exist in model_providers. // The CLI renders model_providers with `name` = "openai/gpt-4o" and `model` = "gpt-4o", // so we accept a match against either field. + // Internal providers (arch-router, arch-function, etc.) are excluded since they are not + // valid routing targets for user-defined routing_preferences. if let Some(ref route_prefs) = config.routing_preferences { let provider_model_names: std::collections::HashSet<&str> = config .model_providers .iter() + .filter(|p| p.internal != Some(true)) .flat_map(|p| std::iter::once(p.name.as_str()).chain(p.model.as_deref())) .collect(); for pref in route_prefs {