• erio's avatar
    feat: image output token billing, channel-mapped billing source, credits balance precheck · d72ac926
    erio authored
    - Parse candidatesTokensDetails from Gemini API to separate image/text output tokens
    - Add image_output_tokens and image_output_cost to usage_log (migration 089)
    - Support per-image-token pricing via output_cost_per_image_token from model pricing data
    - Channel pricing ImageOutputPrice override works in token billing mode
    - Auto-fill image_output_price in channel pricing form from model defaults
    - Add "channel_mapped" billing model source as new default (migration 088)
    - Bills by model name after channel mapping, before account mapping
    - Fix channel cache error TTL sign error (115s → 5s)
    - Fix Update channel only invalidating new groups, not removed groups
    - Fix frontend model_mapping clearing sending undefined instead of {}
    - Credits balance precheck via shared AccountUsageService cache before injection
    - Skip credits injection for accounts with insufficient balance
    - Don't mark credits exhausted for "exhausted your capacity on this model" 429s
    d72ac926
gateway_service.go 300 KB