fix(registry): Avoid provider update when new provider is empty

When a client re-registered and changed its provider from a non-empty value to an empty string, the logic would still trigger a provider update for the client's models. An empty provider string should not cause an update.

This commit fixes this behavior by adding a check to ensure the new provider is a non-empty string before updating the model's provider information.

Additionally, the logic for detecting a provider change has been simplified by removing an unnecessary variable.
This commit is contained in:
hkfires
2025-09-26 17:48:12 +08:00
parent 63af4c551d
commit 2717ba3e50

View File

@@ -129,8 +129,8 @@ func (r *ModelRegistry) RegisterClient(clientID, clientProvider string, models [
now := time.Now()
oldModels, hadExisting := r.clientModels[clientID]
oldProvider, hadProvider := r.clientProviders[clientID]
providerChanged := hadProvider && oldProvider != provider
oldProvider, _ := r.clientProviders[clientID]
providerChanged := oldProvider != provider
if !hadExisting {
// Pure addition path.
for _, modelID := range modelIDs {
@@ -205,7 +205,7 @@ func (r *ModelRegistry) RegisterClient(clientID, clientProvider string, models [
if reg, ok := r.models[id]; ok {
reg.Info = cloneModelInfo(model)
reg.LastUpdated = now
if providerChanged {
if providerChanged && provider != "" {
if _, newlyAdded := addedSet[id]; newlyAdded {
continue
}