Skip to content

ipv6 support - #4895

Merged
akshaydeo merged 1 commit into
devfrom
07-03-ipv6_support
Jul 4, 2026
Merged

ipv6 support#4895
akshaydeo merged 1 commit into
devfrom
07-03-ipv6_support

Conversation

@akshaydeo

@akshaydeo akshaydeo commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR fixes IPv6 handling across several components where naive string splitting on : or hardcoded checks for only 127.0.0.1 would mangle IPv6 literals or miss IPv6 loopback addresses like ::1. It also consolidates loopback detection logic into reusable helpers and corrects the startup log message to use the actual bound address.

Changes

  • core/network/http.go: Replaced strings.Split(addr, ":")[0] with net.SplitHostPort for proxy bypass host extraction, correctly unwrapping IPv6 bracket notation (e.g., [::1]:8080::1).
  • framework/vectorstore/pinecone.go: Extracted a hostWithLocalScheme helper that uses net.SplitHostPort and net.ParseIP().IsLoopback() to detect loopback addresses, replacing hardcoded localhost/127.0.0.1 prefix checks. This now correctly handles IPv6 loopback ([::1]) for Pinecone Local connections.
  • transports/bifrost-http/handlers/mcpoauth2issuance.go: Introduced isLoopbackRedirectHost using net.ParseIP().IsLoopback(), replacing inline string comparisons. OAuth2 redirect URI matching and scheme validation now correctly recognize [::1] as a loopback per RFC 8252 §7.3.
  • transports/bifrost-http/handlers/utils.go: Rewrote isLocalhostOrigin to parse the origin URL and use net.ParseIP with IsLoopback()/IsUnspecified(), covering IPv6 literals and bracketed addresses instead of a series of strings.HasPrefix checks.
  • transports/bifrost-http/handlers/websocket.go: Replaced strings.LastIndex(host, ":") port stripping with net.SplitHostPort in isLocalhost, and uses net.ParseIP().IsLoopback() instead of an explicit ::1 string comparison.
  • transports/bifrost-http/server/server.go: Fixed the startup log to print the actual bound serverAddr rather than reconstructing it from s.Host and s.Port separately, which could produce a malformed URL for IPv6 hosts.
  • transports/Dockerfile / transports/Dockerfile.local: Changed the HEALTHCHECK command from http://127.0.0.1:${APP_PORT}/health to http://localhost:${APP_PORT}/health for compatibility with IPv6-only or dual-stack environments.
  • helm-charts/bifrost/values.yaml: Added a comment clarifying that host: 0.0.0.0 binds IPv4 interfaces only, and that :: should be used for dual-stack or IPv6-only clusters.

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • Providers/Integrations
  • Plugins
  • UI (React)
  • Docs

How to test

go test ./core/network/...
go test ./framework/vectorstore/...
go test ./transports/bifrost-http/...

To validate IPv6 loopback behavior specifically:

  • Configure a Pinecone Local instance bound to [::1] and confirm http:// is correctly prepended.
  • Issue an OAuth2 redirect with a redirect_uri using [::1] and confirm it is accepted as a loopback address.
  • Connect via WebSocket from an [::1] origin and confirm it is treated as localhost.
  • Run the Docker health check in an IPv6-only environment and confirm it resolves correctly.

Breaking changes

  • Yes
  • No

Security considerations

The OAuth2 redirect URI loopback detection now correctly includes ::1 per RFC 8252 §7.3, which allows IPv6 loopback redirect URIs with http:// scheme. This is intentional and spec-compliant. No previously rejected addresses are newly permitted beyond the IPv6 loopback literal.

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 32 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e36683df-4e64-4ab1-9a2a-78d1af525b50

📥 Commits

Reviewing files that changed from the base of the PR and between b9c5b2c and 252ecd8.

📒 Files selected for processing (10)
  • core/network/dialaddrhost_test.go
  • core/network/http.go
  • framework/vectorstore/pinecone.go
  • framework/vectorstore/pineconehost_test.go
  • helm-charts/bifrost/values.yaml
  • transports/bifrost-http/handlers/localhostcheck_test.go
  • transports/bifrost-http/handlers/mcpoauth2issuance.go
  • transports/bifrost-http/handlers/utils.go
  • transports/bifrost-http/handlers/websocket.go
  • transports/bifrost-http/server/server.go
📝 Walkthrough

Walkthrough

