Skip to content

chore: bump github.com/maximhq/bifrost/core from 1.7.13 to 1.8.4 in /authbridge/authlib - #830

Closed
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/go_modules/authbridge/authlib/github.com/maximhq/bifrost/core-1.8.4
Closed

chore: bump github.com/maximhq/bifrost/core from 1.7.13 to 1.8.4 in /authbridge/authlib#830
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/go_modules/authbridge/authlib/github.com/maximhq/bifrost/core-1.8.4

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 31, 2026

Copy link
Copy Markdown
Contributor

Bumps github.com/maximhq/bifrost/core from 1.7.13 to 1.8.4.

Release notes

Sourced from github.com/maximhq/bifrost/core's releases.

Core v1.8.4

Core Release v1.8.4

  • fix: strip the encrypted reasoning signature when the upstream reports the field as unsupported (e.g. Bedrock Converse replaying a Claude signature onto a non-Anthropic model after a mid-conversation model switch), extending the existing unverifiable-signature fail-soft
  • fix: clear Anthropic raw-body passthrough based on the resolved provider and model pair, so non-Claude models on multi-family providers (Vertex, Azure, Bedrock Mantle) convert the request instead of passing the Anthropic payload through

Installation

go get github.com/maximhq/bifrost/core@v1.8.4

This release was automatically created from version file: core/version

Core v1.8.3

