diff --git a/internal/runtime/executor/antigravity_executor_credits_test.go b/internal/runtime/executor/antigravity_executor_credits_test.go index cc9a897b..a763d19f 100644 --- a/internal/runtime/executor/antigravity_executor_credits_test.go +++ b/internal/runtime/executor/antigravity_executor_credits_test.go @@ -21,11 +21,16 @@ import ( sdktranslator "github.com/router-for-me/CLIProxyAPI/v7/sdk/translator" ) +// resetAntigravityCreditsRetryState clears the package-level credits state +// between tests. It empties each map in place instead of assigning a fresh +// sync.Map, because credits hint refreshes run on background goroutines that +// may still be writing these maps when a test's cleanup runs. Replacing the +// variable is an unsynchronized write and races with them; Clear is not. func resetAntigravityCreditsRetryState() { - antigravityCreditsFailureByAuth = sync.Map{} - antigravityShortCooldownByAuth = sync.Map{} - antigravityCreditsBalanceByAuth = sync.Map{} - antigravityCreditsHintRefreshByID = sync.Map{} + antigravityCreditsFailureByAuth.Clear() + antigravityShortCooldownByAuth.Clear() + antigravityCreditsBalanceByAuth.Clear() + antigravityCreditsHintRefreshByID.Clear() } type closeSignalReadCloser struct {