-
released this
2026-06-08 16:31:48 +02:00 | 1 commits to 1.5.11-ew1 since this releaseEW fork release based on upstream bifrost
transports/v1.5.11.Tracking release — keine Feature‑Änderungen in der Fork gegenüber
v1.5.10-ew-1. Zweiter Zero‑Conflict‑Port in Folge — siehe Spec 08 port log für Details.Contents
Spec Feature 01 EW (SGLang/OpenAI-compatible) provider — chat/text completion (+ stream), embeddings, responses, speech (+ stream), transcription (+ stream), rerank, image gen/edit/variation, list_models with owned_by="everyware"override02 Per-key API toggles ( EWKeyConfig.AllowedRequests) — restrict an EW key to a subset of operations03 OpenAI-conformant error envelope on /v1/...and/cursor/...routes + SGLang-aware error parser04 WhitelistedRoutesconfig also bypasses auth for inference routes (e.g./v1/models) and the governance VK-required gate05 Dockerfile builds with all local plugins via go.work, Forgejo Actions workflows for branch + tag buildsPort-Notes (was sich gegenüber v1.5.10 änderte)
In der Fork: nichts. Upstream zwischen v1.5.10 und v1.5.11:
- 12 substantielle Commits, davon nur 2 mit Overlap zu unserem Footprint (
handlers/governance.go+11 Zeilen,governance_test.go) — beide Files, die unsere Fork nicht touched. - Keine neuen DB‑Migrationen in der Mitte unserer Ordering.
- Keine API‑Drifts — die v1.5.10 Provider Interface Anpassungen (
ConfigureDialer2‑arg +Compactionstub) sind in der Fork bereits dauerhaft drin und propagieren automatisch. - Kein Go‑Bump —
go.modblieb auf 1.26.4 wie in v1.5.10.
Alle 14 Cherry‑Picks liefen sauber durch, kein Follow‑up Commit nötig.
Container image
The
Docker Releaseworkflow publishes:forge.engelmann.me/engel75/bifrost:v1.5.11-ew-1Identical runtime semantics to upstream
transports/v1.5.11plus all of the above EW features. Built statically (CGO + sqlite_static), runs as non-root, healthcheck on/health. Build-Stage nutzt Go 1.26.4 alpine image.Branches
Branch
1.5.11-ew1tracks this release. Frühere ew1 releases (1.5.3-ew1,1.5.4-ew1,1.5.7-ew1,1.5.8-ew1,1.5.10-ew1) bleiben verfügbar. Cherry-pick-Pfad für die nächste upstream Version: Spec 07 — Port Runbook.Upgrade notes
- Von
v1.5.10-ew-1: trivialer Drop‑in. Keine fork‑seitige Schema‑Änderung und keine neue upstream Migration in der relevanten Reihenfolge. Symbol‑Set im Binary identisch (107 matches). - Von jeder älteren
X.Y.Z-ew1Version: in-place safe. Alle Migrationen sind idempotent übermigrator_meta. Die akkumulierten upstream Migrationen aus v1.5.4 + v1.5.7 + v1.5.10 laufen automatisch. - Von upstream
transports/v1.5.11(kein EW bislang): beim ersten Boot werden die EW-Spalten inconfig_keysangelegt. Existierende Keys bleiben unangetastet.
Verification
- Alle Go test suites grün (
handlers TestAuth,integrations,core/providers/ew,framework/configstore -short). docker buildclean ohne Anpassung.- Symbol-Check: 107 matches im Binary (alle 5 Specs detektiert, identisch zu v1.5.10).
- Version string in
/app/mainist exaktv1.5.11-ew-1.
See Spec 08 — Version Port Log für die volle per-Version Historie.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- 12 substantielle Commits, davon nur 2 mit Overlap zu unserem Footprint (
-
released this
2026-06-08 09:30:09 +02:00 | 1 commits to 1.5.10-ew1 since this releaseEW fork release based on upstream bifrost
transports/v1.5.10(commitb35e35da3, v1.5.9 übersprungen).Tracking release — keine Feature‑Änderungen in der Fork gegenüber
v1.5.8-ew-1. Der Port war diesmal anspruchsvoller als die letzten (110 upstream Commits, 1 Konflikt + 2 API‑Follow‑ups) — siehe Spec 08 port log für Details.Contents
Spec Feature 01 EW (SGLang/OpenAI-compatible) provider — chat/text completion (+ stream), embeddings, responses, speech (+ stream), transcription (+ stream), rerank, image gen/edit/variation, list_models with owned_by="everyware"override02 Per-key API toggles ( EWKeyConfig.AllowedRequests) — restrict an EW key to a subset of operations03 OpenAI-conformant error envelope on /v1/...and/cursor/...routes + SGLang-aware error parser04 WhitelistedRoutesconfig also bypasses auth for inference routes (e.g./v1/models) and the governance VK-required gate05 Dockerfile builds with all local plugins via go.work, Forgejo Actions workflows for branch + tag buildsPort-Notes (was sich gegenüber v1.5.8 änderte)
Im Code der Fork selbst: nichts. Aber upstream zwischen v1.5.8 und v1.5.10:
- +8 neue DB-Migrationen (Model-Config Refactor: scope columns, customer budgets, FK constraints, governance migration). Standard-Resolution per Spec 06 — alle 8 vor unseren 2 EW-Migrationen einsortiert.
providerUtils.ConfigureDialersignatur change: zweiterboolParameter fürallowPrivateNetwork. EW Provider angepasst per Reference Pattern aus VLLM/OpenAI.schemas.Providerinterface: neueCompactionMethode. EW Provider liefertUnsupportedOperationError(SGLang hat keine native Compaction).- Go 1.26.3 → 1.26.4 in allen upstream
go.mod. Dockerfileprintf-String entsprechend gebumped (selbes Pattern wie beim v1.5.7 Port).
Container image
The
Docker Releaseworkflow publishes:forge.engelmann.me/engel75/bifrost:v1.5.10-ew-1Identical runtime semantics to upstream
transports/v1.5.10plus all of the above EW features. Built statically (CGO + sqlite_static), runs as non-root, healthcheck on/health. Build-Stage nutzt Go 1.26.4 alpine image.Branches
Branch
1.5.10-ew1tracks this release. Frühere ew1 releases (1.5.3-ew1,1.5.4-ew1,1.5.7-ew1,1.5.8-ew1) bleiben verfügbar. Cherry-pick-Pfad für die nächste upstream Version: Spec 07 — Port Runbook.Upgrade notes
- Von
v1.5.8-ew-1: in-place safe. Die 8 neuen upstream Migrationen und unsere 2 EW Migrationen laufen alle idempotent übermigrator_meta. Keine fork-seitige Schema-Änderung. - Von jeder älteren
X.Y.Z-ew1Version: in-place safe. Alle Migrationen sind idempotent. - Von upstream
transports/v1.5.10(kein EW bislang): beim ersten Boot werden die EW-Spalten inconfig_keysangelegt. Existierende Keys bleiben unangetastet.
Verification
- All Go test suites grün (
handlers TestAuth,integrations,core/providers/ew,framework/configstore -short). docker buildclean nach Go 1.26.4 bump.- Symbol-Check: 107 matches im Binary (alle 5 Specs detektiert).
- Version string in
/app/mainist exaktv1.5.10-ew-1.
See Spec 08 — Version Port Log für die volle per-Version Historie.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-
released this
2026-06-04 15:01:12 +02:00 | 0 commits to 1.5.8-ew1 since this releaseEW fork release based on upstream bifrost
transports/v1.5.8(commit7c5ab44e2).Tracking release with no functional changes vs.
v1.5.7-ew-1— the new upstream v1.5.8 was a small delta (14 substantive commits) and the EW fork cherry-picked cleanly with zero conflicts (see Spec 08 port log).Contents
Spec Feature 01 EW (SGLang/OpenAI-compatible) provider — chat/text completion (+ stream), embeddings, responses, speech (+ stream), transcription (+ stream), rerank, image gen/edit/variation, list_models with owned_by="everyware"override02 Per-key API toggles ( EWKeyConfig.AllowedRequests) — restrict an EW key to a subset of operations03 OpenAI-conformant error envelope on /v1/...and/cursor/...routes + SGLang-aware error parser04 WhitelistedRoutesconfig also bypasses auth for inference routes (e.g./v1/models) and the governance VK-required gate05 Dockerfile builds with all local plugins via go.work, Forgejo Actions workflows for branch + tag buildsContainer image
The
Docker Releaseworkflow publishes:forge.engelmann.me/engel75/bifrost:v1.5.8-ew-1Identical runtime semantics to upstream
transports/v1.5.8plus all of the above EW features. Built statically (CGO + sqlite_static), runs as non-root, healthcheck on/health.Branches
Branch
1.5.8-ew1tracks this release. Earlier ew1 releases (1.5.3-ew1,1.5.4-ew1,1.5.7-ew1) remain available. Cherry-pick path for the next upstream version is documented in Spec 07 — Port Runbook.Upgrade notes
- From
v1.5.7-ew-1: trivial — no DB schema change in our fork, only upstream v1.5.7 → v1.5.8 changes (5 already-applied upstream migrations from v1.5.7 + no new EW migration). Drop-in container replacement. - From any earlier
X.Y.Z-ew1release: in-place safe. The two EW DB migrations (add_ew_key_config_columns,add_ew_allowed_requests_column) are idempotent viamigrator_meta. Any intermediate upstream migrations apply automatically. - From upstream
transports/v1.5.8(no EW yet): on first boot the EW migrations create the new EW columns onconfig_keys. Existing keys are unaffected.
Verification
- Zero merge conflicts on the v1.5.7 → v1.5.8 cherry-pick.
- All Go test suites green (
handlers,integrations,core/providers/ew,framework/configstore -short). docker buildclean.- Symbol check confirms all 5 fork features baked into the binary (106 matches).
- Version string in
/app/mainis exactlyv1.5.8-ew-1.
See Spec 08 — Version Port Log for the full per-version history.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads
- From
-
released this
2026-06-04 13:14:35 +02:00 | 0 commits to 1.5.7-ew1 since this releaseEW fork release based on upstream bifrost
transports/v1.5.7(commitb4b95ff8a).Contents
Spec Feature 01 EW (SGLang/OpenAI-compatible) provider — chat/text completion (+ stream), embeddings, responses, speech (+ stream), transcription (+ stream), rerank, image gen/edit/variation, list_models with owned_by="everyware"override02 Per-key API toggles ( EWKeyConfig.AllowedRequests) — restrict an EW key to a subset of operations03 OpenAI-conformant error envelope on /v1/...and/cursor/...routes + SGLang-aware error parser04 WhitelistedRoutesconfig also bypasses auth for inference routes (e.g./v1/models) and the governance VK-required gate05 Dockerfile builds with all local plugins via go.work, Forgejo Actions workflows for branch + tag buildsContainer image
The
Docker Releaseworkflow publishes:forge.engelmann.me/engel75/bifrost:v1.5.7-ew-1docker runagainst this image is functionally identical to the upstreamtransports/v1.5.7binary, plus all of the above EW features. Built statically (CGO + sqlite_static), runs as non-root user, healthcheck on/health.Branches
Branch
1.5.7-ew1tracks this release. Earlier ew1 releases (1.5.3-ew1,1.5.4-ew1) remain available; cherry-pick path documented in Spec 07 — Port Runbook.Upgrade notes
- From any prior
X.Y.Z-ew1release: in-place safe. The two EW DB migrations (add_ew_key_config_columns,add_ew_allowed_requests_column) are idempotent viamigrator_meta. Upstream v1.5.4 → v1.5.7 added 4 new VK migrations (add_per_user_headers_*,add_mcp_client_tls_config,add_additional_attributes_to_pricing,drop_azure_api_version) — all also idempotent. - From upstream
transports/v1.5.7(no ew yet): on first boot the EW migrations create two new columns onconfig_keys(ew_url,ew_model_name,ew_allowed_requests_json). Existing keys are unaffected.
Verification
- All Go test suites green (
handlers,integrations,core/providers/ew,framework/configstore -short). docker buildclean (build cache fresh + warm), image runs.- Symbol check confirms all 5 fork features baked into the binary.
- Version string in
/app/mainis exactlyv1.5.7-ew-1.
See Spec 08 — Version Port Log for the conflict resolutions encountered during the v1.5.4 → v1.5.7 port.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- From any prior
-
released this
2026-04-29 09:38:58 +02:00 | 0 commits to 1.4.23-ew since this releasev1.4.23-ew-4
Patch-Release auf v1.4.23-ew-3.
Bugfix: WhitelistedRoutes-Bypass fürs Governance-Plugin landete nie im Image
In
v1.4.23-ew-3haben wir den VK-Pflicht-Bypass im Governance-Plugin (Commit55515ff37) committet, aber das gebaute Docker-Image hat den Bypass NIE ausgeliefert.Ursache: Der Dockerfile-Build erstellt einen
go.workmit nurcore/undframework/. Alle Plugins — auchgovernance— werden übertransports/go.modaus dem Module-Cache (Upstream-Versionen, z. B.governance v1.4.39) gezogen. Lokale Plugin-Änderungen waren also unsichtbar für den Build.Folge:
/v1/modelslieferte trotzWhitelistedRoutes-Eintrag weiter401 virtual key is required— die VK-Pflicht im Plugin lief gegen die alte Upstream-Version.Fix: Alle 8 lokalen Plugins (
governance,litellmcompat,logging,maxim,mocker,otel,semanticcache,telemetry) werden ins Build-Image kopiert und in den Workspace aufgenommen. Damit bautgo buildjeden Plugin aus lokalem Source statt aus der pinned Module-Cache-Version.Was geändert wurde
transports/Dockerfile:COPY plugins/ /plugins/ergänzt.- Workspace-Generation um alle 8 Plugin-Pfade erweitert:
use ( . /core /framework /plugins/governance /plugins/litellmcompat /plugins/logging /plugins/maxim /plugins/mocker /plugins/otel /plugins/semanticcache /plugins/telemetry )
Warum betraf das nicht alle Änderungen?
Frühere Patch-Releases haben funktioniert, weil ihre Änderungen in
core/,framework/odertransports/lagen — diese drei Module sind seit jeher Teil der Workspace. Erst55515ff37(Bypass im Governance-Plugin) musste überplugins/governance/deployed werden — und genau da hatte der Build die Lücke.Upgrade
Nach diesem Image-Push: einmal pullen + neu starten. Die UI-Konfiguration bleibt unverändert (Whitelist-Eintrag z. B.
/v1/models).Vollständiger Changelog
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-04-28 18:39:16 +02:00 | 1 commits to 1.4.23-ew since this releasev1.4.23-ew-3
Patch-Release auf v1.4.23-ew-2.
Highlight: Inference-Routen über
WhitelistedRoutesöffentlich machenDas bestehende Setting Workspace → Config → Security → "Whitelisted Routes" greift jetzt auch für Inference-Endpunkte (z. B.
/v1/models). Vorher griff es nur für/api/...-Dashboard-Routen.Anwendungsfall:
- „Password protect the dashboard" aktiviert, „Enforce virtual keys on inference" aktiviert.
/v1/models(oder/v1/models*,/v1/*) unter „Whitelisted Routes" eintragen.curl http://bifrost/v1/modelsohneAuthorization-Header und ohnex-bf-vk-Virtual-Key liefert die Modellliste.
Anonyme Aufrufe sehen die ungefilterte Modellliste — Virtual-Key-basiertes Filtering kann ohne Virtual Key naturgemäß nicht greifen.
Was passiert ist
Das Setting
WhitelistedRouteslebte schon, aber die Enforcement war auf zwei Schichten unvollständig:- AuthMiddleware (Basic-Auth/Session-Token) prüfte die Whitelist nur in
APIMiddleware(für/api/...), nicht inInferenceMiddleware(für/v1/...). - Selbst wenn die AuthMiddleware durchließ, gab das Governance-Plugin unabhängig „virtual key is required" zurück, sobald „Enforce auth on inference" aktiv war.
Beide Schichten respektieren jetzt die Whitelist.
Was geändert wurde
feat(auth): allow inference routes in WhitelistedRoutes configtransports/bifrost-http/handlers/middlewares.go: Match-Logik (exakt +*-Suffix-Wildcard) inisUserWhitelistedextrahiert.InferenceMiddlewareruft den Helper jetzt zusätzlich zuDisableAuthOnInference.APIMiddleware-Verhalten unverändert.- UI: Hilfetext und Placeholder im Security-Tab erwähnen Inference-Routen.
fix(auth): propagate WhitelistedRoutes bypass into governance plugin- Neue Context-Konstante
schemas.BifrostContextKeyAuthRouteWhitelistedincore/schemas/bifrost.go. - AuthMiddleware setzt das Flag, wenn die URL gegen die User-Whitelist matcht.
plugins/governance/main.go:evaluateGovernanceRequestcheckt das Flag ganz vorne und gibt direktDecisionAllowzurück — vor dem VK-Pflicht-Gate.
fix(auth): strip query string before whitelist matchisUserWhitelistedstrippt jetzt?…vom URL, bevor sie matcht. Damit greift ein exakter Eintrag/v1/modelsauch bei Aufrufen wie/v1/models?provider=openai.
Geänderte Dateien
core/schemas/bifrost.go— neue Context-Konstante.transports/bifrost-http/handlers/middlewares.go— Helper, Inference-Whitelist, Query-String-Strip.transports/bifrost-http/handlers/middlewares_test.go— Regression-Tests (5 Fälle inkl. Query-String).plugins/governance/main.go— Bypass im Plugin.ui/app/workspace/config/views/securityView.tsx— Hinweistext + Placeholder.
Upgrade
- Service neu starten, Docker-Image:
forge.engelmann.me/engel75/bifrost:v1.4.23-ew-3(wird durch Tag-Push gebaut). - Bestehende Whitelist-Einträge werden automatisch auch für Inference-Routen wirksam — keine Migration nötig.
Vollständiger Changelog
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
released this
2026-04-28 13:08:24 +02:00 | 4 commits to 1.4.23-ew since this releasev1.4.23-ew-2
Patch-Release auf v1.4.23-ew-1.
Neuerungen
EW-Provider:
owned_byOverride (feat)Die
/v1/models-Antwort gibt für jedes Modell des EW-Providers jetztowned_by: "everyware"zurück, unabhängig davon, was die SGLang-Backends melden. SGLang reicht typischerweise den ursprünglichen Hugging-Face-Owner durch (z. B.Qwen,meta-llama); für EW-Deployments ist der kanonische Eigentümer aber der Operator, nicht der Modell-Autor.Implementierung: Override in
listModelsByKeydirekt nach dem geteiltenopenai.ListModelsByKey-Call. KonstanteEWModelOwner = "everyware"incore/providers/ew/ew.go. Regression-Test inlist_models_test.goergänzt.Bugfixes
Docker-Build: doppeltes
vin der Binary-VERSION (fix)Der Forgejo-Actions-Workflow
docker-release.ymlreicht den Git-Tag (z. B.v1.4.23-ew-1) als--build-arg VERSION=…weiter, dastransports/Dockerfilesetzte aber zusätzlich nochmal einvdavor (-X main.Version=v${VERSION}). Folge: Die Binary meldete ihre Version alsvv1.4.23-ew-1.Behoben durch:
- Default-
ARG VERSION=v1.4.23-ew(mitv-Prefix). - ldflag jetzt
-X main.Version=${VERSION}(kein zusätzlichesvmehr).
Makefile,Dockerfile.localund die GitHub-Action-Skripte lesenVERSIONaustransports/version(Wert ohnev-Prefix) und behalten ihrev${VERSION}-Form bei — dort ist dasvkorrekt.Geänderte Dateien
core/providers/ew/ew.go—EWModelOwner-Konstante + Override-Loop inlistModelsByKey.core/providers/ew/list_models_test.go— Regression-Test fürowned_by == "everyware".transports/Dockerfile— doppeltesventfernt.
Upgrade
Service neu starten und Docker-Image
forge.engelmann.me/engel75/bifrost:v1.4.23-ew-2ziehen (wird durch den Tag-Push gebaut).Vollständiger Changelog
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Default-
-
released this
2026-04-28 10:54:21 +02:00 | 6 commits to 1.4.23-ew since this releasev1.4.23-ew-1
Erstes Release des EW-flavored Bifrost-Forks. Setzt auf Upstream Bifrost v1.4.23 auf und ergänzt um den EW/SGLang-Provider, per-Key-API-Toggles sowie OpenAI-konforme Fehlerantworten auf den OpenAI-Compat-Routen.
Highlights
EW (SGLang) Provider
- Neuer Provider
ewfür OpenAI-kompatible SGLang/EW-Instanzen- Per-Key-Konfiguration (
ew_key_config.url,ew_key_config.model_name) — jede Key-Instanz routet auf einen eigenen Backend-Server - Round-Robin-Loadbalancing über mehrere SGLang-Backends
- Per-Key-Konfiguration (
- Streaming-Support für Chat, Text, Speech, Transcription
- OpenAI-kompatible
SpeechStream-Implementierung - SGLang-spezifischer Error-Parser (
ParseSGLangError) — fängt sowohl die top-level ({"object":"error","message":...,"type":"BadRequestError","code":400}) als auch die streaming-wrapped ({"error":{...}}) Fehler-Shapes von SGLang ab und füllt denBifrostErrormit der korrekten Message/Type
Per-Key API Toggles
Ein Operator kann pro EW-Key explizit steuern, welche APIs erlaubt sind:
ew_key_config.allowed_requests = null⇒ alle APIs erlaubt (backwards compatible)- Explizite Whitelist für 16 EW-unterstützte APIs (Chat, Text, Responses, Embedding, Rerank, Speech, Transcription, Image-Gen/Edit/Variation, ListModels — jeweils inkl. Streaming-Varianten wo verfügbar)
- Doppelte Durchsetzung:
- Routing-Filter in
selectKeyFromProviderForModelüberspringt gesperrte Keys ⇒ Bifrost wählt automatisch einen anderen passenden Key - Defensiver Check in jeder EW-Provider-Methode liefert
UnsupportedOperationError, falls der Key explizit perx-bf-key-idreferenziert wird
- Routing-Filter in
- UI-Toggles im Provider-Form (Workspace → Providers → EW Key)
- Automatische DB-Migration
add_ew_allowed_requests_columnbeim Start
OpenAI-konforme Fehlerantworten
Alle OpenAI-Compat-Routen liefern Fehler im OpenAI-Standardformat:
{ "is_bifrost_error": false, "status_code": 400, "error": { "message": "Requested token count exceeds the model's maximum context length of 196608 tokens. ...", "type": "invalid_request_error", "code": "context_length_exceeded", "param": "messages" }, "extra_fields": { "provider": "ew", "model_requested": "minimax27", "request_type": "chat_completion_stream" } }- SGLang→OpenAI Type-Mapping:
BadRequestError/BadRequest/DecodeError⇒invalid_request_error;InternalServerError/NotImplementedError⇒api_error; HTTP-Statuscodes (401/403/404/429) ⇒authentication_error/permission_error/not_found_error/rate_limit_error. - Code-Heuristiken: „maximum context length" ⇒
context_length_exceeded; „no keys found" ⇒model_not_found; pro Statuscode passende Defaults. - Bifrost-Diagnostik bleibt erhalten:
is_bifrost_error,status_codeundextra_fieldsan Top-Level (OpenAI-Clients ignorieren unbekannte Felder). - Vollständige Abdeckung: 45 ErrorConverter in
integrations/openai.go, 2 incursor.go, plus die nativen PfadeSendBifrostError/SendSSEErrorinhandlers/utils.go.
Bugfixes
- Redaction-Lücke (
framework/configstore/clientconfig.go): Beim Bauen der UI-Antwort wurdenallowed_requestsweggelassen, sodass beim Reload des Keys der Master-Switch auf „Allow All APIs" zurücksprang. ⇒ Behoben. - Native Streaming-Setup-Fehler: Wenn SGLang vor dem ersten SSE-Chunk einen 400 zurückgab, lief der Fehler durch
SendBifrostError, das vorher denBifrostError1:1 ausgab und die Integrations-ErrorConverterumging. ⇒SendBifrostError/SendSSEErrorleiten jetzt durchToOpenAIErrorEnvelope.
Infrastruktur
- Forgejo Actions Workflow (
.forgejo/workflows/docker-release.yml): Baut Docker-Images automatisch aufv*-Tags und pusht nachforge.engelmann.me/engel75/bifrost:<tag>. - GitNexus MCP-Konfiguration für die Codebase.
Wichtige Dateien
Datei Bedeutung core/providers/ew/(NEU)Kompletter EW-Provider inkl. errors.go(ParseSGLangError)core/schemas/account.goEWKeyConfig.AllowedRequestscore/bifrost.goRouting-Filter für EW pro RequestType framework/configstore/tables/key.go+ MigrationDB-Persistenz framework/configstore/clientconfig.goRedaction-Bugfix transports/bifrost-http/integrations/utils.goOpenAIErrorEnvelope,ToOpenAIErrorEnvelope, SGLang→OpenAI Mapping-Tabelletransports/bifrost-http/integrations/openai.go+cursor.goErrorConverter-Umstellung transports/bifrost-http/handlers/utils.goSendBifrostError/SendSSEErrordurch Envelope geleitetui/lib/types/config.ts,schemas.tsTS-Typen + Zod-Schema für allowed_requestsui/app/workspace/providers/fragments/ewAllowedApisFields.tsx(NEU)EW-spezifische API-Toggle-Komponente ui/app/workspace/providers/fragments/apiKeysFormFragment.tsxWiring des EW-Form-Bereichs Upgrade
- Service neu starten — die DB-Migration läuft automatisch.
- Bestehende EW-Keys behalten alle APIs erlaubt (Default
allowed_requests = null). - Docker-Image:
forge.engelmann.me/engel75/bifrost:v1.4.23-ew-1(wird durch den Tag-Push gebaut).
Bekannte Einschränkungen
- Embedding-, Speech-, Transcription- (non-stream), Image-* haben keinen
customErrorConverter-Slot in der OpenAI-Hilfsbibliothek. Dort werden Backend-Fehler weiterhin viaParseOpenAIErrorgeparst — der Transport-Envelope normalisiert immerhin die JSON-Shape, aber bei tiefen Backend-Fehlern könnte die innere Message generisch sein („provider API error (status 400)") statt der originalen SGLang-Botschaft.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Neuer Provider