refactor(auth): Move candidate sorting to RoundRobinSelector

This commit is contained in:
hkfires
2025-09-26 10:50:15 +08:00
parent e836b4ac10
commit 9b80820b17
2 changed files with 5 additions and 7 deletions

View File

@@ -2,6 +2,7 @@ package auth
import (
"context"
"sort"
"sync"
"time"
@@ -36,6 +37,10 @@ func (s *RoundRobinSelector) Pick(ctx context.Context, provider, model string, o
if len(available) == 0 {
return nil, &Error{Code: "auth_unavailable", Message: "no auth available"}
}
// Make round-robin deterministic even if caller's candidate order is unstable.
if len(available) > 1 {
sort.Slice(available, func(i, j int) bool { return available[i].ID < available[j].ID })
}
key := provider + ":" + model
s.mu.Lock()
index := s.cursors[key]