diff --git a/lib/app/app_controller_desktop_core.dart b/lib/app/app_controller_desktop_core.dart index 61638281..f403adda 100644 --- a/lib/app/app_controller_desktop_core.dart +++ b/lib/app/app_controller_desktop_core.dart @@ -569,15 +569,13 @@ class AppController extends ChangeNotifier { final source = executionTarget.isGateway ? gatewayProviderCatalog : assistantProviderCatalog; - final visibleProviderIds = executionTarget.isGateway - ? const [kCanonicalGatewayProviderId] - : const ['codex', 'opencode', 'gemini']; - final providersById = { - for (final p in source) p.providerId: p, - }; - return visibleProviderIds - .map((id) => providersById[id]) - .whereType() + if (executionTarget.isGateway) { + return source + .where((provider) => provider.providerId == kCanonicalGatewayProviderId) + .toList(growable: false); + } + return source + .where((provider) => provider.supportedTargets.contains(executionTarget)) .toList(growable: false); } diff --git a/lib/runtime/runtime_models_connection.dart b/lib/runtime/runtime_models_connection.dart index d290fd25..88417cd9 100644 --- a/lib/runtime/runtime_models_connection.dart +++ b/lib/runtime/runtime_models_connection.dart @@ -365,5 +365,6 @@ bool isBridgeOwnedSingleAgentProviderId(String providerId) { final normalized = normalizeSingleAgentProviderId(providerId); return normalized == 'codex' || normalized == 'opencode' || - normalized == 'gemini'; + normalized == 'gemini' || + normalized == 'hermes'; }