Skip to content

BFEv1.8.8

Choose a tag to compare

@mileszhang2016 mileszhang2016 released this 24 Sep 08:51
· 106 commits to develop since this release
c95df40

Added

  • Add per-protocol upstream path rewrite via AIConf.ProtocolPaths (Pull #1373)
  • Add plaintext dial option for the EPP client and formalize the EPPTLS default (Pull #1376)

Changed

  • Improve WRR/WLC load balancing policies (Pull #1375)

Fixed

  • Fix proxy_delay_time uint32 wraparound in access logs for requests that never reached a backend (401/404/redirect/close), which corrupted downstream MySQL batch inserts (Pull #1390)
  • Fix duplicate billing of Responses API cached_tokens by restoring subset semantics (input_tokens already includes cached tokens) (Pull #1388)
  • Validate API-Key allowed/blocked models against the post-routing target model, so model redirection composes with model whitelists (Pull #1385)
  • Match AI rate limit policies by post-routing target model via the new HandleAfterAITargetModel callback point (Pull #1385)
  • Fix token model whitelist check for native Gemini path models (no more false 400 rejects) (Pull #1383)
  • Fix OpenAI provider path rewrite for client entry paths without the /v1 prefix (Pull #1380)
  • Fix AI request mode detection for client entry paths without the /v1 prefix, with the endpoint table shared in bfe_basic (Pull #1380)
  • Fix provider-native /compatible-mode/v1/responses misdetected as Chat mode, causing price miss (Pull #1380)
  • Fix unrecognized Responses API response.completed events that left Codex streaming requests unbilled (Pull #1380)
  • Recognize Anthropic message_delta as final usage in the openai adapter, fixing lost usage on cross-protocol streams (Pull #1371)