Skip to content

build(deps): Bump github.com/maximhq/bifrost/core from 1.7.0 to 1.7.13 in /authbridge/authlib - #771

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

build(deps): Bump github.com/maximhq/bifrost/core from 1.7.0 to 1.7.13 in /authbridge/authlib#771
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/go_modules/authbridge/authlib/github.com/maximhq/bifrost/core-1.7.11

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

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

Release notes

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

Core v1.7.13

Core Release v1.7.13

  • feat: support Gemini's server-side toolCall/toolResponse parts with thoughtSignature round-trip fidelity - server-side search rounds now surface as web_search_call items carrying their own call ID and queries, unmapped tool types are preserved on the native round-trip instead of being dropped, and each thoughtSignature appears exactly once across the reconstructed parts so Gemini accepts the replayed turn
  • feat: async 3D generation on Runware via /videos plus a raw /runware_passthrough route - taskType is now read from extra_params so any Runware async task can be driven through /videos (the 16:9 1080p width/height defaults now apply only to videoInference), outputs.files[].url is surfaced as VideoOutput URLs with the content type derived from the file extension, and the passthrough route forwards raw task arrays for capabilities with no first-class Bifrost surface such as upscaling and background removal
  • feat: surface Runware's provider-reported per-task cost across image, video/3D and passthrough so pricing uses the exact figure verbatim instead of a datasheet estimate - this matters for task types like 3D that have no datasheet rate; when no cost is reported the behavior is unchanged
  • feat: send s3:// image and document references to Bedrock Converse as the s3Location source member instead of downloading the bytes and re-uploading them - Converse resolves the object itself, which skips a round trip and the 25 MiB inline cap entirely. Image format is derived from the object extension since nothing is fetched and there is no Content-Type to read, and an extension-less object is rejected up front rather than producing an opaque 400
  • feat: resolve Vertex URL sources per model family rather than inlining everything - a gs:// URI is now forwarded to Gemini/Gemma as fileData.fileUri (the documented form, resolved under the caller's own project IAM, and the only thing that keeps multi-hundred-MB video inputs viable) and read from Cloud Storage with the request key's own Google credentials for Claude-on-Vertex, which accepts base64 sources only. http(s) is still always fetched: forwarding one was measured against the harness and Vertex rejected every endpoint shape with URL_REJECTED-REJECTED_FC_TOO_MANY_PENDING
  • fix: allow Vertex AI to send function declarations and a Google Search tool in the same request without includeServerSideToolInvocations - Vertex accepts the combination natively, so Google Search was being dropped for no reason, and search localization via RetrievalConfig.LatLng is now preserved when both tool types are present
  • fix: prefer function declarations over Google Search when tool combination is disabled on Gemini - Google's tool combination is Preview and Gemini 3 only (https://ai.google.dev/gemini-api/docs/generate-content/tool-combination), so on every other model one of the two tool types has to be dropped. Function declarations now win: they carry the caller's own tools, or the ones Bifrost's MCP gateway synthesized from their connected servers, and dropping those leaves the model unable to invoke them at all while it answers as though the capabilities never existed. Dropping Google Search only costs grounding, so the model still answers, just without citations. One is disabled, the other is degraded. Set include_server_side_tool_invocations to send both. A lone Google Search tool still converts back correctly, and retrievalConfig is only emitted when a search tool actually survived conversion Breaking on the Gemini API surface: a request carrying both function declarations and Google Search without include_server_side_tool_invocations previously kept Google Search and dropped the function declarations. It now does the opposite. Set include_server_side_tool_invocations to true to send both, which is supported on Gemini 3 models. Vertex is unaffected, since it accepts the combination natively and drops neither.
  • fix: always emit a Gemini candidate carrying its finish reason on generateContent, even when nothing visible was generated - a thinking model that spends its whole output budget before emitting a token is a successful 200 with an empty answer, but Candidates is omitempty, so dropping that candidate produced a body with no candidates key at all and left a lone usageMetadata object that every Gemini-shaped client dereferences blind
  • fix: drop payload-free Gemini parts when assembling a candidate - every Part field is omitempty, so such a part marshals to exactly {}; the harness observed one on the wire when a transcription request for an unintelligible tone came back as parts:[{}], where it is noise a client will try to read and it masks the contentless case by making the parts slice look non-empty
  • fix: accept a bare model identifier on Bedrock rerank by synthesizing the foundation-model ARN from the resolved region - Rerank is the one Bedrock surface that names its model by ARN rather than by bare ID, so all three rerank drop-ins in the provider harness 400'd on amazon.rerank-v1:0. The partition is derived from the region (aws, aws-cn, aws-us-gov) so GovCloud and China build a correct ARN, and an explicit ARN still passes through untouched
  • fix: stop stripping file_url from OpenAI-shaped chat file blocks on marshal - dropping it produced {"type":"file","file":{}} and an upstream complaint about a missing file_id, which hid the fact that a source had been discarded. Providers that cannot take a URL now say so by name, and any OpenAI-compatible endpoint that does accept one keeps working without a Bifrost change
  • fix: leave URL content sources Bifrost cannot download in place on the OpenAI and native-Anthropic paths instead of failing the request - only http(s) is fetched, and whether a gs://, s3:// or scheme-less reference is usable is the provider's call, so the source now travels as {"type":"url"} and the platform answers for itself

Installation

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

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

Core v1.7.12

Core Release v1.7.12

  • feat: support Gemini's server-side toolCall/toolResponse parts with thoughtSignature round-trip fidelity - server-side search rounds now surface as web_search_call items carrying their own call ID and queries, unmapped tool types are preserved on the native round-trip instead of being dropped, and each thoughtSignature appears exactly once across the reconstructed parts so Gemini accepts the replayed turn
  • feat: async 3D generation on Runware via /videos plus a raw /runware_passthrough route - taskType is now read from extra_params so any Runware async task can be driven through /videos (the 16:9 1080p width/height defaults now apply only to videoInference), outputs.files[].url is surfaced as VideoOutput URLs with the content type derived from the file extension, and the passthrough route forwards raw task arrays for capabilities with no first-class Bifrost surface such as upscaling and background removal
  • feat: surface Runware's provider-reported per-task cost across image, video/3D and passthrough so pricing uses the exact figure verbatim instead of a datasheet estimate - this matters for task types like 3D that have no datasheet rate; when no cost is reported the behavior is unchanged
  • feat: send s3:// image and document references to Bedrock Converse as the s3Location source member instead of downloading the bytes and re-uploading them - Converse resolves the object itself, which skips a round trip and the 25 MiB inline cap entirely. Image format is derived from the object extension since nothing is fetched and there is no Content-Type to read, and an extension-less object is rejected up front rather than producing an opaque 400
  • feat: resolve Vertex URL sources per model family rather than inlining everything - a gs:// URI is now forwarded to Gemini/Gemma as fileData.fileUri (the documented form, resolved under the caller's own project IAM, and the only thing that keeps multi-hundred-MB video inputs viable) and read from Cloud Storage with the request key's own Google credentials for Claude-on-Vertex, which accepts base64 sources only. http(s) is still always fetched: forwarding one was measured against the harness and Vertex rejected every endpoint shape with URL_REJECTED-REJECTED_FC_TOO_MANY_PENDING
  • fix: allow Vertex AI to send function declarations and a Google Search tool in the same request without includeServerSideToolInvocations - Vertex accepts the combination natively, so Google Search was being dropped for no reason, and search localization via RetrievalConfig.LatLng is now preserved when both tool types are present
  • fix: prefer function declarations over Google Search when tool combination is disabled on Gemini - Google's tool combination is Preview and Gemini 3 only (https://ai.google.dev/gemini-api/docs/generate-content/tool-combination), so on every other model one of the two tool types has to be dropped. Function declarations now win: they carry the caller's own tools, or the ones Bifrost's MCP gateway synthesized from their connected servers, and dropping those leaves the model unable to invoke them at all while it answers as though the capabilities never existed. Dropping Google Search only costs grounding, so the model still answers, just without citations. One is disabled, the other is degraded. Set include_server_side_tool_invocations to send both. A lone Google Search tool still converts back correctly, and retrievalConfig is only emitted when a search tool actually survived conversion Breaking on the Gemini API surface: a request carrying both function declarations and Google Search without include_server_side_tool_invocations previously kept Google Search and dropped the function declarations. It now does the opposite. Set include_server_side_tool_invocations to true to send both, which is supported on Gemini 3 models. Vertex is unaffected, since it accepts the combination natively and drops neither.
  • fix: always emit a Gemini candidate carrying its finish reason on generateContent, even when nothing visible was generated - a thinking model that spends its whole output budget before emitting a token is a successful 200 with an empty answer, but Candidates is omitempty, so dropping that candidate produced a body with no candidates key at all and left a lone usageMetadata object that every Gemini-shaped client dereferences blind
  • fix: drop payload-free Gemini parts when assembling a candidate - every Part field is omitempty, so such a part marshals to exactly {}; the harness observed one on the wire when a transcription request for an unintelligible tone came back as parts:[{}], where it is noise a client will try to read and it masks the contentless case by making the parts slice look non-empty
  • fix: accept a bare model identifier on Bedrock rerank by synthesizing the foundation-model ARN from the resolved region - Rerank is the one Bedrock surface that names its model by ARN rather than by bare ID, so all three rerank drop-ins in the provider harness 400'd on amazon.rerank-v1:0. The partition is derived from the region (aws, aws-cn, aws-us-gov) so GovCloud and China build a correct ARN, and an explicit ARN still passes through untouched
  • fix: stop stripping file_url from OpenAI-shaped chat file blocks on marshal - dropping it produced {"type":"file","file":{}} and an upstream complaint about a missing file_id, which hid the fact that a source had been discarded. Providers that cannot take a URL now say so by name, and any OpenAI-compatible endpoint that does accept one keeps working without a Bifrost change
  • fix: leave URL content sources Bifrost cannot download in place on the OpenAI and native-Anthropic paths instead of failing the request - only http(s) is fetched, and whether a gs://, s3:// or scheme-less reference is usable is the provider's call, so the source now travels as {"type":"url"} and the platform answers for itself

Installation

</tr></table> 

... (truncated)

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Aug 17, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner August 17, 2026 23:15
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Aug 17, 2026
@evaline-ju

Copy link
Copy Markdown
Contributor

@dependabot rebase

Bumps [github.com/maximhq/bifrost/core](https://github.com/maximhq/bifrost) from 1.7.0 to 1.7.13.
- [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.0...core/v1.7.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title build(deps): Bump github.com/maximhq/bifrost/core from 1.7.0 to 1.7.11 in /authbridge/authlib build(deps): Bump github.com/maximhq/bifrost/core from 1.7.0 to 1.7.13 in /authbridge/authlib Aug 24, 2026
@dependabot
dependabot Bot force-pushed the dependabot/go_modules/authbridge/authlib/github.com/maximhq/bifrost/core-1.7.11 branch from c7b34d9 to d854b07 Compare August 24, 2026 14:47
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 Aug 24, 2026
@github-actions github-actions Bot reopened this Aug 24, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 24, 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.

@github-project-automation github-project-automation Bot moved this from New/ToDo to Done in Rossoctl Issue Prioritization Aug 24, 2026
huang195 added a commit that referenced this pull request Aug 24, 2026
Dependency updates that raise a module's minimum Go version fail the
Go CI (authlib) job. That job is the only one which reads go.work --
the cmd/* matrix and dependabot-tidy both set GOWORK=off -- so with
go.work pinned at 1.26.4 any module requiring >= 1.26.5 errors:

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

and it cascades to every module in the workspace, making the failure
look broader than the one dependency that caused it.

Dependabot only edits the directory it is updating, so it can never
fix go.work itself; the failure recurs on every toolchain-raising
bump. Currently blocking #771 (bifrost/core 1.7.0 -> 1.7.13).

Modules stay at go 1.26.4. go.work only needs to be >= the highest
module directive, so raising it alone is sufficient and stays valid
once modules move to 1.26.5. The authlib job leaves GOTOOLCHAIN at
its default (auto), so it fetches the newer toolchain as needed.

Signed-off-by: Hai Huang <huang195@gmail.com>

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
huang195 added a commit that referenced this pull request Aug 24, 2026
Dependency updates that raise a module's minimum Go version fail the
Go CI (authlib) job. That job is the only one which reads go.work --
the cmd/* matrix and dependabot-tidy both set GOWORK=off -- so with
go.work pinned at 1.26.4 any module requiring >= 1.26.5 errors:

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

and it cascades to every module in the workspace, making the failure
look broader than the one dependency that caused it.

Dependabot only edits the directory it is updating, so it can never
fix go.work itself; the failure recurs on every toolchain-raising
bump. Currently blocking #771 (bifrost/core 1.7.0 -> 1.7.13).

Modules stay at go 1.26.4. go.work only needs to be >= the highest
module directive, so raising it alone is sufficient and stays valid
once modules move to 1.26.5. The authlib job leaves GOTOOLCHAIN at
its default (auto), so it fetches the newer toolchain as needed.

Signed-off-by: Hai Huang <huang195@gmail.com>

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
huang195 added a commit that referenced this pull request Aug 24, 2026
Bumping go.work alone does not work, and the reason is worth recording:
actions/setup-go exports GOTOOLCHAIN=local itself and installs the
version named by go-version-file (authbridge/authlib/go.mod). A
toolchain pinned at 1.26.4 and forbidden from upgrading can never
satisfy a go.work that asks for 1.26.5:

  go: ../go.work requires go >= 1.26.5 (running go 1.26.4; GOTOOLCHAIN=local)

So the module directives have to move together with go.work: authlib's
is what selects the CI toolchain, and every module that replaces authlib
must not declare an older Go than authlib does.

All seven workspace modules go to 1.26.5 in one step. This is not
speculative -- #771 (bifrost/core 1.7.0 -> 1.7.13) already raises four
of them, and Dependabot cannot touch go.work, so the split would recur
on every toolchain-raising bump. Doing it deliberately keeps
GOTOOLCHAIN=local hermetic and makes #771 a clean rebase.

Checked: the CI matrix covers only proxy and envoy, both of which read
their own go.mod with GOWORK=off; dependabot-tidy reads the same
authlib/go.mod and follows automatically; the cmd Dockerfiles use
golang:1.26-alpine, and 1.26.7 is released.

Signed-off-by: Hai Huang <huang195@gmail.com>

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
@huang195

Copy link
Copy Markdown
Member

Not approving yet — this is blocked on a workspace file Dependabot cannot reach, and the fix is now open as #796.

The failure is not in the bifrost bump itself. Raising the module Go directives to 1.26.5 leaves authbridge/go.work at 1.26.4, and Go CI (authlib) is the only job that reads go.work (the cmd/* matrix and dependabot-tidy both set GOWORK: "off"), so it errors about four modules at once:

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

#796 raises go.work and all seven module directives to 1.26.5. Worth noting a subtlety found while fixing it: bumping go.work alone is not sufficient, because actions/setup-go exports GOTOOLCHAIN=local itself and installs the version named by authlib/go.mod — a pinned 1.26.4 toolchain can never satisfy a go.work asking for 1.26.5.

Once #796 merges, rebase this and the go 1.26.5 lines here become no-ops, leaving just the bifrost bump.

Assisted-By: Claude Code

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.

3 participants