diff --git a/src/infrastructure/router/cascade.py b/src/infrastructure/router/cascade.py index 2de133d6..6f158b00 100644 --- a/src/infrastructure/router/cascade.py +++ b/src/infrastructure/router/cascade.py @@ -545,8 +545,12 @@ class CascadeRouter: if any(m["name"] == model_name for m in provider.models): return model_name - # Direct capability lookup as a secondary pass - cap_model = provider.get_model_with_capability(chain_key) + # Direct capability lookup — only return if a model explicitly has the tag + # (do not use get_model_with_capability here as it falls back to the default) + cap_model = next( + (m["name"] for m in provider.models if chain_key in m.get("capabilities", [])), + None, + ) if cap_model: return cap_model