• erio's avatar
    fix: resolve 5 audit findings in channel/credits/scheduling · 71f61bbc
    erio authored
    P0-1: Credits degraded response retry + fail-open
    - Add isAntigravityDegradedResponse() to detect transient API failures
    - Retry up to 3 times with exponential backoff (500ms/1s/2s)
    - Invalidate singleflight cache between retries
    - Fail-open after exhausting retries instead of 5h circuit break
    
    P1-1: Fix channel restriction pre-check timing conflict
    - Swap checkClaudeCodeRestriction before checkChannelPricingRestriction
    - Ensures channel restriction is checked against final fallback groupID
    
    P1-2: Add interval pricing validation (frontend + backend)
    - Backend: ValidateIntervals() with boundary, price, overlap checks
    - Frontend: validateIntervals() with Chinese error messages
    - Rules: MinTokens>=0, MaxTokens>MinTokens, prices>=0, no overlap
    
    P2: Fix cross-platform same-model pricing/mapping override
    - Store cache keys using original platform instead of group platform
    - Lookup across matching platforms (antigravity→anthropic→gemini)
    - Prevents anthropic/gemini same-name models from overwriting each other
    71f61bbc
gateway_service.go 304 KB