Core Release v1.8.3

  • fix: forward OpenCode Responses requests directly to /v1/responses @​mohammadrezwankhan
  • feat: add the VideoEdit operation with BifrostVideoEditRequest, VideoEditInput and VideoEditParameters for prompt-driven edits, upscaling and background removal on an existing video supplied as bytes, a URL or a provider video ID; implemented for OpenAI (/v1/videos/edits) and Runware (videoInference, upscale, removeBackground), with the model optional when the source is a video ID and the prompt optional for asset-driven task types (#6270)
  • feat: batch accounting: MergeBifrostLLMUsage promoted to schemas, Endpoint on BifrostBatchResultsResponse, BatchResultItem.Failed(), BatchRequestCountsFromResults, BatchRequestCounts.IsZero(), raw-JSON Gemini batch result parsing and custom_id validation in ConvertRequestsToJSONL; the settlement engine (AccountBatchResults with runner-ID ownership fencing, idempotent aggregate log writes and governance reporting) and a sweeper that polls due jobs with capped, jittered backoff; aggregate log entries carry a bifrost/<version> user agent via BifrostContextKeyRuntimeVersion (thanks @​SahilChoudhary22!) (#5291, #5294, #6474)
  • feat: Claude-on-Vertex batch support: ToVertexBatchCreateRequest resolves Anthropic families to publishers/anthropic/models/..., vertexConvertRequestsToJSONL emits Claude-on-Vertex instances, custom_id round-trips through batchResultsByKey, and GeminiBatchGenerateContentRequest keeps tools, toolConfig, cachedContent, labels and the display name (#5368)
  • feat: add HTTPTransportPreAuthHook to the HTTPTransportPlugin interface, a phase that runs before transport authentication; HTTPTransportPreHook now runs after it (#6375) Breaking for plugin authors: Go plugins implementing HTTPTransportPlugin must add HTTPTransportPreAuthHook (.so plugins that predate it are skipped for that phase), and any plugin that injected a credential such as x-bf-vk or Authorization from HTTPTransportPreHook must move that work to HTTPTransportPreAuthHook, since the pre-hook no longer runs before auth.
  • feat: add semaphore_size and inject_timeout to PluginConfig so observability Inject calls are context-bounded per plugin (#6341)
  • feat: Runware provider expansion: chat completions, streaming and Responses through its OpenAI-compatible /v1/chat/completions endpoint (Responses muxed via ToChatRequest()), ListModels sweeping the curated modelSearch catalog with the AIR as the model ID, image upscale via /v1/images/edits (type=upscale) and image-to-3D via /v1/videos (type=3d), a shared settings extra-param coercion for multipart and JSON callers, prompt-optional asset-driven operations, and input handling for edit, upscale and video task shapes (#6260, #6372, #6208)
  • feat: OpenAI ultrafast service tier: BifrostServiceTierUltrafast, capability-gated forwarding via serviceTierForModel on chat, Responses and compaction, and ultrafast preserved through WithDefaults (#6396)
  • feat: JSON bodies on /v1/images/edits: ImageInput accepts a bare string or { "url", "image" }, typed extra params reach providers with their real types, and images is a known field (#6418)
  • feat: EmbeddingData.EncodingFormat with typed int8, uint8, binary, ubinary and base64 vectors; Bedrock Titan V2 embeddingTypes and Cohere embedding_types on Converse, native invoke and LangChain BedrockEmbeddings compatibility (#6381)
  • feat: rerank: RerankDocument.Data for structured documents, RerankResult.ID, RerankParameters.NextToken, ReturnDocuments forwarded to Cohere and Vertex, ToCohereError for Cohere-shaped errors, /genai/v1/rank served cross-provider via x-model-provider, cross-provider responses converted back to the caller's wire shape with ToBedrockRerankResponse, ToCohereRerankResponse and ToVertexRankResponse, and rerank cost accounting for Bedrock and Cohere (#6301, #6328)
  • feat: datasheet-backed compatibility flows: Anthropic, Bedrock, Cohere and Gemini request shaping (adaptive-only thinking, adaptive thinking, native effort, disable-reasoning, mid-conversation system turns, computer-use and text-editor tool generations, default max output tokens, tool validation, thinking-budget zeroing) is resolved through schemas.ResolveModelCaps instead of hardcoded model-name checks (#6281, #6492)
  • feat: Gemini 3 per-model thinkingLevel support table (geminiThinkingLevelSupport) with clampThinkingLevel snapping requested levels to the nearest rung (ties break upward) and lowestThinkingLevel for reasoning_effort: "none", so setThinkingBudgetZeroIfSupported sets the floor level on Gemini 3+ instead of zeroing thinkingBudget (#6280)
  • feat: Bifrost overhead latency accounting: upstream_latency and overhead_latency on BifrostResponseExtraFields (PopulateOverheadLatency, BifrostContextKeyRequestStartTime, populateLatencyExtraFields so logging plugins see both at hook time); per-phase overhead spans across the request pipeline (queue-wait, attribute-population, convertor, request-marshal, response-parse, handle-setup, pipeline-pre, pipeline-post, worker-setup, key-pool, Bedrock request-sign and credentials-fetch, response-finalize) with StampWorkerHandoff on ChannelMessage.sentAt; lock-free stream overhead accumulators for per-chunk parse, conversion and backpressure installed via ResetStreamOverhead, StampStreamTransport for the outbound marshal and client-write time, and defaultSSEDataReader.ReadDataLine attributing socket reads to upstream; and IsOverheadBreakdownSpan, WithoutOverheadBreakdownSpans and the OverheadSpanConsumer interface so breakdown spans stay out of connectors that do not opt in (#5533, #6388, #6389, #6433, #6470, #6495)
  • feat: input/output/additional cost split (BifrostCost) on inference usages, extended to speech, transcription and OCR usages
  • feat: Notification, NotificationInput, NotificationSeverity, NotificationAudience and the NotificationPublisher function type for the dashboard notification center (#6207)
  • feat: BifrostContextKeySkipModelCheck short-circuits the virtual key model allowlist for evaluate-only requests such as /inspect while keeping every other governance rule (#6479)
  • feat: HarnessSessionHeaders and MaxSessionIDLength so Claude Code, Codex CLI and OpenCode session headers can fall back into the session ID (#6333)
  • feat: RedactSensitiveHeaders, with IsSensitiveHeader extended to Cloudflare Access (cf-access-*), AWS ALB OIDC (x-amzn-oidc-*) and generic jwt/assertion headers (#6371)
  • feat: ResponsesResponseError.Type and a shared Responses stream-error normalizer so terminal error/response.failed events inside an HTTP 200 Azure SSE stream surface as errors with their nested type, code and message on both create-stream and retrieve-stream paths (thanks @​dani29!) (#6302)
  • feat: ServiceTier on StreamAccumulatorResult, with Anthropic's service_tier from message_start latched onto the final chunk of chat and Responses streams (#6236)
  • feat: OpenRouter speech and transcription through the OpenAI-compatible audio handlers instead of returning unsupported-operation errors (#5734)
  • fix: preserve max_tokens for OpenCode-compatible chat endpoints (thanks @​Alex-wangyang!) (#6458)
  • fix: HuggingFace chat streaming completed with zero tokens and therefore zero cost while non-streaming calls on the same models priced correctly, for two reasons: HuggingFace was listed as a provider that omits the [DONE] marker (it sends one), which made the shared OpenAI streaming loop break on the first finish_reason and discard the trailing usage-only chunk that several router inference providers emit; and stream_options.include_usage never reached the router because the shared streaming handler returns early when a provider supplies a custom request converter. Both are corrected, and an explicit stream_options from the caller still wins (thanks @​elliottrabac!) (#6478)
  • fix: preserve the caller's JSON Schema key order for structured outputs - ChatParameters.UnmarshalJSON holds response_format as raw bytes and the new ChatResponseFormat reader splices them verbatim into OpenAI, Anthropic, Bedrock, Gemini (unless a union type array needs normalizing) and Cohere requests, and ResponsesTextConfigFormatJSONSchema re-encodes in the decoded key sequence, because OpenAI structured outputs generate fields in the declared order and a re-sorted schema silently changes model behavior (#6235)
  • fix: open reasoning stream items that carry both an encrypted payload and a visible summary as thinking blocks instead of redacted_thinking on the Anthropic egress, with isReasoningItem and reasoningPayloadAndSummary shared by the native-reasoning and misclassified-function-call branches (#6292)
  • fix: replayed thinking blocks through the Anthropic ingress with a bedrock/ model prefix: content-less tool_result blocks are kept, interleaved text/tool-use/thinking order is preserved by the grouped converter, incomplete maps to error on Converse toolResult.status, and buffered reasoning is consumed by the item that owns it, so multi-turn tool use no longer wedges (#6346)
  • fix: Gemini/Vertex HTTP 400s on Claude Code traffic routed through /anthropic/v1/messages: trailing assistant prefills are trimmed on both the Responses and chat paths, mid-conversation system messages are inlined in place instead of hoisted into systemInstruction, and AnthropicMessageResponse gains ExtraFields (#6363)
  • fix: alias Bedrock toolUseId/toolResultId values longer than 64 characters or outside [a-zA-Z0-9_.:-] (such as Gemini thought-signature IDs) with a deterministic hash prefix, applied identically on tool_use and tool_result in both the Responses and chat converters (#6300)

... (truncated)

Commits
  • 6d60595 core changelog for the release cut (#6605) --skip-ci
  • ce56d2d core changelog (#6603)
  • b36efdb core changelog
  • 9157baf core version bump (#6601) --skip-core-test
  • 02aee90 core version bump (#6599)
  • 16d4220 docs: document KMS-encrypted S3 buckets for log object storage (#6497)
  • e4a7d3c fix: unsupported reasoning signature to be stripped (#6593)
  • 935e759 fix: unsupported reasoning signature to be stripped
  • 1cd3635 fix: clear passthrough for non claude models in non native claude model provi...
  • 141e9ed fix: clear passthrough for non claude models in non native claude model provi...
  • Additional commits viewable in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Aug 31, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner August 31, 2026 23:15
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Aug 31, 2026
@github-actions github-actions Bot closed this Aug 31, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

Bumps [github.com/maximhq/bifrost/core](https://github.com/maximhq/bifrost) from 1.7.13 to 1.8.4.
- [Release notes](https://github.com/maximhq/bifrost/releases)
- [Changelog](https://github.com/maximhq/bifrost/blob/dev/docs/release-cadence.mdx)
- [Commits](maximhq/bifrost@core/v1.7.13...core/v1.8.4)

---
updated-dependencies:
- dependency-name: github.com/maximhq/bifrost/core
  dependency-version: 1.8.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/go_modules/authbridge/authlib/github.com/maximhq/bifrost/core-1.8.4 branch from fbd8325 to d5087bf Compare September 1, 2026 13:03
Auto-tidied by dependabot-tidy workflow to keep cmd/* go.sum
files in sync with authlib after a Dependabot bump.

Signed-off-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@github-actions github-actions Bot closed this Sep 1, 2026
@github-actions github-actions Bot reopened this Sep 1, 2026
@github-project-automation github-project-automation Bot moved this from New/ToDo to Done in Rossoctl Issue Prioritization Sep 1, 2026
huang195 added a commit that referenced this pull request Sep 1, 2026
bifrost/core v1.8.0 raised its own go directive to 1.27.0, which Go
propagates into every module in the workspace. #830 (v1.8.4) therefore
rewrote 'go 1.26.5' to 'go 1.27.0' in all seven go.mod files and failed CI
against go.work, which still says 1.26.5.

Adopting v1.8.x is a Go 1.27 migration rather than a dependency bump: it
needs authbridge/go.work bumped and the four digest-pinned
golang:1.26-alpine builders in cmd/*/Dockerfile moved to 1.27. Those set
GOWORK=off but not GOTOOLCHAIN, so they would not fail — they would silently
download the 1.27 toolchain mid-build and ship images where a pinned 1.26
base bootstraps an unpinned 1.27.

Expressed as a version range rather than update-types so v1.7.x patches keep
flowing; #840 takes v1.7.15, the newest release still on go 1.26.5. There is
no API break waiting — v1.8.4 was built and tested against authlib with
go.work at 1.27.0 and the full suite passed — so this gates only the
toolchain decision.

Applied to the three directories that require bifrost and have a Dependabot
entry: authlib directly, authbridge-proxy and authbridge-envoy indirectly via
authlib.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: Hai Huang <huang195@gmail.com>
@huang195

huang195 commented Sep 1, 2026

Copy link
Copy Markdown
Member

Superseded by #840, which takes v1.7.15 instead — the last release that does not force a Go toolchain migration.

Why this failed: bifrost v1.8.0 raised its own go directive to 1.27.0, and Go propagates that into every module in the workspace. So this PR rewrote go 1.26.5go 1.27.0 in all seven go.mod files while authbridge/go.work stayed at 1.26.5:

go: module . listed in go.work file requires go >= 1.27.0,
    but go.work lists go 1.26.5

That also explains the odd file list here — seven go.mod edits but only three matching go.sum, because most modules changed only their go directive.

The version boundary:

bifrost/core go directive
v1.7.13 (current) go 1.26.5
v1.7.14, v1.7.15 go 1.26.5
v1.8.0 → v1.8.4 go 1.27.0

v1.7.15 gets two patch releases with no toolchain change. Dependabot only proposes the newest version, so that middle ground never surfaced.

What v1.8.x would actually cost — not the one-line go.work bump it looks like. Also the four digest-pinned golang:1.26-alpine builders in cmd/authbridge-{envoy,proxy,praxis,cpex}/Dockerfile. Those set GOWORK=off but not GOTOOLCHAIN, so they would not fail — they would silently download the 1.27 toolchain mid-build and ship images where a pinned 1.26 base bootstraps an unpinned 1.27. Plus every developer moving to Go 1.27.0.

And it buys nothing today: authlib touches exactly three bifrost symbols — bschemas.ModelProvider, bschemas.Anthropic, bschemas.OpenAI — in one six-line function in plugins/contextguru/plugin.go. Nothing in bifrost 1.8 is reachable from our code, and this is not a security update.

Good news for later: I built and tested v1.8.4 locally with go.work at 1.27.0 and the full authlib suite passed (48 packages). There is no API break waiting — whenever the Go 1.27 move happens deliberately, it is purely a toolchain exercise.

#838 gates >=1.8.0 in .github/dependabot.yml so v1.8.x is not re-proposed weekly while 1.7.x patches keep flowing.

Assisted-By: Claude Code

@huang195 huang195 closed this Sep 1, 2026
@dependabot
dependabot Bot deleted the dependabot/go_modules/authbridge/authlib/github.com/maximhq/bifrost/core-1.8.4 branch September 1, 2026 13:47
huang195 added a commit that referenced this pull request Sep 1, 2026
Supersedes #830, which proposed v1.8.4. bifrost v1.8.0 raised its go
directive to 1.27.0, and Go propagates that into every module in the
workspace, so Dependabot's PR rewrote `go 1.26.5` to `go 1.27.0` in all seven
go.mod files while authbridge/go.work stayed at 1.26.5. CI failed with:

	go: module . listed in go.work file requires go >= 1.27.0,
	    but go.work lists go 1.26.5

v1.7.15 is the last release still on go 1.26.5, so this takes two patch
releases with no toolchain change. Verified: every module's go directive and
go.work are untouched, all modules build and vet, and the full authlib suite
passes (48 packages).

Adopting v1.8.x is a Go 1.27 migration rather than a dependency bump. It
needs authbridge/go.work bumped AND the four digest-pinned `golang:1.26-alpine`
builders in cmd/*/Dockerfile moved to 1.27 — those set GOWORK=off but not
GOTOOLCHAIN, so they would not fail, they would silently download the 1.27
toolchain mid-build and ship images where a pinned 1.26 base bootstraps an
unpinned 1.27. It also commits every developer to Go 1.27.0, roughly a month
old at time of writing.

None of that buys anything today: authlib touches exactly three bifrost
symbols — bschemas.ModelProvider, bschemas.Anthropic and bschemas.OpenAI — in
one six-line function in plugins/contextguru/plugin.go. Nothing in bifrost 1.8
is reachable from our code, and #830 is not a security update.

The code side of v1.8.x is already clear, for whenever the toolchain move
happens deliberately: v1.8.4 was built and tested locally with go.work at
1.27.0 and the full authlib suite passed, so there is no API break waiting.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: Hai Huang <huang195@gmail.com>
huang195 added a commit that referenced this pull request Sep 1, 2026
bifrost/core v1.8.0 raised its own go directive to 1.27.0, which Go
propagates into every module in the workspace. #830 (v1.8.4) therefore
rewrote 'go 1.26.5' to 'go 1.27.0' in all seven go.mod files and failed CI
against go.work, which still says 1.26.5.

Adopting v1.8.x is a Go 1.27 migration rather than a dependency bump: it
needs authbridge/go.work bumped and the four digest-pinned
golang:1.26-alpine builders in cmd/*/Dockerfile moved to 1.27. Those set
GOWORK=off but not GOTOOLCHAIN, so they would not fail — they would silently
download the 1.27 toolchain mid-build and ship images where a pinned 1.26
base bootstraps an unpinned 1.27.

Expressed as a version range rather than update-types so v1.7.x patches keep
flowing; #840 takes v1.7.15, the newest release still on go 1.26.5. There is
no API break waiting — v1.8.4 was built and tested against authlib with
go.work at 1.27.0 and the full suite passed — so this gates only the
toolchain decision.

Applied to the three directories that require bifrost and have a Dependabot
entry: authlib directly, authbridge-proxy and authbridge-envoy indirectly via
authlib.

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: Hai Huang <huang195@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants