github tombii/better-ccflare v3.5.45
Stable Release v3.5.45

latest release: v3.5.46
3 hours ago

🎉 Stable Release v3.5.45

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.45/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.45/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-arm64

macOS 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.45


What's Changed

🚀 Features

  • feat(version): CCFLARE_BUILD_SUFFIX for patched-build identification (1362d2f0)
  • feat: expose the stream terminal state through the API (23cf0cea)
  • feat(http-api): add GET /api/capacity-state endpoint (27e17e49)
  • feat(proxy): per-account SSE stream admission control (65b2bf9a)
  • feat(proxy): add circuit_open reason to pool-exhausted response (68866886)
  • feat: persist the client session id with each request (866282e4)
  • feat(proxy): circuit breaker core state machine (86e87324)
  • feat: surface anomaly totals and severity in the Insights UI (87779dbf)
  • feat(proxy): drain stream-admission waiters on circuit_open (ecf3f19e)

🐛 Bug Fixes

  • fix: wire minimax usage polling into server bootstrap and instrument unknown model_name (03cc6deb)
  • fix: repair broken tests and eliminate cross-file mock.module pollution [skip-version] (053746c1)
  • fix(proxy): enforce RateLimitReason exhaustiveness in circuit breaker (F1.a, ported) (11c27531)
  • fix(dashboard): derive anomaly threshold text from response meta (12ce70a5)
  • fix: bound the stored session id and attribute failure rows too (190aca0c)
  • fix(proxy): make pool-exhausted 503 usage-aware (21f2a2dd)
  • fix(pg): collapse GROUP BY expression and drop ? IN (...) sentinel for PostgreSQL (33ef2be9)
  • fix(minimax): positive status_code allowlist (review finding F5) (36a35b99)
  • fix(minimax): warn on missing API key + distinguish summary log (Greptile #350 P2) (4c831a8e)
  • fix: stop reporting a missing payload as a missing request (5144a7a0)
  • fix(proxy): fold merge fixup and lint formatting into PR #349 merge [skip-version] (5442dee2)
  • fix(issue-273): cancel abandoned extractUsageInfo clone after await (57a982ea)
  • fix(proxy): break Zai 100%/100% usage ties by the later reset (65791a85)
  • fix: add MinimaxUsageData type to close a typecheck gap from PR #372 (7b1ea136)
  • fix(#273): remove unreliable leak harness, correct drain chunk-size docs [skip-version] (7b7e2a80)
  • fix: make the terminal-state guarantees hold (7d753e8f)
  • fix(proxy): align circuit breaker to upstream vocabulary and bound cooldown (840d6494)
  • fix: validate CCFLARE_BUILD_SUFFIX to prevent shell injection (84ea1700)
  • fix(proxy): wire circuit breaker into cooldown chokepoint and active-clear (89cb0aef)
  • fix: strip regex lookaround from tool schemas forwarded to OpenAI (8a752ec1)
  • fix(pg-harness): align 7 assertion failures + coerce Bun.SQL BIGINT to Number (946b23cb)
  • fix: attribute the two synthetic failure paths as well (952a0fe7)
  • fix(dashboard): render per-window MiniMax usage from canonical seven_day key (95e827b4)
  • fix(issue-273): use drainBody instead of body.cancel() for the usage clone (b1f32d9f)
  • fix: harden the live path and the guard test that guarded nothing (b3c69ad6)
  • fix: narrow the persisted terminal state instead of casting it (b5b77539)
  • fix(proxy): update stream-admission test to upstream RateLimitReason literal (b61cf4f9)
  • fix: release teed response bodies outside the 529 path (bcbe9954)
  • fix(http-api): keep raw project through anomaly detection (c0502b91)
  • fix: end the request on client disconnect instead of failing over (cec5b5b9)
  • fix(proxy): dispose orphaned response clones on the 529 overload path (df9155cd)
  • fix(issue-273): drain discarded response bodies on failover/retry paths (ef42b42f)
  • fix(database,http-api): bind no_account bucket to NULL and legacy literal alike (f11c3c36)
  • fix(proxy): pair Zai pool-exhausted reset with the winning window (f47702bf)
  • fix: abort the upstream fetch when the client disconnects (fd389fd2)
  • fix(proxy): close circuit on request success and strip stream-admission (ff85f026)

🔒 Security

  • security: validate header-derived project names against isLowRiskProjectSlug (fixes #373) (c65d7aa6)

🙏 Thanks to our contributors

Full Changelog

📋 Compare with previous version

Don't miss a new better-ccflare release

NewReleases is sending notifications on new releases.