• v2.2.3-ew-2 223b9a5509

    v2.2.3-ew-2
    All checks were successful
    Docker Build / docker (push) Successful in 9m22s
    Docker Release / release (push) Successful in 8m4s
    Stable

    engel75 released this 2026-09-29 09:13:31 +02:00 | -3470 commits to 1.4.23-ew since this release

    EW Response Sanitizer + x-ewcs Header Branding: partner infrastructure data no longer reaches customers, and all routed-identity response headers now carry the x-ewcs-* branding.

    • Header denylist for the EW provider: x-litellm-*, llm_provider-*, x-ratelimit-* are filtered from extra_fields.provider_response_headers AND the HTTP response headers — on success, error and all streaming paths. The sanitizer lives in the fork-owned core/providers/ew/ package (zero upstream-conflict surface).
    • system_fingerprint is emptied instead of forwarded (revealed the partner vLLM build).
    • raw_request / raw_response are never delivered for EW — unary and all five stream chunk shapes (chat, text completion, responses stream, speech stream, error), regardless of send-back-raw configuration.
    • Internal key name withheld: extra_fields.routing_info.key and the routing-info-key response header are gone for EW — gated at BuildRoutingInfo via ResolveBaseProvider, so EW-based custom providers are covered too.
    • Branding: all 16 routed-identity response header constants plus x-bifrost-trace-id renamed to x-ewcs-* (all providers); provider-harness contract and docs updated. x-bf-* request headers intentionally unchanged.
    • Tests: 13 sanitizer unit tests, TestRoutingInfoKeyWithheldForEW (gjson marshal proof), empty-key header-skip case, harness case 8.5.S (FEATURE="sanitization", live run against the partner environment).
    • Docs: specs/10-ew-response-sanitizer-ewcs-headers.md (mechanisms, what-NOT-to-change, port notes).

    Commits: 4fd52e37c, fac94934f, 2be33ee2e, e000e4b71, 6d2842ad2, c56272b48, d4cc8b3dd, 223b9a550
    Image: forge.engelmann.me/engel75/bifrost:v2.2.3-ew-2

    Verified: go build + vet + make build LOCAL=1; go test (core/providers/ew 13/13, core, schemas, transports lib+handlers suites); wire smoke on a locally booted gateway (x-ewcs-request-type / x-ewcs-provider present, zero x-bifrost-* headers on the wire); harness augment/filter checks (8.5.S resolves to exactly 1 request).

    Downloads