🎉 Stable Release v3.5.43
Multi-Architecture Binaries
Download the appropriate binary for your platform:
- Linux x86_64:
better-ccflare-linux-amd64 - Linux ARM64 (Raspberry Pi 3/4/5, Oracle Cloud ARM, AWS Graviton):
better-ccflare-linux-arm64 - macOS Intel:
better-ccflare-macos-x86_64 - macOS Apple Silicon:
better-ccflare-macos-arm64 - Windows x86_64:
better-ccflare-windows-x64.exe
Installation
# Linux x86_64
wget https://github.com/tombii/better-ccflare/releases/download/v3.5.43/better-ccflare-linux-amd64
chmod +x better-ccflare-linux-amd64
./better-ccflare-linux-amd64
# macOS Apple Silicon (ARM64)
curl -L -o better-ccflare-macos-arm64 https://github.com/tombii/better-ccflare/releases/download/v3.5.43/better-ccflare-macos-arm64
chmod +x better-ccflare-macos-arm64
xattr -d com.apple.quarantine better-ccflare-macos-arm64 # Required for unsigned binaries
./better-ccflare-macos-arm64macOS Users: The xattr command is required to bypass Gatekeeper for unsigned binaries. If you prefer not to run unsigned binaries, install from source instead.
Or install via npm: npm install -g better-ccflare@v3.5.43
What's Changed
🚀 Features
- feat: apply ai code review of high recommendation level (
0ff16205) - feat: explicit outbound forward-proxy support via BETTER_CCFLARE_OUTBOUND_PROXY (
ca38c3dd) - feat(providers): add MiniMax Token Plan usage polling (
d60cd09d)
🐛 Bug Fixes
- fix(proxy): classify upstream read rejection as 'error' not 'truncated' (
0305fd77) - fix: reject invalid duration overrides from env (
0cb8cb8b) - fix: detect and record premature SSE termination for all Anthropic-Messages-shaped streams (
1565a5d4) - fix: complete the core module stubs in two proxy test files (
1ac4bed6) - fix: mark the ungated retry as the terminal attempt it is (
1f363600) - fix: wire usage-exhaustion filtering into account selection after main reconciliation (
291b3a82) - fix: name the cooldown, not weekly capacity, as the real blocker (
3e5f0b4c) - fix: align the two forward-guard predicates and log a rejected 529 write (
3f0f57ce) - fix(providers): tighten MiniMax usage fetcher (PR #346 review) (
4311195e) - fix(#340): add-side duplicate guard + genuinely id-scoped delete (
507132ec) - fix: move the mid-stream clause to the 529 reason that now produces it (
5f70c24c) - fix: derive the terminal-attempt flag from remaining candidates, not the index (
6360765d) - fix: stop the mid-stream sniffer passing a synthetic reset as an upstream one (
657ea702) - fix: wire the usage-exhaustion filter into actual account selection (
6abbe3c0) - fix: retry ungated instead of 503ing when every account is probe-suppressed (
7049261e) - fix(#340): pair refresh_token_issued_at with its tokens; repair stale tests (
71bd8386) - fix(#340): merge every account column, and stop trusting the index pre-check (
7e0f87e1) - fix: skip usage-exhausted accounts during selection (
874a30ea) - fix(#340): merge the same account columns on the PostgreSQL path (
9ef1b7ac) - fix: cap 529-with-reset at overload scale, not the 429 ramp ceiling (
a25b8f25) - fix: point the 529 suggestion at the env var the path actually reads (
a2bcfa6e) - fix: arm the probe gate for overloads and decouple 529 duration from the streak (
c168a56b) - fix: apply provider exclusions in the cooldown-masking sweep (
c217d0db) - fix(#340): non-destructive account dedup before UNIQUE index (
cb7e9b84) - fix(#340): atomic DB-level UNIQUE guard for account add (closes Greptile P1) (
dbb776f4) - fix: return the forward-guard outcome to the cooldown caller (
e33a7c70) - fix: stop 529 overload responses from ramping the 429 cooldown (
f68ba838)
🔒 Security
- security: strip internal probe headers before forwarding upstream (
3b88b17b) - security: gate internal-probe markers behind a process-local secret (
5c13f023)
🙏 Thanks to our contributors
- Thanks to @CooLowbro for #339
- Thanks to @flex-seongmin for #334
- Thanks to @lunetics for #336, #342
- Thanks to @zenprocess for #343, #344