From e1de04230f53b23d44cd6563731990f9dcb6fd2c Mon Sep 17 00:00:00 2001 From: hkfires <10558748+hkfires@users.noreply.github.com> Date: Fri, 26 Sep 2025 19:19:24 +0800 Subject: [PATCH] fix(registry): Reset client status on model re-registration When a client re-registers with the model registry, its previous status for a given model (e.g., quota exceeded or suspended) was not being cleared. This could lead to a situation where a client is permanently unable to use a model even after re-registering. This change ensures that when a client re-registers an existing model, its ID is removed from the model's `QuotaExceededClients` and `SuspendedClients` lists. This effectively resets the client's status for that model, allowing for a fresh start upon reconnection. --- internal/registry/model_registry.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/registry/model_registry.go b/internal/registry/model_registry.go index dba10d9d..b52e48b2 100644 --- a/internal/registry/model_registry.go +++ b/internal/registry/model_registry.go @@ -237,6 +237,12 @@ func (r *ModelRegistry) RegisterClient(clientID, clientProvider string, models [ if reg, ok := r.models[id]; ok { reg.Info = cloneModelInfo(model) reg.LastUpdated = now + if reg.QuotaExceededClients != nil { + delete(reg.QuotaExceededClients, clientID) + } + if reg.SuspendedClients != nil { + delete(reg.SuspendedClients, clientID) + } if providerChanged && provider != "" { if _, newlyAdded := addedSet[id]; newlyAdded { continue