Host handling is reworked across proxy dialing, Pinecone store setup, OAuth2 redirect validation, CORS origin checks, and websocket origin checks to use net.SplitHostPort/net.ParseIP-based parsing instead of string prefix/split heuristics, correctly supporting IPv6 loopback forms. Related tests and minor logging/documentation updates accompany these changes.

Changes

IPv6-aware loopback/localhost detection

Layer / File(s) Summary
Proxy bypass host parsing fix
core/network/http.go, core/network/dialaddrhost_test.go
Adds dialAddrHost helper using net.SplitHostPort with bracket-trimming fallback, replacing naive colon-split host extraction for no_proxy bypass matching; adds corresponding tests.
Pinecone host scheme detection
framework/vectorstore/pinecone.go, framework/vectorstore/pineconehost_test.go
Introduces hostWithLocalScheme, used by both newPineconeStore and getHostWithScheme, to detect loopback hosts (including IPv6/port forms) via net.SplitHostPort/net.ParseIP and prefix them with http://; adds table-driven tests.
OAuth redirect loopback validation
transports/bifrost-http/handlers/mcpoauth2issuance.go, transports/bifrost-http/handlers/localhostcheck_test.go
Adds isLoopbackRedirectHost helper and uses it in redirect scheme validation (isAllowedRedirectScheme) and redirect URI matching (matchRedirectURI) to support loopback matching regardless of IP family, ignoring port; adds tests.
CORS and websocket origin checks
transports/bifrost-http/handlers/utils.go, transports/bifrost-http/handlers/websocket.go, transports/bifrost-http/handlers/localhostcheck_test.go
Reworks IsOriginAllowed's localhost detection to parse origins as URLs and check hostname loopback/unspecified status via net.ParseIP; rewrites isLocalhost in websocket handling to use net.SplitHostPort and net.ParseIP.IsLoopback, removing prior empty-host allowance; adds tests.
Logging and Helm host documentation
transports/bifrost-http/server/server.go, helm-charts/bifrost/values.yaml
Updates startup log to print serverAddr directly instead of separate host/port formatting; adds a documentation comment about IPv4-only 0.0.0.0 binding above the Helm host value.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Client as Client/Browser
  participant Utils as isLocalhostOrigin / isLocalhost
  participant OAuth as isLoopbackRedirectHost
  participant NetPkg as net package
  participant Proxy as dialAddrHost / shouldBypassProxy

  Client->>Utils: request with Origin/host
  Utils->>NetPkg: url.Parse, SplitHostPort, ParseIP
  NetPkg-->>Utils: host, loopback status
  Utils-->>Client: allowed/denied

  Client->>OAuth: redirect URI
  OAuth->>NetPkg: ParseIP(hostname)
  NetPkg-->>OAuth: IsLoopback result
  OAuth-->>Client: scheme/match decision

  Client->>Proxy: outbound address
  Proxy->>NetPkg: SplitHostPort(addr)
  NetPkg-->>Proxy: extracted host
  Proxy-->>Client: proxy bypass decision
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is relevant but too generic to clearly describe the main IPv6 fixes. Use a more specific title that names the primary change, such as IPv6 handling fixes across network and HTTP components.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description follows the template well and covers the summary, changes, testing, breaking changes, security, and checklist.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 07-03-ipv6_support

Comment @coderabbitai help to get the list of available commands.

@akshaydeo
akshaydeo marked this pull request as ready for review July 3, 2026 21:45
@akshaydeo
akshaydeo requested a review from a team as a code owner July 3, 2026 21:46
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@greptile-apps

greptile-apps Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Confidence Score: 5/5

Safe to merge; all helper functions produce correct results for the bracketed IPv6 forms users realistically configure, and the OAuth2/WebSocket/CORS changes are spec-compliant.

Every changed code path is backed by new table-driven tests covering bracketed, unbracketed, half-bracketed, mapped, and unspecified address variants. The one minor gap — bare "::1" input to hostWithLocalScheme producing "http://::1" rather than "http://[::1]" — is an unlikely configuration edge case that does not affect the common [::1]:port form.

framework/vectorstore/pinecone.go — the bare "::1" (no brackets, no port) code path in hostWithLocalScheme.

Important Files Changed

Filename Overview
core/network/http.go Replaces naive colon-split with net.SplitHostPort in the proxy bypass path; the dialAddrHost helper is correct and handles all IPv6 edge cases.
framework/vectorstore/pinecone.go hostWithLocalScheme correctly handles [::1] and [::1]:port, but a bare "::1" input (no brackets, no port) produces "http://::1", which is not a valid URL per RFC 3986.
transports/bifrost-http/handlers/mcpoauth2issuance.go isLoopbackRedirectHost correctly uses url.Hostname() (strips brackets) + net.ParseIP().IsLoopback(); RFC 8252 §7.3 compliance for IPv6 looks correct.
transports/bifrost-http/handlers/utils.go Rewrites isLocalhostOrigin using url.Parse + net.ParseIP; behavioral expansion (port-less origins, unspecified IPs) was flagged and discussed in prior review threads.
transports/bifrost-http/handlers/websocket.go isLocalhost correctly uses SplitHostPort + bracket stripping for IPv6; empty-host now returns false (tightening prior behavior where "" was treated as localhost).
transports/bifrost-http/handlers/localhostcheck_test.go Comprehensive table tests for isLocalhost, isLocalhostOrigin, and the OAuth2 redirect URI helpers — covers half-bracketed, mapped, unspecified, and non-loopback cases.
transports/bifrost-http/server/server.go Fixes startup log to use net.JoinHostPort-derived serverAddr, correctly producing "http://[::]:8080" for IPv6 instead of the previous mangled "http://:::8080".
helm-charts/bifrost/values.yaml Adds a comment clarifying that 0.0.0.0 is IPv4-only and :: is needed for dual-stack/IPv6-only — documentation only, no behavior change.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Incoming host/addr string] --> B{Contains port?}
    B -- "yes (e.g. [::1]:8080)" --> C[net.SplitHostPort strips brackets → ::1]
    B -- "no (e.g. [::1])" --> D[strings.Trim brackets → ::1]
    B -- "no (e.g. ::1 bare)" --> E[Trim no-op → ::1]
    C --> F{net.ParseIP + IsLoopback?}
    D --> F
    E --> F
    F -- yes --> G[Apply http:// prefix or allow WebSocket/CORS/proxy-bypass]
    F -- no --> H[Use https / deny / route through proxy]

    subgraph Callers
        I[core/network: dialAddrHost → no-proxy bypass]
        J[framework/vectorstore: hostWithLocalScheme → Pinecone Local TLS skip]
        K[handlers/mcpoauth2issuance: isLoopbackRedirectHost → RFC 8252 §7.3]
        L[handlers/websocket: isLocalhost → WS origin check]
        M[handlers/utils: isLocalhostOrigin → CORS allow]
    end

    A --> I
    A --> J
    A --> K
    A --> L
    A --> M
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Incoming host/addr string] --> B{Contains port?}
    B -- "yes (e.g. [::1]:8080)" --> C[net.SplitHostPort strips brackets → ::1]
    B -- "no (e.g. [::1])" --> D[strings.Trim brackets → ::1]
    B -- "no (e.g. ::1 bare)" --> E[Trim no-op → ::1]
    C --> F{net.ParseIP + IsLoopback?}
    D --> F
    E --> F
    F -- yes --> G[Apply http:// prefix or allow WebSocket/CORS/proxy-bypass]
    F -- no --> H[Use https / deny / route through proxy]

    subgraph Callers
        I[core/network: dialAddrHost → no-proxy bypass]
        J[framework/vectorstore: hostWithLocalScheme → Pinecone Local TLS skip]
        K[handlers/mcpoauth2issuance: isLoopbackRedirectHost → RFC 8252 §7.3]
        L[handlers/websocket: isLocalhost → WS origin check]
        M[handlers/utils: isLocalhostOrigin → CORS allow]
    end

    A --> I
    A --> J
    A --> K
    A --> L
    A --> M
Loading

Reviews (4): Last reviewed commit: "ipv6 support" | Re-trigger Greptile

Comment thread transports/Dockerfile Outdated
Comment thread transports/bifrost-http/handlers/utils.go

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
transports/bifrost-http/handlers/mcpoauth2issuance.go (1)

687-691: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Comment/code mismatch: host is not actually compared for loopback matches. The inline comment states "match scheme + host (without port) + path", but the condition only checks parsed.Scheme == rParsed.Scheme && parsed.Path == rParsed.Path — the host is ignored, so a registered http://127.0.0.1/cb will match a candidate http://[::1]/cb. Treating loopback variants as interchangeable is defensible per RFC 8252 §7.3 (loopback host/port flexibility), but please align the comment with the behavior (or add the host check if cross-loopback matching is unintended).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@transports/bifrost-http/handlers/mcpoauth2issuance.go` around lines 687 -
691, The loopback redirect check in mcpoauth2issuance.go is not comparing the
host even though the comment says it does; update the logic around the loopback
branch in the redirect matching helper to either add an explicit host comparison
between parsed and rParsed or revise the inline comment to match the intended
cross-loopback behavior. Use the existing loopback matching code near
isLoopbackRedirectHost and the parsed/rParsed scheme-path comparison to keep the
behavior and comment consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@transports/bifrost-http/handlers/mcpoauth2issuance.go`:
- Around line 654-657: Move the doc comments so each one is directly attached to
its matching function: place the `matchRedirectURI` comment immediately above
`matchRedirectURI`, and move the `isAllowedRedirectScheme` comment so it sits
immediately above `isAllowedRedirectScheme` in `mcpoauth2issuance.go`. Keep the
descriptions unchanged, just reorder them to match their symbols.

In `@transports/Dockerfile`:
- Line 109: The healthcheck probe in the Dockerfile is using localhost, which
can resolve to IPv6 first and make the check flaky in this image. Update the CMD
used for the healthcheck to probe 127.0.0.1 instead, or otherwise force IPv4, so
the check is consistent with the container listening on APP_HOST via 0.0.0.0.

In `@transports/Dockerfile.local`:
- Line 112: The healthcheck command in the Dockerfile.local uses localhost,
which can resolve to ::1 and make the probe depend on resolver order. Update the
healthcheck in the CMD line to target 127.0.0.1 instead, keeping the same
APP_PORT and /health path so the check is consistently bound to IPv4 loopback.

---

Outside diff comments:
In `@transports/bifrost-http/handlers/mcpoauth2issuance.go`:
- Around line 687-691: The loopback redirect check in mcpoauth2issuance.go is
not comparing the host even though the comment says it does; update the logic
around the loopback branch in the redirect matching helper to either add an
explicit host comparison between parsed and rParsed or revise the inline comment
to match the intended cross-loopback behavior. Use the existing loopback
matching code near isLoopbackRedirectHost and the parsed/rParsed scheme-path
comparison to keep the behavior and comment consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b697e786-6f5c-467b-a132-dd674a63101d

📥 Commits

Reviewing files that changed from the base of the PR and between 6484317 and 1394ee1.

📒 Files selected for processing (9)
  • core/network/http.go
  • framework/vectorstore/pinecone.go
  • helm-charts/bifrost/values.yaml
  • transports/Dockerfile
  • transports/Dockerfile.local
  • transports/bifrost-http/handlers/mcpoauth2issuance.go
  • transports/bifrost-http/handlers/utils.go
  • transports/bifrost-http/handlers/websocket.go
  • transports/bifrost-http/server/server.go

Comment thread transports/bifrost-http/handlers/mcpoauth2issuance.go
Comment thread transports/Dockerfile Outdated
Comment thread transports/Dockerfile.local Outdated
@akshaydeo
akshaydeo force-pushed the 07-03-ipv6_support branch from 1394ee1 to e7b88af Compare July 3, 2026 23:10
@coderabbitai
coderabbitai Bot requested review from danpiths and roroghost17 July 3, 2026 23:11

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@transports/bifrost-http/handlers/localhostcheck_test.go`:
- Around line 5-31: The localhost check currently treats an empty host as
trusted, which allows a malformed WebSocket origin check to pass. Update
isLocalhost in the localhost-check logic to fail closed by returning false for
an empty Host value, and adjust TestIsLocalhost in localhostcheck_test.go to
expect false for the empty-string case while keeping the existing localhost/IP
cases unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: efc8aea5-2e06-46cf-8235-18e6ca2bfe95

📥 Commits

Reviewing files that changed from the base of the PR and between 1394ee1 and e7b88af.

📒 Files selected for processing (12)
  • core/network/dialaddrhost_test.go
  • core/network/http.go
  • framework/vectorstore/pinecone.go
  • framework/vectorstore/pineconehost_test.go
  • helm-charts/bifrost/values.yaml
  • transports/Dockerfile
  • transports/Dockerfile.local
  • transports/bifrost-http/handlers/localhostcheck_test.go
  • transports/bifrost-http/handlers/mcpoauth2issuance.go
  • transports/bifrost-http/handlers/utils.go
  • transports/bifrost-http/handlers/websocket.go
  • transports/bifrost-http/server/server.go
✅ Files skipped from review due to trivial changes (3)
  • helm-charts/bifrost/values.yaml
  • transports/Dockerfile.local
  • transports/bifrost-http/server/server.go
🚧 Files skipped from review as they are similar to previous changes (6)
  • transports/Dockerfile
  • transports/bifrost-http/handlers/websocket.go
  • framework/vectorstore/pinecone.go
  • core/network/http.go
  • transports/bifrost-http/handlers/mcpoauth2issuance.go
  • transports/bifrost-http/handlers/utils.go

Comment thread transports/bifrost-http/handlers/localhostcheck_test.go
@akshaydeo
akshaydeo force-pushed the 07-03-ipv6_support branch from e7b88af to b9c5b2c Compare July 4, 2026 00:48

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@transports/bifrost-http/handlers/websocket.go`:
- Around line 78-84: The host validation in the WebSocket upgrade path is too
permissive because the current bracket removal in the loopback check can
normalize malformed bracketed hosts into valid IPs. Update the host handling in
the websocket.go logic around the loopback/upgrade validation to only accept
exactly paired brackets, and treat bracketed values as IP literals before
permitting the upgrade. Keep the behavior fail-closed for malformed inputs by
rejecting cases like partially bracketed hosts rather than trimming them into a
valid address.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 19b5e17d-03a0-4bf8-af9f-4d748a19a091

📥 Commits

Reviewing files that changed from the base of the PR and between e7b88af and b9c5b2c.

📒 Files selected for processing (10)
  • core/network/dialaddrhost_test.go
  • core/network/http.go
  • framework/vectorstore/pinecone.go
  • framework/vectorstore/pineconehost_test.go
  • helm-charts/bifrost/values.yaml
  • transports/bifrost-http/handlers/localhostcheck_test.go
  • transports/bifrost-http/handlers/mcpoauth2issuance.go
  • transports/bifrost-http/handlers/utils.go
  • transports/bifrost-http/handlers/websocket.go
  • transports/bifrost-http/server/server.go
✅ Files skipped from review due to trivial changes (2)
  • helm-charts/bifrost/values.yaml
  • transports/bifrost-http/server/server.go
🚧 Files skipped from review as they are similar to previous changes (7)
  • core/network/dialaddrhost_test.go
  • framework/vectorstore/pineconehost_test.go
  • core/network/http.go
  • transports/bifrost-http/handlers/localhostcheck_test.go
  • transports/bifrost-http/handlers/utils.go
  • transports/bifrost-http/handlers/mcpoauth2issuance.go
  • framework/vectorstore/pinecone.go

Comment thread transports/bifrost-http/handlers/websocket.go Outdated
@akshaydeo
akshaydeo force-pushed the 07-03-ipv6_support branch from b9c5b2c to 252ecd8 Compare July 4, 2026 01:16

akshaydeo commented Jul 4, 2026

Copy link
Copy Markdown
Contributor Author

Merge activity

  • Jul 4, 1:18 AM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jul 4, 1:19 AM UTC: @akshaydeo merged this pull request with Graphite.

@akshaydeo
akshaydeo merged commit 669f6e1 into dev Jul 4, 2026
15 of 16 checks passed
@akshaydeo
akshaydeo deleted the 07-03-ipv6_support branch July 4, 2026 01:19
yangtuooc added a commit to yangtuooc/bifrost that referenced this pull request Jul 4, 2026
* 'dev' of https://github.com/maximhq/bifrost:
  ipv6 support (maximhq#4895)
  docs: add virtual key expiry support docs (maximhq#4889)
  test: add Postman e2e collection and runner for virtual key expiry validation and enforcement (maximhq#4888)
  feat: add expiry field to virtual keys (maximhq#4887)
  fix: converts thinking to disabled if tool choice is required for deepseek (maximhq#4861)
  chore: adds docs for deepseek provider (maximhq#4854)
  chore: adds tests for deepseek provider (maximhq#4853)
  feat: adds deepseek provider (maximhq#4852)
  fix: cost for image generation or image edit streaming (maximhq#4802)
  feat: add `BedrockMantleKeyConfig` support to key hashing, schema/table mapping, and sensitive field clearing (maximhq#4886)
  fix: skip O(N) reference refresh on request-time rate-limit/budget reset (maximhq#4883)
  refactor: simplify Responses lifecycle permissions to require explicit per-verb flags and expose them in UI (maximhq#4880)
  fix: append datasheet models for incomplete list models call (maximhq#4879)

# Conflicts:
#	ui/app/workspace/providers/fragments/allowedRequestsFields.tsx
#	ui/app/workspace/virtual-keys/views/virtualKeyDetailsSheet.tsx
#	ui/app/workspace/virtual-keys/views/virtualKeySheet.tsx
#	ui/app/workspace/virtual-keys/views/virtualKeysTable.tsx
#	ui/components/ui/datePickerWithRange.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants