chore: integrate upstream v1.0.0 into fork - #4
Conversation
**Description** Update codecov/codecov-action from v6.0.0 to v6.0.2 to fix GPG signature verification failure in CI: https://github.com/envoyproxy/ai-gateway/actions/runs/27152233348/job/80174344507?pr=2114 Signed-off-by: yxia216 <yxia216@bloomberg.net>
…envoyproxy#2114) **Description** ### 1. Extend OpenAI embedding API to support multimodal embeddings Gemini Embedding 2 is a multimodal embedding model, but the OpenAI embedding API only supports strings or token arrays as input. To support multimodal inputs (images, audio, video, PDF), we extended the `/v1/embeddings` endpoint with a `messages` field, following the https://github.com/vllm-project/vllm/blob/2a16ece2d342c0c154a4949ad317b521f8c04ec4/vllm/entrypoints/pooling/embed/protocol.py#L113 ### 2. Gemini Embedding 2 `embedContent` endpoint support Gemini Embedding 2 models (`gemini-embedding-2-*`) use the `embedContent` endpoint: https://cloud.google.com/vertex-ai/generative-ai/docs/embeddings/get-multimodal-embeddings, unlike older models (`text-embedding-004`, `gemini-embedding-001`) which use the `predict` endpoint. The translator auto-detects the endpoint based on model name. **`EmbeddingInputItem` is only supported with the predict endpoint.** The predict endpoint supports per-instance `task_type` and `title`: ```json { "instances": [ {"content": "query text", "task_type": "RETRIEVAL_QUERY"}, {"content": "doc text", "task_type": "RETRIEVAL_DOCUMENT", "title": "My Doc"} ] } ``` The `embedContent` endpoint does not support per-item task types — it accepts a single `content` with one global `taskType` via `embedContentConfig`. Accepting `EmbeddingInputItem` for `embedContent` would be misleading (users would expect per-item behavior), so we reject it with a clear error. Users should set `task_type` at the request level instead. **`task_type` limitation for `gemini-embedding-2`.** Per the doc: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/embeddings/get-multimodal-embeddings, `gemini-embedding-2` does not support the `task_type` field — the task must be included as a prompt instruction instead (e.g. `"task: search result | query: how to reset password"`). The API silently ignores `taskType` in `embedContentConfig`. We still send it if the user provides it, in case future `embedContent` models support it. **`embedContentConfig` vs deprecated top-level fields.** The REST API reference documents `taskType`, `outputDimensionality`, `autoTruncate` as deprecated top-level fields. The genai SDK v1.54+: https://github.com/googleapis/go-genai/blob/v1.54.0/models.go#L727 sends them via `embedContentConfig` instead. ### Batch processing limitation The Vertex AI REST API does not support batch embedding for `embedContent` models. Experimentally verified: 1. **`batchEmbedContents`** — 404 on all Vertex AI endpoints. This endpoint only exists on the Gemini API (`generativelanguage.googleapis.com`), not Vertex AI (`aiplatform.googleapis.com`). 2. **`embedContent` with `content` (singular)** — works, returns one embedding per request. 3. **`embedContent` with `contents` (plural)** — rejected. 4. **`embedContent` with multiple `parts`** — returns one aggregated embedding, not separate embeddings per part. `parts` are designed for combining modalities, not for batching. A possible workaround is fan-out (splitting batch inputs into multiple `embedContent` calls), but this is out of scope for the gateway. We expect Vertex AI to add `batchEmbedContents` support in the future. There should be little impact on performance: the inference engine is a batch processing engine regardless. Whether it receives a single request or batch requests, the engine batches internally. The only difference is whether the requests arrive in one HTTP call or multiple. --------- Signed-off-by: yxia216 <yxia216@bloomberg.net> Signed-off-by: hustxiayang <yangxiast@gmail.com> Co-authored-by: Dan Sun <dsun20@bloomberg.net> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io> Co-authored-by: Aaron Choo <achoo30@bloomberg.net>
**Description** Remove the deprecation banner from the 0.7 docs. **Related Issues/PRs (if applicable)** Related to: envoyproxy#2177 **Special notes for reviewers (if applicable)** N/A Signed-off-by: Ignasi Barrera <nacx@apache.org>
**Description** Update the compatibility matrix to specify EG v1.8.1+. Signed-off-by: Aaron Choo <achoo30@bloomberg.net>
…ners (envoyproxy#2194) **Description** Azure is strict about `scheme` header to be same as the TLS transport on which the request is being made. If the listener is an http listener, envoy forwards a request with `scheme: http` instead of `https`. This leads to requests getting dropped. The simple solution is to use `matchUpstream` which is what is being done in MCP backend listeners but missed in regular AI gateway route listeners. **Related Issues/PRs (if applicable)** Fixes envoyproxy#2095 Signed-off-by: Anurag Aggarwal <kanurag94@gmail.com>
…ackend HTTPRoute (envoyproxy#2134) **Description** When an `MCPRoute` has a `backendRef` with `securityPolicy.apiKey` configured (either via `secretRef` or `inline`), the controller resolves the secret and embeds the **plaintext API key** directly into the generated `HTTPRoute` resource. This happens in two places: 1. **Header injection** — the key is written as a literal value in an `HTTPRouteFilter` of type `RequestHeaderModifier` (e.g., `Authorization: Bearer <plaintext-token>`). 2. **Query parameter injection** — the key is appended to the URL path in a `URLRewrite` filter (e.g., `/mcp?api_key=<plaintext-token>`). fixes envoyproxy#2141 **Possible Solutions** 1. This can be solved for Header injection by using https://gateway.envoyproxy.io/docs/api/extension_types/#httpcredentialinjectionfilter. However, APIKey for `QueryParams` will still continue to be stored in plaintext. **Note: This PR implements this approach.** 2. By contrast, the existing `BackendSecurityPolicy` (used by `AIGatewayRoute` / `AIServiceBackend`) stores the resolved credential inside a Kubernetes **Secret** (the filter config secret consumed by extproc), which benefits from RBAC, encryption at rest, and audit logging. MCPRoute should adopt a similar approach. 3. Explore if we can add support for QueryParams in CredentialInjectionFilter in Envoy Gateway. **Affected code:** - internal/controller/mcp_route.go` **Testing** **Created MCPRoute with credential injection into Authorization header.** Credential got created and HTTPRouteFilter with Credential Injection filter got created. List tools and tool calls work as expected. Credential and filter got deleted on removing backend and deleting MCPRoute. **Created MCPRoute with credential injection into a custom header.** Credential got created and HTTPRouteFilter with Credential Injection filter got created. List tools and tool calls work as expected. Credential and filter got deleted on removing backend and deleting MCPRoute. **Created MCPRoute with inline API Key into Authorization header.** No change in behaviour. **Created MCPRoute with API Key injected into query param** No change in behaviour. --------- Signed-off-by: Aishwarya <aishwarya.raimule@nutanix.com> Signed-off-by: aishwaryaraimule21 <aishwarya.raimule@nutanix.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…oyproxy#2200) Bumps the go group with 7 updates in the / directory: | Package | From | To | | --- | --- | --- | | [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sdk-go) | `1.43.0` | `1.45.0` | | [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.17` | `1.32.18` | | [github.com/modelcontextprotocol/go-sdk](https://github.com/modelcontextprotocol/go-sdk) | `1.6.0` | `1.6.1` | | [github.com/openai/openai-go/v3](https://github.com/openai/openai-go) | `3.35.0` | `3.37.0` | | [github.com/tetratelabs/func-e](https://github.com/tetratelabs/func-e) | `1.5.0` | `1.6.0` | | [google.golang.org/api](https://github.com/googleapis/google-api-go-client) | `0.279.0` | `0.280.0` | | [google.golang.org/genai](https://github.com/googleapis/go-genai) | `1.57.0` | `1.58.0` | Updates `github.com/anthropics/anthropic-sdk-go` from 1.43.0 to 1.45.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-go/releases">github.com/anthropics/anthropic-sdk-go's releases</a>.</em></p> <blockquote> <h2>v1.45.0</h2> <h2>1.45.0 (2026-05-21)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.44.1...v1.45.0">v1.44.1...v1.45.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (<a href="https://github.com/anthropics/anthropic-sdk-go/commit/dedeb6d263a651d63c95bd360befbd53dd26ec12">dedeb6d</a>)</li> </ul> <h2>v1.44.1</h2> <h2>1.44.1 (2026-05-19)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.44.0...v1.44.1">v1.44.0...v1.44.1</a></p> <h3>Bug Fixes</h3> <ul> <li><strong>runner:</strong> skip tool calls SessionToolRunner does not own (<a href="https://github.com/anthropics/anthropic-sdk-go/commit/93afc65f2f1b811d760f2e5149e13dd5eb328f79">93afc65</a>)</li> </ul> <h2>v1.44.0</h2> <h2>1.44.0 (2026-05-19)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.43.0...v1.44.0">v1.43.0...v1.44.0</a></p> <h3>Features</h3> <ul> <li><strong>client:</strong> Add support for self-hosted sandboxes in CMA with sandbox helpers (<a href="https://github.com/anthropics/anthropic-sdk-go/commit/34354c43f329852a88682bb6665a1453754d61be">34354c4</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/anthropic-sdk-go/blob/main/CHANGELOG.md">github.com/anthropics/anthropic-sdk-go's changelog</a>.</em></p> <blockquote> <h2>1.45.0 (2026-05-21)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.44.1...v1.45.0">v1.44.1...v1.45.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (<a href="https://github.com/anthropics/anthropic-sdk-go/commit/dedeb6d263a651d63c95bd360befbd53dd26ec12">dedeb6d</a>)</li> </ul> <h2>1.44.1 (2026-05-19)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.44.0...v1.44.1">v1.44.0...v1.44.1</a></p> <h3>Bug Fixes</h3> <ul> <li><strong>runner:</strong> skip tool calls SessionToolRunner does not own (<a href="https://github.com/anthropics/anthropic-sdk-go/commit/93afc65f2f1b811d760f2e5149e13dd5eb328f79">93afc65</a>)</li> </ul> <h2>1.44.0 (2026-05-19)</h2> <p>Full Changelog: <a href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.43.0...v1.44.0">v1.43.0...v1.44.0</a></p> <h3>Features</h3> <ul> <li><strong>client:</strong> Add support for self-hosted sandboxes in CMA with sandbox helpers (<a href="https://github.com/anthropics/anthropic-sdk-go/commit/34354c43f329852a88682bb6665a1453754d61be">34354c4</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/anthropic-sdk-go/commit/88310ccdb19419fb6c8b0fd2e99f1e3d8c74041e"><code>88310cc</code></a> release: 1.45.0</li> <li><a href="https://github.com/anthropics/anthropic-sdk-go/commit/4eb28e321282db071753c97d3223b092db9108d1"><code>4eb28e3</code></a> feat(api): Add support for thinking-token-count beta for estimated tokens in ...</li> <li><a href="https://github.com/anthropics/anthropic-sdk-go/commit/d138190aeae5568972430f9a6204875aa04097fc"><code>d138190</code></a> release: 1.44.1</li> <li><a href="https://github.com/anthropics/anthropic-sdk-go/commit/d0a73a50e70544b552f202d4e6f67eb45b9fd739"><code>d0a73a5</code></a> fix(runner): skip tool calls SessionToolRunner does not own</li> <li><a href="https://github.com/anthropics/anthropic-sdk-go/commit/288857308b47e48ee7d572506efffb568d514846"><code>2888573</code></a> release: 1.44.0 (<a href="https://redirect.github.com/anthropics/anthropic-sdk-go/issues/340">#340</a>)</li> <li>See full diff in <a href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.43.0...v1.45.0">compare view</a></li> </ul> </details> <br /> Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.17 to 1.32.18 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/db9f4e546dfe2f62a6bc3bf54b9da42ebace6372"><code>db9f4e5</code></a> Release 2026-05-22</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/34e7ddc9400e830a9ae226a7e3c2161e5ece4f19"><code>34e7ddc</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/f9db036cf7b3b8a1ea5eb67c3d296da4b48b6e2b"><code>f9db036</code></a> Update endpoints model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/ae5eae1e3ec46433bd99496bfa6936f8f09a2e72"><code>ae5eae1</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/429dbdd2a35d325aabc5757edfc9ebf09c2ad12e"><code>429dbdd</code></a> Feat discover endpoint partition validation (<a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3410">#3410</a>)</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/ab4f5b60785064ec6346c922604d94b63d9c7299"><code>ab4f5b6</code></a> Release 2026-05-21</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/757a09909a97a15e5a481d9839b83f15b8fdc4bc"><code>757a099</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/02c8323ee6c99be82dae3a3923616756cb164525"><code>02c8323</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/f4ac954c5b3567f7918fbaa845bd05a8b211f54e"><code>f4ac954</code></a> Bump smithy-go version and update imports for evenstream protocoltests (<a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3420">#3420</a>)</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/6d937001e020def8b587dccbe5d803933ce57bfd"><code>6d93700</code></a> Add replace for credentials dependency added on go.mod (<a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3419">#3419</a>)</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.17...config/v1.32.18">compare view</a></li> </ul> </details> <br /> Updates `github.com/modelcontextprotocol/go-sdk` from 1.6.0 to 1.6.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/modelcontextprotocol/go-sdk/releases">github.com/modelcontextprotocol/go-sdk's releases</a>.</em></p> <blockquote> <h2>v1.6.1</h2> <p>This release adds an MCPGODEBUG flag to opt out of the Content-Type check on POST requests.</p> <h2>Behavior Changes</h2> <p>Prior to v1.6.0 (v1.4.0...v1.5.0), the Content-Type check on POST requests was gated by the same <code>disablecrossoriginprotection</code> MCPGODEBUG flag as the cross-origin protection. In v1.6.0, the cross-origin protection was disabled by default (replaced by the opt-in <code>enableoriginverification</code> flag), but the Content-Type check was kept on unconditionally, leaving no way to disable it. This release restores an escape hatch for both the Streamable HTTP and SSE transports: setting <code>MCPGODEBUG=disablecontenttypecheck=1</code> skips the <code>Content-Type: application/json</code> validation on POST requests. See <a href="https://redirect.github.com/modelcontextprotocol/go-sdk/issues/957">#957</a>.</p> <h2>What's Changed</h2> <ul> <li>mcp: add MCPGPDEBUG for opt-in Content-Type check by <a href="https://github.com/guglielmo-san"><code>@guglielmo-san</code></a> in <a href="https://redirect.github.com/modelcontextprotocol/go-sdk/pull/972">modelcontextprotocol/go-sdk#972</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/modelcontextprotocol/go-sdk/compare/v1.6.0...v1.6.1">https://github.com/modelcontextprotocol/go-sdk/compare/v1.6.0...v1.6.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/modelcontextprotocol/go-sdk/commit/d454bbaf06a342aee5336df3370321d9cdec2478"><code>d454bba</code></a> mcp: add MCPGPDEBUG for opt-in Content-Type check (<a href="https://redirect.github.com/modelcontextprotocol/go-sdk/issues/972">#972</a>)</li> <li>See full diff in <a href="https://github.com/modelcontextprotocol/go-sdk/compare/v1.6.0...v1.6.1">compare view</a></li> </ul> </details> <br /> Updates `github.com/openai/openai-go/v3` from 3.35.0 to 3.37.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-go/releases">github.com/openai/openai-go/v3's releases</a>.</em></p> <blockquote> <h2>v3.37.0</h2> <h2>3.37.0 (2026-05-21)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-go/compare/v3.36.0...v3.37.0">v3.36.0...v3.37.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> api update (<a href="https://github.com/openai/openai-go/commit/7f7416ea4f6953a2861189dee6391515c3b995a9">7f7416e</a>)</li> <li><strong>api:</strong> manual updates (<a href="https://github.com/openai/openai-go/commit/d6465620413df87d971e7e37ae74bef4c70076b1">d646562</a>)</li> <li><strong>api:</strong> update OpenAPI spec or Stainless config (<a href="https://github.com/openai/openai-go/commit/b34b78a83433003a6168fffd175cc963ad719495">b34b78a</a>)</li> <li><strong>client:</strong> optimize json encoder for internal types (<a href="https://github.com/openai/openai-go/commit/93adc6e6247e8ce830152c3df0980a3154aa098a">93adc6e</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>go:</strong> format generated admin paths (<a href="https://github.com/openai/openai-go/commit/1dd8f5ec0adeeefef6a56068b5532ba5e3b3290e">1dd8f5e</a>)</li> <li><strong>go:</strong> format generated project permission paths (<a href="https://github.com/openai/openai-go/commit/b751c37ce2d6348545d75451dfc253dd7dda0f4f">b751c37</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>api:</strong> docs updates (<a href="https://github.com/openai/openai-go/commit/08bc80ea58a19ba0725942c1f3afbcfb043851a0">08bc80e</a>)</li> </ul> <h2>v3.36.0</h2> <h2>3.36.0 (2026-05-13)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-go/compare/v3.35.0...v3.36.0">v3.35.0...v3.36.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add service_tier parameter to response compact method (<a href="https://github.com/openai/openai-go/commit/bacd2c0bcf980e8d424d67446fb4d9c4ea897d24">bacd2c0</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>go:</strong> avoid panic when http.DefaultTransport is wrapped (<a href="https://github.com/openai/openai-go/commit/95a0250a9c770674f8deacb3a3fc1175e6808967">95a0250</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-go/blob/main/CHANGELOG.md">github.com/openai/openai-go/v3's changelog</a>.</em></p> <blockquote> <h2>3.37.0 (2026-05-21)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-go/compare/v3.36.0...v3.37.0">v3.36.0...v3.37.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> api update (<a href="https://github.com/openai/openai-go/commit/7f7416ea4f6953a2861189dee6391515c3b995a9">7f7416e</a>)</li> <li><strong>api:</strong> manual updates (<a href="https://github.com/openai/openai-go/commit/d6465620413df87d971e7e37ae74bef4c70076b1">d646562</a>)</li> <li><strong>api:</strong> update OpenAPI spec or Stainless config (<a href="https://github.com/openai/openai-go/commit/b34b78a83433003a6168fffd175cc963ad719495">b34b78a</a>)</li> <li><strong>client:</strong> optimize json encoder for internal types (<a href="https://github.com/openai/openai-go/commit/93adc6e6247e8ce830152c3df0980a3154aa098a">93adc6e</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>go:</strong> format generated admin paths (<a href="https://github.com/openai/openai-go/commit/1dd8f5ec0adeeefef6a56068b5532ba5e3b3290e">1dd8f5e</a>)</li> <li><strong>go:</strong> format generated project permission paths (<a href="https://github.com/openai/openai-go/commit/b751c37ce2d6348545d75451dfc253dd7dda0f4f">b751c37</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>api:</strong> docs updates (<a href="https://github.com/openai/openai-go/commit/08bc80ea58a19ba0725942c1f3afbcfb043851a0">08bc80e</a>)</li> </ul> <h2>3.36.0 (2026-05-13)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-go/compare/v3.35.0...v3.36.0">v3.35.0...v3.36.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> add service_tier parameter to response compact method (<a href="https://github.com/openai/openai-go/commit/bacd2c0bcf980e8d424d67446fb4d9c4ea897d24">bacd2c0</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>go:</strong> avoid panic when http.DefaultTransport is wrapped (<a href="https://github.com/openai/openai-go/commit/95a0250a9c770674f8deacb3a3fc1175e6808967">95a0250</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/openai/openai-go/commit/8f01a93893a51fc300850dc311aa66c96467f47b"><code>8f01a93</code></a> Merge pull request <a href="https://redirect.github.com/openai/openai-go/issues/676">#676</a> from openai/release-please--branches--main--changes--...</li> <li><a href="https://github.com/openai/openai-go/commit/2db0d86948259932a76fe8df25a3a513c132f242"><code>2db0d86</code></a> release: 3.37.0</li> <li><a href="https://github.com/openai/openai-go/commit/ea245d8115372e980d442072c79436f991366348"><code>ea245d8</code></a> Merge pull request <a href="https://redirect.github.com/openai/openai-go/issues/991">#991</a> from stainless-sdks/dev/xuanqi/public-api-docs-enterp...</li> <li><a href="https://github.com/openai/openai-go/commit/1dd8f5ec0adeeefef6a56068b5532ba5e3b3290e"><code>1dd8f5e</code></a> fix(go): format generated admin paths</li> <li><a href="https://github.com/openai/openai-go/commit/7f7416ea4f6953a2861189dee6391515c3b995a9"><code>7f7416e</code></a> feat(api): api update</li> <li><a href="https://github.com/openai/openai-go/commit/b751c37ce2d6348545d75451dfc253dd7dda0f4f"><code>b751c37</code></a> fix(go): format generated project permission paths</li> <li><a href="https://github.com/openai/openai-go/commit/08bc80ea58a19ba0725942c1f3afbcfb043851a0"><code>08bc80e</code></a> chore(api): docs updates</li> <li><a href="https://github.com/openai/openai-go/commit/d6465620413df87d971e7e37ae74bef4c70076b1"><code>d646562</code></a> feat(api): manual updates</li> <li><a href="https://github.com/openai/openai-go/commit/b34b78a83433003a6168fffd175cc963ad719495"><code>b34b78a</code></a> feat(api): update OpenAPI spec or Stainless config</li> <li><a href="https://github.com/openai/openai-go/commit/efa3cc0d27ca02c86ecea59f34a7b731fdc1708f"><code>efa3cc0</code></a> codegen metadata</li> <li>Additional commits viewable in <a href="https://github.com/openai/openai-go/compare/v3.35.0...v3.37.0">compare view</a></li> </ul> </details> <br /> Updates `github.com/tetratelabs/func-e` from 1.5.0 to 1.6.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tetratelabs/func-e/releases">github.com/tetratelabs/func-e's releases</a>.</em></p> <blockquote> <h2>v1.6.0</h2> <p>func-e 1.6.0 gives you yesterday's envoy main build via the "dev" version</p> <p>Before, testing pre-release Envoy with func-e meant compiling it yourself or using Docker, which only worked on Linux. Now you can install and run dev builds on all platforms the same way you would any tagged version.</p> <pre lang="bash"><code>$ ENVOY_VERSION=dev func-e run --version downloading https://archive.tetratelabs.io/envoy/download/dev/envoy-dev-darwin-arm64.tar.xz starting: /Users/codefromthecrypt/.local/share/func-e/envoy-versions/dev/bin/envoy with logs in /Users/codefromthecrypt/.local/state/func-e/envoy-runs/20260518_170024_807 <p>/Users/codefromthecrypt/.local/share/func-e/envoy-versions/dev/bin/envoy version: abbadd905fa486ff1085cf3bbe4f3b73eb6dd8e0/1.39.0-dev/Clean/RELEASE/BoringSSL</p> <p>$ func-e versions -a<br /> dev 2026-05-18 (a8d396eb)<br /> 1.38.0 2026-04-23<br /> 1.37.2 2026-04-10<br /> -- snip--<br /> </code></pre></p> <p>This works because envoy's version manifest was recently updated with a special "dev" key backed by a <a href="https://redirect.github.com/tetratelabs/archive-envoy/pull/70">daily pipeline job</a>, which archives linux from envoy's docker image, and builds macos from the same SHA.</p> <h2>Updating the "dev" build with the "dev-latest" alias.</h2> <p><code>dev</code> installs on demand like all other versions and stays put once pulled. The alias <code>dev-latest</code> compares the remote release date against the local install and re-downloads only when the build has changed. <code>func-e use dev-latest</code> persists "dev" in the version file, so it is a one-shot refresh, not a stored preference.</p> <h2>Why Use An Envoy "dev" Build?</h2> <p>Envoy releases are worth the wait, but they land about once a quarter. The dev build is for the gap between “merged” and “released”: you can try current Envoy mainline without building Envoy yourself or relying on a Linux-only Docker workflow.</p> <p>For example, Envoy 1.39-dev already has new dynamic-module support for request-aware upstream selection. A dynamic module can parse a request, write <code>selected_backend</code> or <code>selected_endpoint</code> into request state, and have the cluster read it while choosing the upstream host. That removes the need to pass routing decisions through synthetic headers or route re-selection.</p> <p>Use dev when you need to test an unreleased feature, validate upgrade impact early, or give feedback before the next Envoy release is cut. Use tagged versions for normal production runs.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tetratelabs/func-e/commit/33bfb64ba4176a8d970a21f9a7516b73c9065266"><code>33bfb64</code></a> Removes last of windows remnants (<a href="https://redirect.github.com/tetratelabs/func-e/issues/515">#515</a>)</li> <li><a href="https://github.com/tetratelabs/func-e/commit/3d2f9e8b33c4e279ff523f4f73d4abd6d8b2c5b3"><code>3d2f9e8</code></a> Automates PR to update last known Envoy version (<a href="https://redirect.github.com/tetratelabs/func-e/issues/514">#514</a>)</li> <li><a href="https://github.com/tetratelabs/func-e/commit/d785fc8c942815230d3c9c9058a1c0de74a9bb91"><code>d785fc8</code></a> Reverts to Tools.mk for go run instead of go tool (<a href="https://redirect.github.com/tetratelabs/func-e/issues/513">#513</a>)</li> <li><a href="https://github.com/tetratelabs/func-e/commit/99644b8672c6ed54fef2a5afe20b05472e27750f"><code>99644b8</code></a> Removes nfpm env workaround (<a href="https://redirect.github.com/tetratelabs/func-e/issues/512">#512</a>)</li> <li><a href="https://github.com/tetratelabs/func-e/commit/1791ba3ad4bf9999a994230d8a1e7bcdc49143d7"><code>1791ba3</code></a> Fix install.sh to follow curl-sh norms (<a href="https://redirect.github.com/tetratelabs/func-e/issues/511">#511</a>)</li> <li><a href="https://github.com/tetratelabs/func-e/commit/7f8616455617411cd217fbb78aeb3268814fd1ae"><code>7f86164</code></a> Fix races and -race by default (<a href="https://redirect.github.com/tetratelabs/func-e/issues/510">#510</a>)</li> <li><a href="https://github.com/tetratelabs/func-e/commit/04fe1e25b51cdff3e025548a63626cde0c996415"><code>04fe1e2</code></a> Use yesterday's envoy main build via the "dev" version (<a href="https://redirect.github.com/tetratelabs/func-e/issues/509">#509</a>)</li> <li><a href="https://github.com/tetratelabs/func-e/commit/a0c7a071675c5502a481b72bc9b32fea934c8311"><code>a0c7a07</code></a> Backfills rationale for internal httptest package (<a href="https://redirect.github.com/tetratelabs/func-e/issues/508">#508</a>)</li> <li><a href="https://github.com/tetratelabs/func-e/commit/91e310e948417655a9c2548744b70f3285984555"><code>91e310e</code></a> Installs go so that release e2e can run (<a href="https://redirect.github.com/tetratelabs/func-e/issues/507">#507</a>)</li> <li>See full diff in <a href="https://github.com/tetratelabs/func-e/compare/v1.5.0...v1.6.0">compare view</a></li> </ul> </details> <br /> Updates `google.golang.org/api` from 0.279.0 to 0.280.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's releases</a>.</em></p> <blockquote> <h2>v0.280.0</h2> <h2><a href="https://github.com/googleapis/google-api-go-client/compare/v0.279.0...v0.280.0">0.280.0</a> (2026-05-19)</h2> <h3>Features</h3> <ul> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3591">#3591</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/55ba2fab69ee14286ad052f57ed90a726b071e86">55ba2fa</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3593">#3593</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/054d4b6054450d2be21f50fad64145a4e0125424">054d4b6</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3594">#3594</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/03829161b8cd77bf11f4a3a5d07a43f6b1904fbe">0382916</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3595">#3595</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/13e1ad2eeb540d19709df87ce9a0cfdb632f1bf3">13e1ad2</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3596">#3596</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/4c77865748dda2086de226e9401531c934cd909f">4c77865</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3598">#3598</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/ae2f33001826f523ecc6d2f141244e55fbac45c0">ae2f330</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3599">#3599</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/f82d2049187ed2ab7ee27831a1a78887c5969ca4">f82d204</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/google-api-go-client/compare/v0.279.0...v0.280.0">0.280.0</a> (2026-05-19)</h2> <h3>Features</h3> <ul> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3591">#3591</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/55ba2fab69ee14286ad052f57ed90a726b071e86">55ba2fa</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3593">#3593</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/054d4b6054450d2be21f50fad64145a4e0125424">054d4b6</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3594">#3594</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/03829161b8cd77bf11f4a3a5d07a43f6b1904fbe">0382916</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3595">#3595</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/13e1ad2eeb540d19709df87ce9a0cfdb632f1bf3">13e1ad2</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3596">#3596</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/4c77865748dda2086de226e9401531c934cd909f">4c77865</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3598">#3598</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/ae2f33001826f523ecc6d2f141244e55fbac45c0">ae2f330</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3599">#3599</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/f82d2049187ed2ab7ee27831a1a78887c5969ca4">f82d204</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/google-api-go-client/commit/3887b09ecbbaf25fba1bf52227ad5ca4f89e9968"><code>3887b09</code></a> chore(main): release 0.280.0 (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3592">#3592</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/f82d2049187ed2ab7ee27831a1a78887c5969ca4"><code>f82d204</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3599">#3599</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/13e7314e1377c0dd4e132a681b3130abc5843dbd"><code>13e7314</code></a> chore(all): update all (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3597">#3597</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/ae2f33001826f523ecc6d2f141244e55fbac45c0"><code>ae2f330</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3598">#3598</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/4c77865748dda2086de226e9401531c934cd909f"><code>4c77865</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3596">#3596</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/13e1ad2eeb540d19709df87ce9a0cfdb632f1bf3"><code>13e1ad2</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3595">#3595</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/03829161b8cd77bf11f4a3a5d07a43f6b1904fbe"><code>0382916</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3594">#3594</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/054d4b6054450d2be21f50fad64145a4e0125424"><code>054d4b6</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3593">#3593</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/55ba2fab69ee14286ad052f57ed90a726b071e86"><code>55ba2fa</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3591">#3591</a>)</li> <li>See full diff in <a href="https://github.com/googleapis/google-api-go-client/compare/v0.279.0...v0.280.0">compare view</a></li> </ul> </details> <br /> Updates `google.golang.org/genai` from 1.57.0 to 1.58.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/go-genai/releases">google.golang.org/genai's releases</a>.</em></p> <blockquote> <h2>v1.58.0</h2> <h2><a href="https://github.com/googleapis/go-genai/compare/v1.57.0...v1.58.0">1.58.0</a> (2026-05-21)</h2> <h3>Features</h3> <ul> <li>add <code>enable_prompt_injection_detection</code> for Computer Use feature for the Gemini API. (<a href="https://github.com/googleapis/go-genai/commit/19c2566dcfdbfdbc5821ab8ffb71f6155f084dab">19c2566</a>)</li> <li>add new fields (<a href="https://github.com/googleapis/go-genai/commit/1608e807c1aa9d80dfc484db6cc37f49ee4e69a1">1608e80</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md">google.golang.org/genai's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/go-genai/compare/v1.57.0...v1.58.0">1.58.0</a> (2026-05-21)</h2> <h3>Features</h3> <ul> <li>add <code>enable_prompt_injection_detection</code> for Computer Use feature for the Gemini API. (<a href="https://github.com/googleapis/go-genai/commit/19c2566dcfdbfdbc5821ab8ffb71f6155f084dab">19c2566</a>)</li> <li>add new fields (<a href="https://github.com/googleapis/go-genai/commit/1608e807c1aa9d80dfc484db6cc37f49ee4e69a1">1608e80</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/go-genai/commit/97ea31f16473973e587f5b18659a5669dffd1f84"><code>97ea31f</code></a> chore(main): release 1.58.0 (<a href="https://redirect.github.com/googleapis/go-genai/issues/793">#793</a>)</li> <li><a href="https://github.com/googleapis/go-genai/commit/19c2566dcfdbfdbc5821ab8ffb71f6155f084dab"><code>19c2566</code></a> feat: add <code>enable_prompt_injection_detection</code> for Computer Use feature for th...</li> <li><a href="https://github.com/googleapis/go-genai/commit/1608e807c1aa9d80dfc484db6cc37f49ee4e69a1"><code>1608e80</code></a> feat: add new fields</li> <li><a href="https://github.com/googleapis/go-genai/commit/843a665755f75055e7c4bde1177af703384f7905"><code>843a665</code></a> chore: update comment in BatchJobOutputInfo to unblock javadoc generation</li> <li><a href="https://github.com/googleapis/go-genai/commit/8b28bf81bd7a3cee47ed0a8b911e0d574f87a7aa"><code>8b28bf8</code></a> chore: Throw fatals() instead of errors() in the replay_api_client when the i...</li> <li>See full diff in <a href="https://github.com/googleapis/go-genai/compare/v1.57.0...v1.58.0">compare view</a></li> </ul> </details> <br /> Updates `google.golang.org/genproto/googleapis/rpc` from 0.0.0-20260427160629-7cedc36a6bc4 to 0.0.0-20260511170946-3700d4141b60 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/googleapis/go-genproto/commits">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
**Description**
When an MCPRoute/AIGW ROute references a non-existent Gateway in its
spec.parentRefs, the controller still marks the route as "Accepted" with
the message "Gateway Route reconciled successfully". The controller logs
"Gateway not found" but does not propagate this as an error, so the
reconciliation appears successful.
Root Cause:
In internal/controller/mcp_route.go, the syncGateway function was a void
function that silently returned on errors — it logged "Gateway not
found" but never returned an error to the caller. Since syncGateways
(which calls syncGateway for each parentRef) always returned nil, the
syncMCPRoute function completed successfully, and Reconcile marked the
status as ConditionTypeAccepted.
- and same goes for ai gateway route controller
Fix:
Changed syncGateway to return an error. When the referenced Gateway is
not found, it now returns a descriptive error ("gateway
<namespace>/<name> not found"). This error propagates through
syncGateways → syncRoute → Reconcile, which then calls updateRouteStatus
with ConditionTypeNotAccepted and the error message.
During Route deletion (via the finalizer path), the error is still
logged but does not block cleanup — handleFinalizer already handles
onDeletionFn errors non-fatally.
---------
Signed-off-by: Hritik003 <hritik.raj@nutanix.com>
… in Bedrock translator (envoyproxy#2189) **Description** In the Anthropic-to-AWS-Bedrock translator, Claude Code with mid-conversation-system beta sends system prompts as {"role": "system"} in the messages array. The SDK has no system role constant so these hit the default error case. This promotes them to the top-level system param before conversion. Fixes envoyproxy#2206 Signed-off-by: Linus Schlumberger <linus.schlumberger@siemens.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
…ror translation (envoyproxy#2161) **Description** Anthropic→OpenAI error translation could fail with an internal 500 when an OpenAI-compatible upstream returned a structured JSON error where `error.code` was numeric (e.g. `400`) instead of string. This change makes the error model tolerant to both representations so upstream 4xx diagnostics can still be translated and surfaced to Anthropic clients. - **Schema decoding hardening (`internal/apischema/openai/openai.go`)** - Added `UnmarshalJSON` for `openai.ErrorType`. - `error.code` now accepts: - JSON string (`"code":"400"`) - JSON number (`"code":400`) - `null` / omitted - Numeric values are normalized to the existing internal `*string` field. - **Translator regression coverage (`internal/translator/anthropic_openai_test.go`)** - Extended `TestAnthropicToOpenAITranslator_ResponseError` with a JSON error fixture containing numeric `code`. - Confirms response still maps to Anthropic error envelope with expected `type` and `message`. ```json { "type": "error", "error": { "type": "invalid_request_error", "message": "Bad request", "param": null, "code": 400 } } ``` **Related Issues/PRs (if applicable)** Fixes envoyproxy#2151 **Special notes for reviewers (if applicable)** N/A --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
**Description** Fix the vars for the 0.7 and main releases. **Related Issues/PRs (if applicable)** N/A **Special notes for reviewers (if applicable)** N/A Signed-off-by: Ignasi Barrera <nacx@apache.org>
…2199) **Description** Anthropic recently exposed the reasoning tokens via `output_tokens_details`: https://platform.claude.com/docs/en/api/python/messages/create. Thus we should also added this usage information for our users. --------- Signed-off-by: yxia216 <yxia216@bloomberg.net> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
…voyproxy#2220) Bumps the go group with 3 updates in the / directory: [go.opentelemetry.io/contrib/exporters/autoexport](https://github.com/open-telemetry/opentelemetry-go-contrib), [go.opentelemetry.io/contrib/propagators/autoprop](https://github.com/open-telemetry/opentelemetry-go-contrib) and [google.golang.org/api](https://github.com/googleapis/google-api-go-client). Updates `go.opentelemetry.io/contrib/exporters/autoexport` from 0.68.0 to 0.69.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/exporters/autoexport's releases</a>.</em></p> <blockquote> <h2>v1.44.0/v2.5.1/v0.69.0/v0.37.1/v0.24.0/v0.19.0/v0.16.1/v0.16.0</h2> <h3>Added</h3> <ul> <li>Add <code>error.type</code> attribute to <code>http.client.request.duration</code> for transport failures in <code>otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8801">#8801</a>)</li> <li>Add examples for prometheus compatibility document. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8716">#8716</a>)</li> <li>Add support for <code>cardinality_limits</code> in <code>PeriodicMetricReader</code> in <code>otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8885">#8885</a>)</li> <li>Add <code>Resource</code> method to <code>SDK</code> in <code>go.opentelemetry.io/contrib/otelconf/x</code> to expose the resolved SDK resource from declarative configuration. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8913">#8913</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/hetzner</code>, a new resource detector for Hetzner Cloud servers, ported from <code>github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor/internal/hetzner</code>. Detects <code>cloud.provider</code>, <code>cloud.platform</code>, <code>cloud.region</code>, <code>cloud.availability_zone</code>, <code>host.id</code>, and <code>host.name</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8979">#8979</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Set error field as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8776">#8776</a>)</li> <li>Set the "error" field (e.g. created via <code>zap.Error</code>) as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8719">#8719</a>)</li> <li>Set fields implementing <code>error</code> interface from <code>slog</code> records as <code>record.SetErr</code> instead of plain attributes in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8774">#8774</a>)</li> <li>Set emitted errors in <code>go.opentelemetry.io/contrib/bridges/otellogr</code> as record errors (<code>Record.SetErr</code>) instead of <code>exception.message</code> attributes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8775">#8775</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix header attributes lost when using sub-spans in <code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8797">#8797</a>)</li> <li>Validate <code>encoding</code> configuration for OTLP HTTP exporters in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8772">#8772</a>)</li> <li>Remove the custom body wrapper from the request's body after the request is processed to allow body type comparisons with the original type in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> and <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6914">#6914</a>)</li> <li>Unknown or empty HTTP methods now report "_OTHER" instead of "GET" across all HTTP instrumentations to align with OpenTelemetry semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8868">#8868</a>)</li> <li>The default span name formatter in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> now conforms to the OpenTelemetry HTTP semantic conventions for server span names. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8871">#8871</a>) <ul> <li>The default span name is now <code>{method} {route}</code> (e.g. <code>GET /foo/{id}</code>) when a route pattern is available, or <code>{method}</code> (e.g. <code>GET</code>) otherwise.</li> </ul> </li> </ul> <h3>Removed</h3> <ul> <li>Remove the deprecated <code>WithSpanOptions</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8991">#8991</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>otelconf: validate encoding configuration for OTLP HTTP exporters by <a href="https://github.com/sonalgaud12"><code>@sonalgaud12</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8772">open-telemetry/opentelemetry-go-contrib#8772</a></li> <li>fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.99.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8780">open-telemetry/opentelemetry-go-contrib#8780</a></li> <li>chore(deps): update prom/prometheus docker tag to v3.11.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8779">open-telemetry/opentelemetry-go-contrib#8779</a></li> <li>otellogrus: Set error field as <code>record.SetErr</code> by <a href="https://github.com/sonalgaud12"><code>@sonalgaud12</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8778">open-telemetry/opentelemetry-go-contrib#8778</a></li> <li>chore(deps): update module golang.org/x/sys to v0.43.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8783">open-telemetry/opentelemetry-go-contrib#8783</a></li> <li>chore(deps): update golang.org/x/telemetry digest to 93c7c8a by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8786">open-telemetry/opentelemetry-go-contrib#8786</a></li> <li>chore(deps): update module github.com/mattn/go-isatty to v0.0.21 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8787">open-telemetry/opentelemetry-go-contrib#8787</a></li> <li>chore(deps): update module github.com/mattn/go-runewidth to v0.0.23 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8788">open-telemetry/opentelemetry-go-contrib#8788</a></li> <li>chore(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8791">open-telemetry/opentelemetry-go-contrib#8791</a></li> <li>chore(deps): update actions/github-script action to v9 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8795">open-telemetry/opentelemetry-go-contrib#8795</a></li> <li>fix(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8794">open-telemetry/opentelemetry-go-contrib#8794</a></li> <li>otelzap: set error field as record.SetErr by <a href="https://github.com/iblancasa"><code>@iblancasa</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8719">open-telemetry/opentelemetry-go-contrib#8719</a></li> <li>fix(deps): update golang.org/x to 746e56f by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8796">open-telemetry/opentelemetry-go-contrib#8796</a></li> <li>chore(deps): update module golang.org/x/arch to v0.26.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8798">open-telemetry/opentelemetry-go-contrib#8798</a></li> <li>Check if otelgrpc metrics are enabled by <a href="https://github.com/dashpole"><code>@dashpole</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8792">open-telemetry/opentelemetry-go-contrib#8792</a></li> <li>chore(deps): update actions/upload-artifact action to v7.0.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8800">open-telemetry/opentelemetry-go-contrib#8800</a></li> <li>Check instrument enabled in deprecatedruntime by <a href="https://github.com/dashpole"><code>@dashpole</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8793">open-telemetry/opentelemetry-go-contrib#8793</a></li> <li>chore(deps): update module github.com/ashanbrown/forbidigo/v2 to v2.3.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8804">open-telemetry/opentelemetry-go-contrib#8804</a></li> <li>chore(deps): update module github.com/ashanbrown/makezero/v2 to v2.2.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8802">open-telemetry/opentelemetry-go-contrib#8802</a></li> <li>chore(deps): update module github.com/manuelarte/funcorder to v0.6.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8803">open-telemetry/opentelemetry-go-contrib#8803</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/exporters/autoexport's changelog</a>.</em></p> <blockquote> <h2>[1.44.0/2.5.1/0.69.0/0.37.1/0.24.0/0.19.0/0.16.1/0.16.0] - 2026-05-28</h2> <h3>Added</h3> <ul> <li>Add <code>error.type</code> attribute to <code>http.client.request.duration</code> for transport failures in <code>otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8801">#8801</a>)</li> <li>Add examples for prometheus compatibility document. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8716">#8716</a>)</li> <li>Add support for <code>cardinality_limits</code> in <code>PeriodicMetricReader</code> in <code>otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8885">#8885</a>)</li> <li>Add <code>Resource</code> method to <code>SDK</code> in <code>go.opentelemetry.io/contrib/otelconf/x</code> to expose the resolved SDK resource from declarative configuration. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8913">#8913</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/hetzner</code>, a new resource detector for Hetzner Cloud servers, ported from <code>github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor/internal/hetzner</code>. Detects <code>cloud.provider</code>, <code>cloud.platform</code>, <code>cloud.region</code>, <code>cloud.availability_zone</code>, <code>host.id</code>, and <code>host.name</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8979">#8979</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Set error field as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8776">#8776</a>)</li> <li>Set the "error" field (e.g. created via <code>zap.Error</code>) as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8719">#8719</a>)</li> <li>Set fields implementing <code>error</code> interface from <code>slog</code> records as <code>record.SetErr</code> instead of plain attributes in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8774">#8774</a>)</li> <li>Set emitted errors in <code>go.opentelemetry.io/contrib/bridges/otellogr</code> as record errors (<code>Record.SetErr</code>) instead of <code>exception.message</code> attributes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8775">#8775</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix header attributes lost when using sub-spans in <code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8797">#8797</a>)</li> <li>Validate <code>encoding</code> configuration for OTLP HTTP exporters in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8772">#8772</a>)</li> <li>Remove the custom body wrapper from the request's body after the request is processed to allow body type comparisons with the original type in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> and <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6914">#6914</a>)</li> <li>Unknown or empty HTTP methods now report "_OTHER" instead of "GET" across all HTTP instrumentations to align with OpenTelemetry semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8868">#8868</a>)</li> <li>The default span name formatter in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> now conforms to the OpenTelemetry HTTP semantic conventions for server span names. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8871">#8871</a>) <ul> <li>The default span name is now <code>{method} {route}</code> (e.g. <code>GET /foo/{id}</code>) when a route pattern is available, or <code>{method}</code> (e.g. <code>GET</code>) otherwise.</li> </ul> </li> </ul> <h3>Removed</h3> <ul> <li>Remove the deprecated <code>WithSpanOptions</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8991">#8991</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/03b2bcdb54b3dde73c9ff91ae216aec262f6c8f5"><code>03b2bcd</code></a> Release v1.44.0/v2.5.1/v0.69.0/v0.37.1/v0.24.0/v0.19.0/v0.16.1/v0.16.0 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9033">#9033</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/80c46d4037d5991ce324216a52cf7e8d7f2d81fa"><code>80c46d4</code></a> chore(deps): update module github.com/alecthomas/chroma/v2 to v2.26.0 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9034">#9034</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/51f292197d33b84a21b3c70ae21cb185a2570d5e"><code>51f2921</code></a> fix(deps): update module github.com/hetznercloud/hcloud-go/v2 to v2.41.2 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9026">#9026</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/db82162f1b642bb6dca7fa5be48045315bb466d6"><code>db82162</code></a> fix(deps): update aws-sdk-go-v2 monorepo (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9031">#9031</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/5a3e533d8cd4045128e61a966f6dad58964a78ea"><code>5a3e533</code></a> fix(deps): update module github.com/aws/smithy-go to v1.26.0 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9032">#9032</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/c67843c753a924faef17bc4aa63c138aa9472477"><code>c67843c</code></a> otelhttp: Remove custom wrapper after handling request (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6914">#6914</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/c0a41352283151ab6655e88120e4ff4f0a917a2e"><code>c0a4135</code></a> docs(otelhttptrace): add performance guidance for WithoutSubSpans (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8785">#8785</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/a51a86790e1f4df231a70bb5fecc72b95d3c1bf0"><code>a51a867</code></a> otelconf: implement cardinality_limits support in PeriodicMetricReader (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8885">#8885</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/dead6e50fc0b5b3dc4aea288df207953dae5afe7"><code>dead6e5</code></a> chore(deps): update module go.yaml.in/yaml/v2 to v2.4.4 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8994">#8994</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/979ce1857524394d0884fd7c491722c5bcb43d50"><code>979ce18</code></a> chore(deps): update module github.com/jgautheron/goconst to v1.10.2 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9030">#9030</a>)</li> <li>Additional commits viewable in <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.68.0...zpages/v0.69.0">compare view</a></li> </ul> </details> <br /> Updates `go.opentelemetry.io/contrib/propagators/autoprop` from 0.68.0 to 0.69.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/releases">go.opentelemetry.io/contrib/propagators/autoprop's releases</a>.</em></p> <blockquote> <h2>v1.44.0/v2.5.1/v0.69.0/v0.37.1/v0.24.0/v0.19.0/v0.16.1/v0.16.0</h2> <h3>Added</h3> <ul> <li>Add <code>error.type</code> attribute to <code>http.client.request.duration</code> for transport failures in <code>otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8801">#8801</a>)</li> <li>Add examples for prometheus compatibility document. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8716">#8716</a>)</li> <li>Add support for <code>cardinality_limits</code> in <code>PeriodicMetricReader</code> in <code>otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8885">#8885</a>)</li> <li>Add <code>Resource</code> method to <code>SDK</code> in <code>go.opentelemetry.io/contrib/otelconf/x</code> to expose the resolved SDK resource from declarative configuration. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8913">#8913</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/hetzner</code>, a new resource detector for Hetzner Cloud servers, ported from <code>github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor/internal/hetzner</code>. Detects <code>cloud.provider</code>, <code>cloud.platform</code>, <code>cloud.region</code>, <code>cloud.availability_zone</code>, <code>host.id</code>, and <code>host.name</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8979">#8979</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Set error field as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8776">#8776</a>)</li> <li>Set the "error" field (e.g. created via <code>zap.Error</code>) as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8719">#8719</a>)</li> <li>Set fields implementing <code>error</code> interface from <code>slog</code> records as <code>record.SetErr</code> instead of plain attributes in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8774">#8774</a>)</li> <li>Set emitted errors in <code>go.opentelemetry.io/contrib/bridges/otellogr</code> as record errors (<code>Record.SetErr</code>) instead of <code>exception.message</code> attributes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8775">#8775</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix header attributes lost when using sub-spans in <code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8797">#8797</a>)</li> <li>Validate <code>encoding</code> configuration for OTLP HTTP exporters in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8772">#8772</a>)</li> <li>Remove the custom body wrapper from the request's body after the request is processed to allow body type comparisons with the original type in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> and <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6914">#6914</a>)</li> <li>Unknown or empty HTTP methods now report "_OTHER" instead of "GET" across all HTTP instrumentations to align with OpenTelemetry semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8868">#8868</a>)</li> <li>The default span name formatter in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> now conforms to the OpenTelemetry HTTP semantic conventions for server span names. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8871">#8871</a>) <ul> <li>The default span name is now <code>{method} {route}</code> (e.g. <code>GET /foo/{id}</code>) when a route pattern is available, or <code>{method}</code> (e.g. <code>GET</code>) otherwise.</li> </ul> </li> </ul> <h3>Removed</h3> <ul> <li>Remove the deprecated <code>WithSpanOptions</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8991">#8991</a>)</li> </ul> <h2>What's Changed</h2> <ul> <li>otelconf: validate encoding configuration for OTLP HTTP exporters by <a href="https://github.com/sonalgaud12"><code>@sonalgaud12</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8772">open-telemetry/opentelemetry-go-contrib#8772</a></li> <li>fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v1.99.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8780">open-telemetry/opentelemetry-go-contrib#8780</a></li> <li>chore(deps): update prom/prometheus docker tag to v3.11.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8779">open-telemetry/opentelemetry-go-contrib#8779</a></li> <li>otellogrus: Set error field as <code>record.SetErr</code> by <a href="https://github.com/sonalgaud12"><code>@sonalgaud12</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8778">open-telemetry/opentelemetry-go-contrib#8778</a></li> <li>chore(deps): update module golang.org/x/sys to v0.43.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8783">open-telemetry/opentelemetry-go-contrib#8783</a></li> <li>chore(deps): update golang.org/x/telemetry digest to 93c7c8a by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8786">open-telemetry/opentelemetry-go-contrib#8786</a></li> <li>chore(deps): update module github.com/mattn/go-isatty to v0.0.21 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8787">open-telemetry/opentelemetry-go-contrib#8787</a></li> <li>chore(deps): update module github.com/mattn/go-runewidth to v0.0.23 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8788">open-telemetry/opentelemetry-go-contrib#8788</a></li> <li>chore(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8791">open-telemetry/opentelemetry-go-contrib#8791</a></li> <li>chore(deps): update actions/github-script action to v9 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8795">open-telemetry/opentelemetry-go-contrib#8795</a></li> <li>fix(deps): update golang.org/x by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8794">open-telemetry/opentelemetry-go-contrib#8794</a></li> <li>otelzap: set error field as record.SetErr by <a href="https://github.com/iblancasa"><code>@iblancasa</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8719">open-telemetry/opentelemetry-go-contrib#8719</a></li> <li>fix(deps): update golang.org/x to 746e56f by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8796">open-telemetry/opentelemetry-go-contrib#8796</a></li> <li>chore(deps): update module golang.org/x/arch to v0.26.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8798">open-telemetry/opentelemetry-go-contrib#8798</a></li> <li>Check if otelgrpc metrics are enabled by <a href="https://github.com/dashpole"><code>@dashpole</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8792">open-telemetry/opentelemetry-go-contrib#8792</a></li> <li>chore(deps): update actions/upload-artifact action to v7.0.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8800">open-telemetry/opentelemetry-go-contrib#8800</a></li> <li>Check instrument enabled in deprecatedruntime by <a href="https://github.com/dashpole"><code>@dashpole</code></a> in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8793">open-telemetry/opentelemetry-go-contrib#8793</a></li> <li>chore(deps): update module github.com/ashanbrown/forbidigo/v2 to v2.3.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8804">open-telemetry/opentelemetry-go-contrib#8804</a></li> <li>chore(deps): update module github.com/ashanbrown/makezero/v2 to v2.2.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8802">open-telemetry/opentelemetry-go-contrib#8802</a></li> <li>chore(deps): update module github.com/manuelarte/funcorder to v0.6.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/pull/8803">open-telemetry/opentelemetry-go-contrib#8803</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md">go.opentelemetry.io/contrib/propagators/autoprop's changelog</a>.</em></p> <blockquote> <h2>[1.44.0/2.5.1/0.69.0/0.37.1/0.24.0/0.19.0/0.16.1/0.16.0] - 2026-05-28</h2> <h3>Added</h3> <ul> <li>Add <code>error.type</code> attribute to <code>http.client.request.duration</code> for transport failures in <code>otelhttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8801">#8801</a>)</li> <li>Add examples for prometheus compatibility document. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8716">#8716</a>)</li> <li>Add support for <code>cardinality_limits</code> in <code>PeriodicMetricReader</code> in <code>otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8885">#8885</a>)</li> <li>Add <code>Resource</code> method to <code>SDK</code> in <code>go.opentelemetry.io/contrib/otelconf/x</code> to expose the resolved SDK resource from declarative configuration. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8913">#8913</a>)</li> <li>Add <code>go.opentelemetry.io/contrib/detectors/hetzner</code>, a new resource detector for Hetzner Cloud servers, ported from <code>github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor/internal/hetzner</code>. Detects <code>cloud.provider</code>, <code>cloud.platform</code>, <code>cloud.region</code>, <code>cloud.availability_zone</code>, <code>host.id</code>, and <code>host.name</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8979">#8979</a>)</li> </ul> <h3>Changed</h3> <ul> <li>Set error field as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otellogrus</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8776">#8776</a>)</li> <li>Set the "error" field (e.g. created via <code>zap.Error</code>) as <code>record.SetErr</code> instead of a plain attribute in <code>go.opentelemetry.io/contrib/bridges/otelzap</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8719">#8719</a>)</li> <li>Set fields implementing <code>error</code> interface from <code>slog</code> records as <code>record.SetErr</code> instead of plain attributes in <code>go.opentelemetry.io/contrib/bridges/otelslog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8774">#8774</a>)</li> <li>Set emitted errors in <code>go.opentelemetry.io/contrib/bridges/otellogr</code> as record errors (<code>Record.SetErr</code>) instead of <code>exception.message</code> attributes. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8775">#8775</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Fix header attributes lost when using sub-spans in <code>go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8797">#8797</a>)</li> <li>Validate <code>encoding</code> configuration for OTLP HTTP exporters in <code>go.opentelemetry.io/contrib/otelconf</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8772">#8772</a>)</li> <li>Remove the custom body wrapper from the request's body after the request is processed to allow body type comparisons with the original type in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> and <code>go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6914">#6914</a>)</li> <li>Unknown or empty HTTP methods now report "_OTHER" instead of "GET" across all HTTP instrumentations to align with OpenTelemetry semantic conventions. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8868">#8868</a>)</li> <li>The default span name formatter in <code>go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp</code> now conforms to the OpenTelemetry HTTP semantic conventions for server span names. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8871">#8871</a>) <ul> <li>The default span name is now <code>{method} {route}</code> (e.g. <code>GET /foo/{id}</code>) when a route pattern is available, or <code>{method}</code> (e.g. <code>GET</code>) otherwise.</li> </ul> </li> </ul> <h3>Removed</h3> <ul> <li>Remove the deprecated <code>WithSpanOptions</code> option in <code>go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8991">#8991</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/03b2bcdb54b3dde73c9ff91ae216aec262f6c8f5"><code>03b2bcd</code></a> Release v1.44.0/v2.5.1/v0.69.0/v0.37.1/v0.24.0/v0.19.0/v0.16.1/v0.16.0 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9033">#9033</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/80c46d4037d5991ce324216a52cf7e8d7f2d81fa"><code>80c46d4</code></a> chore(deps): update module github.com/alecthomas/chroma/v2 to v2.26.0 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9034">#9034</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/51f292197d33b84a21b3c70ae21cb185a2570d5e"><code>51f2921</code></a> fix(deps): update module github.com/hetznercloud/hcloud-go/v2 to v2.41.2 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9026">#9026</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/db82162f1b642bb6dca7fa5be48045315bb466d6"><code>db82162</code></a> fix(deps): update aws-sdk-go-v2 monorepo (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9031">#9031</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/5a3e533d8cd4045128e61a966f6dad58964a78ea"><code>5a3e533</code></a> fix(deps): update module github.com/aws/smithy-go to v1.26.0 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9032">#9032</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/c67843c753a924faef17bc4aa63c138aa9472477"><code>c67843c</code></a> otelhttp: Remove custom wrapper after handling request (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/6914">#6914</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/c0a41352283151ab6655e88120e4ff4f0a917a2e"><code>c0a4135</code></a> docs(otelhttptrace): add performance guidance for WithoutSubSpans (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8785">#8785</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/a51a86790e1f4df231a70bb5fecc72b95d3c1bf0"><code>a51a867</code></a> otelconf: implement cardinality_limits support in PeriodicMetricReader (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8885">#8885</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/dead6e50fc0b5b3dc4aea288df207953dae5afe7"><code>dead6e5</code></a> chore(deps): update module go.yaml.in/yaml/v2 to v2.4.4 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/8994">#8994</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go-contrib/commit/979ce1857524394d0884fd7c491722c5bcb43d50"><code>979ce18</code></a> chore(deps): update module github.com/jgautheron/goconst to v1.10.2 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/issues/9030">#9030</a>)</li> <li>Additional commits viewable in <a href="https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.68.0...zpages/v0.69.0">compare view</a></li> </ul> </details> <br /> Updates `go.opentelemetry.io/otel` from 1.43.0 to 1.44.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel's changelog</a>.</em></p> <blockquote> <h2>[1.44.0/0.66.0/0.20.0/0.0.17] 2026-05-27</h2> <h3>Added</h3> <ul> <li>Add <code>ByteSlice</code> and <code>ByteSliceValue</code> functions for new <code>BYTESLICE</code> attribute type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7948">#7948</a>)</li> <li>Apply attribute value limit to the <code>KindBytes</code> attribute type in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7990">#7990</a>)</li> <li>Apply attribute value limit to the <code>BYTESLICE</code> attribute type in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7990">#7990</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/zipkin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Add <code>String</code> method for <code>Value</code> type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8142">#8142</a>)</li> <li>Add <code>Slice</code> and <code>SliceValue</code> functions for new <code>SLICE</code> attribute type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8166">#8166</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/zipkin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Apply <code>AttributeValueLengthLimit</code> to <code>attribute.SLICE</code> type attribute values in <code>go.opentelemetry.io/otel/sdk/trace</code>, recursively truncating contained string values. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8217">#8217</a>)</li> <li>Add <code>Error</code> field on <code>Record</code> type in <code>go.opentelemetry.io/otel/log/logtest</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8148">#8148</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>Settable</code> to <code>go.opentelemetry.io/otel/metric/x</code> to allow reusing attribute options. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8178">#8178</a>)</li> <li>Add experimental support for splitting metric data across multiple batches in <code>go.opentelemetry.io/otel/sdk/metric</code>. Set <code>OTEL_GO_X_METRIC_EXPORT_BATCH_SIZE=<max_size></code> to enable for all periodic readers. See <code>go.opentelemetry.io/otel/sdk/metric/internal/x</code> for feature documentation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8071">#8071</a>)</li> <li>Add experimental self-observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc</code>. Enable with <code>OTEL_GO_X_SELF_OBSERVABILITY=true</code> environment variable. See <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/x</code> for feature documentation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8192">#8192</a>)</li> <li>Add experimental self-observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp</code>. Enable with <code>OTEL_GO_X_SELF_OBSERVABILITY=true</code> environment variable. See <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/x</code> for feature documentation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8194">#8194</a>)</li> <li>Add experimental self-observability metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdoutlog</code>. Enable with <code>OTEL_GO_X_SELF_OBSERVABILITY=true</code> environment variable. See <code>go.opentelemetry.io/otel/stdout/stdoutlog/internal/x</code> for feature documentation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8263">#8263</a>)</li> <li>Add <code>WithDefaultAttributes</code> to <code>go.opentelemetry.io/otel/metric/x</code> to support setting default attributes on instruments. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8135">#8135</a>)</li> <li>Add <code>go.opentelemetry.io/otel/semconv/v1.41.0</code> package. The package contains semantic conventions from the <code>v1.41.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/semconv/v1.41.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.40.0</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8324">#8324</a>)</li> <li>Add Observable variants of instruments to <code>go.opentelemetry.io/otel/semconv/v1.41.0</code> package. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8350">#8350</a>)</li> <li>Generate explicit histogram bucket boundaries from weaver configuration for HTTP and RPC duration instruments in <code>go.opentelemetry.io/otel/semconv/v1.41.0</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8002">#8002</a>)</li> </ul> <h3>Changed</h3> <ul> <li>⚠️ <strong>Breaking Change:</strong> <code>go.opentelemetry.io/otel/sdk/metric</code> now applies a default cardinality limit of 2000 to comply with the Metrics SDK specification recommendation. New attribute sets are dropped when the cardinality limit is reached. The measurement of these sets are aggregated into a special attribute set containing <code>attribute.Bool("otel.metric.overflow", true)</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/b62d92831b2dd142f5a0cc89c828270274196877"><code>b62d928</code></a> Release 1.44.0 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8376">#8376</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/94132a0a729e94c5aa6e9e1ce7640c0f802dcfea"><code>94132a0</code></a> chore(deps): update golang.org/x/telemetry digest to 5997936 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8379">#8379</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/6fdcf82adfebc3becfb5d357957546d6d7258469"><code>6fdcf82</code></a> feat: add self-observability metrics to otlpmetricgrpc metric exporters (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8192">#8192</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/761bbfc2f4ae002f4a54f8c57c12b8a58135a741"><code>761bbfc</code></a> fix(deps): update golang.org/x (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8377">#8377</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/3a91dc62d3852313bab40ff151bb3e11fae1745e"><code>3a91dc6</code></a> fix(deps): update googleapis to 3dc84a4 (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8375">#8375</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/f593185679130f56e14bed3c337fa7f8f60756b1"><code>f593185</code></a> exporters/otlp: default max request size to 64 MiB (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8365">#8365</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/f02feacf8652b69c051851cfa2945d2ed5f0d568"><code>f02feac</code></a> Merge commit from fork</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/36c2f1bfd1a6a789dc575f8886399093d7600586"><code>36c2f1b</code></a> semconvkit: add invariant test for histogram-exclusion rule (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8370">#8370</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/d0b6cbdff5346557923fd05bd3f5f34df002aeee"><code>d0b6cbd</code></a> sdk/metric: document unit-sensitivity of DefaultAggregationSelector (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8224">#8224</a>)</li> <li><a href="https://github.com/open-telemetry/opentelemetry-go/commit/9a68034bd45c6f24c481d9f9c87ebbee0a61482f"><code>9a68034</code></a> add self observability for stdout exporter (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8263">#8263</a>)</li> <li>Additional commits viewable in <a href="https://github.com/open-telemetry/opentelemetry-go/compare/v1.43.0...v1.44.0">compare view</a></li> </ul> </details> <br /> Updates `go.opentelemetry.io/otel/exporters/prometheus` from 0.65.0 to 0.66.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/releases">go.opentelemetry.io/otel/exporters/prometheus's releases</a>.</em></p> <blockquote> <h2>v1.44.0/v0.66.0/v0.20.0/v0.0.17</h2> <h3>Added</h3> <ul> <li>Add <code>ByteSlice</code> and <code>ByteSliceValue</code> functions for new <code>BYTESLICE</code> attribute type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7948">#7948</a>)</li> <li>Apply attribute value limit to the <code>KindBytes</code> attribute type in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7990">#7990</a>)</li> <li>Apply attribute value limit to the <code>BYTESLICE</code> attribute type in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7990">#7990</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/zipkin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Add <code>String</code> method for <code>Value</code> type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8142">#8142</a>)</li> <li>Add <code>Slice</code> and <code>SliceValue</code> functions for new <code>SLICE</code> attribute type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8166">#8166</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/zipkin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Apply <code>AttributeValueLengthLimit</code> to <code>attribute.SLICE</code> type attribute values in <code>go.opentelemetry.io/otel/sdk/trace</code>, recursively truncating contained string values. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8217">#8217</a>)</li> <li>Add <code>Error</code> field on <code>Record</code> type in <code>go.opentelemetry.io/otel/log/logtest</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8148">#8148</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>Settable</code> to <code>go.opentelemetry.io/otel/metric/x</code> to allow reusing attribute options. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8178">#8178</a>)</li> <li>Add experimental support for splitting metric data across multiple batches in <code>go.opentelemetry.io/otel/sdk/metric</code>. Set <code>OTEL_GO_X_METRIC_EXPORT_BATCH_SIZE=<max_size></code> to enable for all periodic readers. See <code>go.opentelemetry.io/otel/sdk/metric/internal/x</code> for feature documentation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8071">#8071</a>)</li> <li>Add experimental self-observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc</code>. Enable with <code>OTEL_GO_X_SELF_OBSERVABILITY=true</code> environment variable. See <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/x</code> for feature documentation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8192">#8192</a>)</li> <li>Add experimental self-observability metrics in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp</code>. Enable with <code>OTEL_GO_X_SELF_OBSERVABILITY=true</code> environment variable. See <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/x</code> for feature documentation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8194">#8194</a>)</li> <li>Add experimental self-observability metrics in <code>go.opentelemetry.io/otel/exporters/stdout/stdoutlog</code>. Enable with <code>OTEL_GO_X_SELF_OBSERVABILITY=true</code> environment variable. See <code>go.opentelemetry.io/otel/stdout/stdoutlog/internal/x</code> for feature documentation. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8263">#8263</a>)</li> <li>Add <code>WithDefaultAttributes</code> to <code>go.opentelemetry.io/otel/metric/x</code> to support setting default attributes on instruments. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8135">#8135</a>)</li> <li>Add <code>go.opentelemetry.io/otel/semconv/v1.41.0</code> package. The package contains semantic conventions from the <code>v1.41.0</code> version of the OpenTelemetry Semantic Conventions. See the <a href="https://github.com/open-telemetry/opentelemetry-go/blob/HEAD/semconv/v1.41.0/MIGRATION.md">migration documentation</a> for information on how to upgrade from <code>go.opentelemetry.io/otel/semconv/v1.40.0</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8324">#8324</a>)</li> <li>Add Observable variants of instruments to <code>go.opentelemetry.io/otel/semconv/v1.41.0</code> package. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8350">#8350</a>)</li> <li>Generate explicit histogram bucket boundaries from weaver configuration for HTTP and RPC duration instruments in <code>go.opentelemetry.io/otel/semconv/v1.41.0</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8002">#8002</a>)</li> </ul> <h3>Changed</h3> <ul> <li>⚠️ <strong>Breaking Change:</strong> <code>go.opentelemetry.io/otel/sdk/metric</code> now applies a default cardinality limit of 2000 to comply with the Metrics SDK specification recommendation. New attribute sets are dropped when the cardinality limit is reached. The measurement of these sets are aggregated into a special attribute set containing <code>attribute.Bool("otel.metric.overflow", true)</code>. This can break users who relied on the previous unlimited default.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md">go.opentelemetry.io/otel/exporters/prometheus's changelog</a>.</em></p> <blockquote> <h2>[1.44.0/0.66.0/0.20.0/0.0.17] 2026-05-27</h2> <h3>Added</h3> <ul> <li>Add <code>ByteSlice</code> and <code>ByteSliceValue</code> functions for new <code>BYTESLICE</code> attribute type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7948">#7948</a>)</li> <li>Apply attribute value limit to the <code>KindBytes</code> attribute type in <code>go.opentelemetry.io/otel/sdk/log</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7990">#7990</a>)</li> <li>Apply attribute value limit to the <code>BYTESLICE</code> attribute type in <code>go.opentelemetry.io/otel/sdk/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/7990">#7990</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/trace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Support <code>BYTESLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/zipkin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8153">#8153</a>)</li> <li>Add <code>String</code> method for <code>Value</code> type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8142">#8142</a>)</li> <li>Add <code>Slice</code> and <code>SliceValue</code> functions for new <code>SLICE</code> attribute type in <code>go.opentelemetry.io/otel/attribute</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8166">#8166</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Support <code>SLICE</code> attributes in <code>go.opentelemetry.io/otel/exporters/zipkin</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8216">#8216</a>)</li> <li>Apply <code>AttributeValueLengthLimit</code> to <code>attribute.SLICE</code> type attribute values in <code>go.opentelemetry.io/otel/sdk/trace</code>, recursively truncating contained string values. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8217">#8217</a>)</li> <li>Add <code>Error</code> field on <code>Record</code> type in <code>go.opentelemetry.io/otel/log/logtest</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8148">#8148</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>WithMaxRequestSize</code> option in <code>go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp</code>. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8157">#8157</a>)</li> <li>Add <code>Settable</code> to <code>go.opentelemetry.io/otel/metric/x</code> to allow reusing attribute options. (<a href="https://redirect.github.com/open-telemetry/opentelemetry-go/issues/8178">#8178</a>)</li> <li>Add experimental support for splitting metric data across multiple batches in <code>go.opentelemetry.io/otel/sdk/metric</code>. Set <code>OTEL_GO_X_METRIC_EXPORT_BATCH_SIZE=<max_size></code> to enable for all periodic readers. See <code>go.opentelemetry.io/otel/s…
… github-actions group (envoyproxy#2221) Bumps the github-actions group with 1 update: [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action). Updates `docker/setup-qemu-action` from 4.0.0 to 4.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/setup-qemu-action/releases">docker/setup-qemu-action's releases</a>.</em></p> <blockquote> <h2>v4.1.0</h2> <ul> <li>Add <code>reset</code> input to uninstall current emulators by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/21">docker/setup-qemu-action#21</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.77.0 to 0.91.0 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/250">docker/setup-qemu-action#250</a> <a href="https://redirect.github.com/docker/setup-qemu-action/pull/247">docker/setup-qemu-action#247</a></li> <li>Bump brace-expansion from 1.1.12 to 1.1.15 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/265">docker/setup-qemu-action#265</a></li> <li>Bump fast-xml-builder from 1.0.0 to 1.2.0 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/286">docker/setup-qemu-action#286</a></li> <li>Bump fast-xml-parser from 5.4.2 to 5.8.0 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/255">docker/setup-qemu-action#255</a></li> <li>Bump flatted from 3.3.3 to 3.4.2 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/257">docker/setup-qemu-action#257</a></li> <li>Bump glob from 10.3.15 to 10.5.0 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/254">docker/setup-qemu-action#254</a></li> <li>Bump handlebars from 4.7.8 to 4.7.9 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/262">docker/setup-qemu-action#262</a></li> <li>Bump lodash from 4.17.23 to 4.18.1 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/273">docker/setup-qemu-action#273</a></li> <li>Bump postcss from 8.5.6 to 8.5.10 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/285">docker/setup-qemu-action#285</a></li> <li>Bump tar from 6.2.1 to 7.5.15 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/287">docker/setup-qemu-action#287</a></li> <li>Bump tmp from 0.2.5 to 0.2.6 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/291">docker/setup-qemu-action#291</a></li> <li>Bump undici from 6.23.0 to 6.26.0 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/251">docker/setup-qemu-action#251</a></li> <li>Bump vite from 7.3.1 to 7.3.2 in <a href="https://redirect.github.com/docker/setup-qemu-action/pull/271">docker/setup-qemu-action#271</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-qemu-action/compare/v4.0.0...v4.1.0">https://github.com/docker/setup-qemu-action/compare/v4.0.0...v4.1.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/docker/setup-qemu-action/commit/06116385d9baf250c9f4dcb4858b16962ea869c3"><code>0611638</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-qemu-action/issues/21">#21</a> from crazy-max/uninst</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/ce59c818a5ff16552ddf7407ee7cb00bea682925"><code>ce59c81</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/2ddad4401e17fa807e8a3c4bd289ccdd993f0868"><code>2ddad44</code></a> uninstall current emulators</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/8c37cd6f3456e1f3f3026250eac496709e9e7e10"><code>8c37cd6</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-qemu-action/issues/250">#250</a> from docker/dependabot/npm_and_yarn/docker/actions-to...</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/d1a0ff34af591b8e290e46f3fa114ef5bb81cd1c"><code>d1a0ff3</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/0a8f3dc12541cc2c3b19c182a1a2c90a2c8b8d93"><code>0a8f3dc</code></a> build(deps): bump <code>@docker/actions-toolkit</code> from 0.79.0 to 0.91.0</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/9430f61a7691bd1bfdc4d6ba70e558659d36fa7a"><code>9430f61</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-qemu-action/issues/291">#291</a> from docker/dependabot/npm_and_yarn/tmp-0.2.6</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/978bd7796cb6698377e7af6726b726e5ced642d0"><code>978bd77</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/3479febc62cc0fbcb98c7c7fc0dac778c0d79d6a"><code>3479feb</code></a> build(deps): bump tmp from 0.2.5 to 0.2.6</li> <li><a href="https://github.com/docker/setup-qemu-action/commit/b113c264143c28c2974bed61af25be32d32f4782"><code>b113c26</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-qemu-action/issues/255">#255</a> from docker/dependabot/npm_and_yarn/fast-xml-parser-5...</li> <li>Additional commits viewable in <a href="https://github.com/docker/setup-qemu-action/compare/ce360397dd3f832beb865e1373c09c0e9f86d70a...06116385d9baf250c9f4dcb4858b16962ea869c3">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
**Description** Adds stacklok to adopters page --------- Signed-off-by: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com>
…roxy#2225) **Description** The request body we send to GCP Vertex AI (the Gemini generateContent API) had a few field names in the wrong style. Vertex expects camelCase names like `generationConfig` and `systemInstruction`, but three of them were written in snake_case (`generation_config`, `system_instruction`, `tool_config`). The `safetySettings` field was already camelCase, so the struct was inconsistent with itself. This updates those three names to camelCase so they all match the format Vertex documents and the format the `google.golang.org/genai` library uses. Vertex does accept the snake_case versions as well, so this isn't fixing broken behaviour, but it removes the inconsistency and means we're no longer relying on that leniency. I also updated the tests that were asserting the old snake_case output. While I was in there, I replaced some hardcoded content-length values in the unit test with a check that the content-length header matches the actual body length. Those fixed numbers would have needed recalculating every time the body changed by even a byte, and the new check stays correct on its own. Testing: the existing unit tests and the data plane tests pass, including the GCP Vertex AI cases that exercise the request body end to end. Signed-off-by: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com>
…m chart (envoyproxy#2226) **Description** The controller and inference-pool `ClusterRole`/`ClusterRoleBinding` names are built with `printf "%s:%s" <base> .Release.Namespace` to keep them unique per-release (introduced in envoyproxy#1511). When `.Release.Namespace` is empty, this renders `name: <base>:` — an unquoted trailing colon that strict YAML parsers reject with `mapping values are not allowed in this context`. The whole render fails and zero resources are produced. This doesn't trigger via `helm install` or `helm template` (the CLI always defaults the namespace), only where a renderer leaves it unset — e.g. the Helm SDK's `engine.Render` without `ReleaseOptions`, or Replicated's image-extraction render. The fix adds two independent layers of defense across the three affected helpers (`_helpers.tpl`) and their six call sites (`serviceaccount.yaml`, `envoy_gateway_cluster_role_for_inference_pool.yaml`): - Wrap the namespace in `default "default"` so the `printf` argument is never empty. No behavior change for real installs, where the namespace is always populated. - Quote the rendered `name` fields so a trailing colon is always unambiguous. Either layer fixes the failure on its own; both are included for robustness. **Special notes for reviewers (if applicable)** Verified with `helm lint` and `helm template` (default and explicit namespaces) — names render correctly as `<base>:<namespace>` with no change to existing behavior. Signed-off-by: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com>
…oyproxy#2191) **Description** In the OpenAI-to-AWS-Bedrock message converter, Bedrock Converse rejects assistant messages with empty content arrays. Some clients send empty assistant messages. This skips them when they have no content blocks. Tool-call-only messages are preserved. Fixes envoyproxy#2208 Signed-off-by: Linus Schlumberger <linus.schlumberger@siemens.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
…oyproxy#2170) **Description** **Scope:** this PR fixes the narrow case where the upstream cluster ext_proc filter issued `CONTINUE_AND_REPLACE` even though *nothing in the request pipeline needed to mutate the body* — no translation, no model override, no retry, no backend `HTTPBodyMutation`. In that path, the upstream filter replayed `u.parent.originalRequestBodyRaw` (snapshotted at the router phase), which clobbered any body mutation applied by an earlier ext_proc filter in the listener chain. After this PR, that path emits `CONTINUE` and leaves the body alone. The broader question of "preserve an intermediate filter's body mutation across translation / retries / `HTTPBodyMutation`" is **not** addressed by this PR. When `wantBodyReplace == true`, the replacement body is still derived from the router-phase snapshot, so any intermediate filter's mutation is lost on those branches. That's an architectural property of the snapshot-at-router- phase design — the upstream filter has no view of Envoy's current body, by design, to avoid re-buffering through ext_proc at the upstream phase. Fixing it requires a separate design (either re-buffering at upstream, or propagating a diff via dynamic metadata) and should be its own PR. **Root cause of the narrow bug.** The existing safety net in `applyBodyMutation` looks like it covers the no-config case: if bodyMutator == nil { return bodyMutation } but it does not fire in practice. `bodymutator.NewBodyMutator(nil, ...)` returns a non-nil struct even when its `*filterapi.HTTPBodyMutation` argument is nil. So the early-return is dead code; the function falls through, calls `Mutate(originalRequestBodyRaw)` on a no-config mutator (which returns its input unchanged), wraps that in a `BodyMutation`, and the upstream filter sends `CONTINUE_AND_REPLACE` with the original body — even though nothing asked for a body replacement. **Fix:** * Add `BodyMutator.HasMutations()` predicate. `NewBodyMutator`'s contract is unchanged (it still returns non-nil); callers can ask whether the mutator actually has anything to do. * In `upstreamProcessor.ProcessRequestHeaders`, compute mutatorHasMutations := u.bodyMutator != nil && u.bodyMutator.HasMutations() wantBodyReplace := bodyMutation != nil || forceBodyMutation || mutatorHasMutations before calling `applyBodyMutation`. When false, skip the body-mutation work and emit `CONTINUE` instead of `CONTINUE_AND_REPLACE`, preserving translator header mutations (e.g. path rewrite), header-mutator output, and auth-handler header additions. Skip the content-length dynamic-metadata restamp on the `CONTINUE` branch since the body length did not change. All existing `CONTINUE_AND_REPLACE` callers stay on the existing path (these are the branches where this PR explicitly does not change behavior, including the loss-of-earlier-mutation property documented above): * Translator emits a body (AWS Bedrock/SigV4, OpenAI to Anthropic, OpenAI to Vertex, etc.) — `bodyMutation != nil`. * Backend `HTTPBodyMutation` configured — `HasMutations() == true`. * Retry — `forceBodyMutation == true` via `u.onRetry()`. * Streaming with `IncludeUsage=false` — `forceBodyMutation == true`. * Model override — translator emits `newBody` via `sjson.SetBytesOptions`, so `bodyMutation != nil`. **Tests:** * Added `Test_chatCompletionProcessorUpstreamFilter_ProcessRequestHeaders_BodyReplaceContract` with two subtests: * `no translator body, no mutator, no force -> CONTINUE` exercises the previously untested path. Asserts `Status == CONTINUE`, no `BodyMutation`, preserved translator and auth-handler header mutations, and `DynamicMetadata == nil` (no content-length restamp). * `translator body present -> CONTINUE_AND_REPLACE` pins the existing behavior so a future refactor cannot quietly flip the contract back. The coverage gap that let this ship: every existing `t.Run("ok", ...)` subtest under `Test_chatCompletionProcessorUpstreamFilter_ProcessRequestHeaders` set `retBodyMutation` on the mock translator, so the "translator returns nil body" path was never exercised. **Related Issues/PRs (if applicable)** None. **Special notes for reviewers (if applicable)** * The fix is request-side only. Response-side code is untouched. * `NewBodyMutator`'s contract is intentionally not changed (it still returns non-nil even when given a nil `*filterapi.HTTPBodyMutation`). A predicate is added instead, to keep the blast radius local to `ProcessRequestHeaders`. If reviewers prefer changing the constructor to return nil in the no-config case, that is a larger refactor and a separate PR. * The bug is in the generic `upstreamProcessor[...]`, so the fix applies to every endpoint spec (chat completions, messages, embeddings, completions, GCP, AWS Bedrock, etc.). The new tests exercise one endpoint spec for the same reason the existing `ProcessRequestHeaders` table-test does — locking the generic method's contract. Signed-off-by: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
**Description** **Problem** If a buffer filter (`envoy.filters.http.buffer`) is added to the chain, for example via an EnvoyPatchPolicy to raise the request buffer limit, the AI Gateway extproc could be placed ahead of it. The AI Gateway extproc runs with `RequestBodyMode: BUFFERED`, so when it runs before the buffer filter it buffers the body against Envoy Gateway's default 32 KiB downstream per-connection limit and returns `413 Payload Too Large` for larger bodies before the buffer filter's higher limit applies. The buffer filter raises the stream's buffer limit to `max_request_bytes`, but only for filters that decode after it. This was hit in practice with large request bodies such as Gemini CLI tool definitions. **Solution** When a buffer filter sits at or after the computed ext_proc insertion point, insert the AI Gateway extproc immediately after the last buffer filter. Envoy Gateway already orders the buffer filter before ext_proc, so this honors that order. Behavior is unchanged when no buffer filter is present. This works because EnvoyPatchPolicy patches are applied before the extension hook runs and Envoy Gateway does not re-sort filters afterward, so the buffer filter is visible to this code. The extension server only moves its own filter, not the user's buffer filter, so this fixes the 413 for AI Gateway's extproc specifically and not for other co-resident BUFFERED ext_procs. **Testing** Added table tests for three cases: ext_proc before buffer (inserted after buffer), buffer before ext_proc (inserted after buffer), and no buffer filter (unchanged). Signed-off-by: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
**Description** This updates the homepage info Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com>
Signed-off-by: Ignasi Barrera <nacx@apache.org>
**Description** Limit by default the size of MCP request payloads. **Related Issues/PRs (if applicable)** N/A **Special notes for reviewers (if applicable)** N/A Signed-off-by: Ignasi Barrera <nacx@apache.org>
**Description** Bind pprof to localhost so it is only accessible by default from the local pod or via kubectl port-forward. Since it is for debugging purposes, it does not need to listen on `0.0.0.0`. **Related Issues/PRs (if applicable)** N/A **Special notes for reviewers (if applicable)** N/A Signed-off-by: Ignasi Barrera <ignasi@tetrate.io>
envoyproxy#2239) **Description** `ExtractTokenUsageFromExplicitCaching` is called in both start message and the delta message, as a result. The usage report is not correct. Fix: remove the accumulation in the message delta; also the previous tests can pass because the test cases did not mock the real cases, update all related tests cases as well. --------- Signed-off-by: yxia216 <yxia216@bloomberg.net> Signed-off-by: Aaron Choo <achoo30@bloomberg.net> Signed-off-by: Anurag Aggarwal <kanurag94@gmail.com> Signed-off-by: Aishwarya <aishwarya.raimule@nutanix.com> Signed-off-by: aishwaryaraimule21 <aishwarya.raimule@nutanix.com> Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Hritik003 <hritik.raj@nutanix.com> Signed-off-by: Linus Schlumberger <linus.schlumberger@siemens.com> Signed-off-by: Ignasi Barrera <nacx@apache.org> Signed-off-by: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com> Signed-off-by: Takeshi Yoneda <t.y.mathetake@gmail.com> Signed-off-by: hustxiayang <yxia216@bloomberg.net> Signed-off-by: hustxiayang <yangxiast@gmail.com> Co-authored-by: Aaron Choo <achoo30@bloomberg.net> Co-authored-by: Anurag Aggarwal <kanurag94@gmail.com> Co-authored-by: aishwaryaraimule21 <aishwarya.raimule@nutanix.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io> Co-authored-by: Hritik Raj <hritik.raj@nutanix.com> Co-authored-by: Linus Schlumberger <linus.schlumberger@siemens.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com> Co-authored-by: Takeshi Yoneda <t.y.mathetake@gmail.com> Co-authored-by: Ignasi Barrera <nacx@apache.org>
**Description** ServiceQuota currently needs to be implemented. The extension server does not inject the descriptor set but the rate limit config is properly configured. Adding it as a TODO/follow up. Signed-off-by: achoo30 <achoo30@bloomberg.net>
**Description** The failover logic depends on an Envoyproxy commit that has not been officially released. Marking that feature as a todo and will enable it once the changes are stable. Signed-off-by: achoo30 <achoo30@bloomberg.net>
**Description** This commit fixes my affiliation Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
**Description** This resolves some vulnerabilities in site/* Signed-off-by: Takeshi Yoneda <tyoneda@netflix.com>
**Description** 1. Update the costExpression example to work 2. Only headers are implemented for ClientSelectors Signed-off-by: achoo30 <achoo30@bloomberg.net>
) **Description** PostClusterModify and PostRouteModify dropped InferencePool metadata when Envoy Gateway sent a cluster or route with nil Metadata. The helper allocated metadata, but only in a local pointer, so later InferencePool handling could not read it. Small fix, real footgun. Repro: 1. Revert this patch, or apply only the added assertions. 2. Run `go test ./internal/extensionserver -run 'TestPost(Cluster|Route)Modify/with_InferencePool' -count=1`. 3. Both hook tests fail because getInferencePoolByMetadata returns nil. This is reachable for normal InferencePool backendRefs; Metadata is optional in the Envoy proto and the repo example uses AIGatewayRoute to InferencePool. No cloud quota or provider API ceiling blocks this path. Verification: `go test ./internal/extensionserver -run 'TestPost(Cluster|Route)Modify/with_InferencePool' -count=1` `go test ./internal/extensionserver` `make test` `make precommit` **Related Issues/PRs (if applicable)** Related PR: envoyproxy#2071 **Special notes for reviewers (if applicable)** AI-assisted patch prep; I reviewed the code and own the change. Signed-off-by: immanuwell <pchpr.00@list.ru> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
….33 in /tools (envoyproxy#2264) Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.7.32 to 1.7.33. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/containerd/containerd/releases">github.com/containerd/containerd's releases</a>.</em></p> <blockquote> <h2>containerd 1.7.33</h2> <p>Welcome to the v1.7.33 release of containerd!</p> <p>The thirty-third patch release for containerd 1.7 contains various fixes and updates including security patches.</p> <h3>Security Updates</h3> <ul> <li> <p><strong>containerd</strong></p> <ul> <li><a href="https://github.com/containerd/containerd/security/advisories/GHSA-xhf5-7wjv-pqxp"><strong>CVE-2026-53488</strong></a></li> <li><a href="https://github.com/containerd/containerd/security/advisories/GHSA-jpcc-p29g-p8mq"><strong>CVE-2026-47262</strong></a></li> </ul> </li> <li> <p><strong>go-jose</strong></p> <ul> <li><a href="https://github.com/go-jose/go-jose/security/advisories/GHSA-78h2-9frx-2jm8"><strong>CVE-2026-34986</strong></a></li> </ul> </li> </ul> <p>Please try out the release binaries and report any issues at <a href="https://github.com/containerd/containerd/issues">https://github.com/containerd/containerd/issues</a>.</p> <h3>Contributors</h3> <ul> <li>Samuel Karp</li> <li>Chris Henzie</li> <li>Akihiro Suda</li> <li>Akhil Mohan</li> <li>Ben Cressey</li> <li>Davanum Srinivas</li> <li>Sopho Merkviladze</li> </ul> <h3>Changes</h3> <!-- raw HTML omitted --> <ul> <li>Prepare release notes for v1.7.33 (<a href="https://redirect.github.com/containerd/containerd/pull/13631">#13631</a>) <ul> <li><a href="https://github.com/containerd/containerd/commit/7517e6737a6077dbdb5d403e693169cb8163549d"><code>7517e6737</code></a> Prepare release notes for v1.7.33</li> <li><a href="https://github.com/containerd/containerd/commit/ab306518a326fe7e4c27f64a8cf62b7a0fb3e9c6"><code>ab306518a</code></a> Merge commit from fork</li> <li><a href="https://github.com/containerd/containerd/commit/d34cdafdaf51e1db435f1e0898f16d0da5038557"><code>d34cdafda</code></a> Merge commit from fork</li> <li><a href="https://github.com/containerd/containerd/commit/9ab2b7a894d15738f8323f69def272c29277b57f"><code>9ab2b7a89</code></a> Bound user-database file reads in openBoundedUserFile</li> <li><a href="https://github.com/containerd/containerd/commit/1e9806f90d934f2e0180c279fa9f0019537f2704"><code>1e9806f90</code></a> Merge commit from fork</li> <li><a href="https://github.com/containerd/containerd/commit/4d8ba4d23561c9ec21b0113ddcfc22f41792b25e"><code>4d8ba4d23</code></a> Do not propagate reserved labels from image configs</li> </ul> </li> <li>update runc binary to v1.3.6 (<a href="https://redirect.github.com/containerd/containerd/pull/13615">#13615</a>) <ul> <li><a href="https://github.com/containerd/containerd/commit/74c728c13487844c43620b14cc66dc05dca96836"><code>74c728c13</code></a> update runc binary to v1.3.6</li> </ul> </li> <li>update go to 1.26.4/1.25.11 (<a href="https://redirect.github.com/containerd/containerd/pull/13579">#13579</a>) <ul> <li><a href="https://github.com/containerd/containerd/commit/947caa4b7469fd3b71ee62d0f7410b00252f5842"><code>947caa4b7</code></a> update go to 1.26.4/1.25.11</li> </ul> </li> <li>Configure udevd children-max for root-test (<a href="https://redirect.github.com/containerd/containerd/pull/13564">#13564</a>) <ul> <li><a href="https://github.com/containerd/containerd/commit/e884e964e31c4fb61fcdc376a2fa3151ac245a65"><code>e884e964e</code></a> Configure udevd children-max for root-test</li> </ul> </li> <li>Clean up disk space in node e2e workflow (<a href="https://redirect.github.com/containerd/containerd/pull/13552">#13552</a>) <ul> <li><a href="https://github.com/containerd/containerd/commit/b9e7568888325736b12c9f50271045bc618dc9b9"><code>b9e756888</code></a> Clean up disk space in node e2e workflow</li> </ul> </li> <li>Bump go-jose/go-jose/v3 to v3.0.5 to fix GHSA-78h2-9frx-2jm8 (<a href="https://redirect.github.com/containerd/containerd/pull/13467">#13467</a>) <ul> <li><a href="https://github.com/containerd/containerd/commit/4dfc1844e8cb46a6c04a8c57211ab50e1412ccc1"><code>4dfc1844e</code></a> Bump go-jose to v3.0.5 to address CVE-2026-34986</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/containerd/containerd/commit/e8b1a9bc270f9952197c470b8bad573b03a3a608"><code>e8b1a9b</code></a> Merge pull request <a href="https://redirect.github.com/containerd/containerd/issues/13631">#13631</a> from samuelkarp/prepare-1.7.33</li> <li><a href="https://github.com/containerd/containerd/commit/7517e6737a6077dbdb5d403e693169cb8163549d"><code>7517e67</code></a> Prepare release notes for v1.7.33</li> <li><a href="https://github.com/containerd/containerd/commit/ab306518a326fe7e4c27f64a8cf62b7a0fb3e9c6"><code>ab30651</code></a> Merge commit from fork</li> <li><a href="https://github.com/containerd/containerd/commit/096289897c75f26f9b1e7a805acde329fa048a96"><code>0962898</code></a> Merge pull request <a href="https://redirect.github.com/containerd/containerd/issues/13615">#13615</a> from k8s-infra-cherrypick-robot/cherry-pick-13606-t...</li> <li><a href="https://github.com/containerd/containerd/commit/74c728c13487844c43620b14cc66dc05dca96836"><code>74c728c</code></a> update runc binary to v1.3.6</li> <li><a href="https://github.com/containerd/containerd/commit/d34cdafdaf51e1db435f1e0898f16d0da5038557"><code>d34cdaf</code></a> Merge commit from fork</li> <li><a href="https://github.com/containerd/containerd/commit/1e9806f90d934f2e0180c279fa9f0019537f2704"><code>1e9806f</code></a> Merge commit from fork</li> <li><a href="https://github.com/containerd/containerd/commit/9ab2b7a894d15738f8323f69def272c29277b57f"><code>9ab2b7a</code></a> Bound user-database file reads in openBoundedUserFile</li> <li><a href="https://github.com/containerd/containerd/commit/d805d96d67b205a40d3c12414ec306d19ec2d848"><code>d805d96</code></a> Merge pull request <a href="https://redirect.github.com/containerd/containerd/issues/13579">#13579</a> from akhilerm/1.7-go1.26.4</li> <li><a href="https://github.com/containerd/containerd/commit/947caa4b7469fd3b71ee62d0f7410b00252f5842"><code>947caa4</code></a> update go to 1.26.4/1.25.11</li> <li>Additional commits viewable in <a href="https://github.com/containerd/containerd/compare/v1.7.32...v1.7.33">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/envoyproxy/ai-gateway/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
**Description** These limits are quota mode which behaves as the inverse of traditional rate limit. Updating the document to reflect that. Signed-off-by: achoo30 <achoo30@bloomberg.net>
…oyproxy#2256) Bumps the go group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.41.7` | `1.41.11` | | [github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream](https://github.com/aws/aws-sdk-go-v2) | `1.7.10` | `1.7.12` | | [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.18` | `1.32.22` | | [github.com/bytedance/sonic](https://github.com/bytedance/sonic) | `1.15.1` | `1.15.2` | | [github.com/openai/openai-go/v3](https://github.com/openai/openai-go) | `3.37.0` | `3.39.0` | | [github.com/prometheus/common](https://github.com/prometheus/common) | `0.67.5` | `0.68.1` | | [google.golang.org/api](https://github.com/googleapis/google-api-go-client) | `0.282.0` | `0.283.0` | | [google.golang.org/genai](https://github.com/googleapis/go-genai) | `1.58.0` | `1.59.0` | Updates `github.com/aws/aws-sdk-go-v2` from 1.41.7 to 1.41.11 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/fa369bd7bb9576e85ac094a43a15e8372a3d0129"><code>fa369bd</code></a> Release 2026-06-03</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/960ee4dc8380a46ded94f3976e073242d42bf8ed"><code>960ee4d</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/4b6df8b301a6c965903012dda08e9f38fd163f1c"><code>4b6df8b</code></a> Update endpoints model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/30b15dd22cc690c7d647c32f415111437cfbed2a"><code>30b15dd</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/e8c72af3150fa9c8898c916b2e213a5d3d7d64ed"><code>e8c72af</code></a> enable schema-serde (<a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3421">#3421</a>)</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/b4d02c534cf7f5c782e10bc3f66e40c081a7bb3a"><code>b4d02c5</code></a> Release 2026-06-02</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/48e375b484e0ae917f61904db440ef17382093d1"><code>48e375b</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/b8a4fc132e65d8310e2de67e0600eec53e2f4b26"><code>b8a4fc1</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/e8627b4cc01977004c41ff0f42670a44d500982d"><code>e8627b4</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3430">#3430</a> from aws/fix-remove-ioutil</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/4e258a368c5b421d28bae4a18e718b1b4c7dd16a"><code>4e258a3</code></a> chore: update changelog description per review</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-sdk-go-v2/compare/v1.41.7...v1.41.11">compare view</a></li> </ul> </details> <br /> Updates `github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream` from 1.7.10 to 1.7.12 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/93c3f1871b862d743e0bd2e2e7180246df3a9212"><code>93c3f18</code></a> Release 2022-12-02</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/7254028f8bc89095326d9e3657fdbc98b98cca94"><code>7254028</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/f43ad83db1b3da1c2ea37857524148c91189cb4c"><code>f43ad83</code></a> Update SDK's smithy-go dependency to v1.13.5</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/77d257ee120e67d45a5de6f0d6478f313a21b92a"><code>77d257e</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/779e29ff5a4bcebe1ab7088ab12c4c95ce06f8aa"><code>779e29f</code></a> Release 2022-12-01</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/f64d7d2b0a0033996b32ba9e1b18e5a923452b84"><code>f64d7d2</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/9bc59f75ee4683ca886c3d701b49bb81db2efd4d"><code>9bc59f7</code></a> Update endpoints model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/d9c18aa2bdd4c237a4919452f58e29c20ba484cc"><code>d9c18aa</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/0259b169b753daf77ad332c680a9ad1e3f56753d"><code>0259b16</code></a> Release 2022-11-30</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/ee0277f1abad4856afc13ced2bfb90a43dbd9d34"><code>ee0277f</code></a> Regenerated Clients</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-sdk-go-v2/compare/service/account/v1.7.10...service/account/v1.7.12">compare view</a></li> </ul> </details> <br /> Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.18 to 1.32.22 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/fa369bd7bb9576e85ac094a43a15e8372a3d0129"><code>fa369bd</code></a> Release 2026-06-03</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/960ee4dc8380a46ded94f3976e073242d42bf8ed"><code>960ee4d</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/4b6df8b301a6c965903012dda08e9f38fd163f1c"><code>4b6df8b</code></a> Update endpoints model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/30b15dd22cc690c7d647c32f415111437cfbed2a"><code>30b15dd</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/e8c72af3150fa9c8898c916b2e213a5d3d7d64ed"><code>e8c72af</code></a> enable schema-serde (<a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3421">#3421</a>)</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/b4d02c534cf7f5c782e10bc3f66e40c081a7bb3a"><code>b4d02c5</code></a> Release 2026-06-02</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/48e375b484e0ae917f61904db440ef17382093d1"><code>48e375b</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/b8a4fc132e65d8310e2de67e0600eec53e2f4b26"><code>b8a4fc1</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/e8627b4cc01977004c41ff0f42670a44d500982d"><code>e8627b4</code></a> Merge pull request <a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3430">#3430</a> from aws/fix-remove-ioutil</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/4e258a368c5b421d28bae4a18e718b1b4c7dd16a"><code>4e258a3</code></a> chore: update changelog description per review</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.18...config/v1.32.22">compare view</a></li> </ul> </details> <br /> Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.42.1 to 1.43.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/b3e07aa0a0dd26ec46095c28ce65301da2e78dba"><code>b3e07aa</code></a> Release 2023-11-20</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/2fc1c0dab14dff82fc2c2465cb7c40a4157196a0"><code>2fc1c0d</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/1a6bd026243230178e775059d27038c0ced194ea"><code>1a6bd02</code></a> Update endpoints model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/ac2c871bff4a9fbb6284f1dcc061fdcabea346f3"><code>ac2c871</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/03c6858107f8c4c85637c18e1b643e33ca4575c0"><code>03c6858</code></a> deprecate v4.SignHTTPRequestMiddleware (<a href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/2375">#2375</a>)</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/0be05fa6cc06d8e81eda10cbf8413030754c4df6"><code>0be05fa</code></a> Release 2023-11-17</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/d0c9d422756e7eb30b9937468e659b140fc5e578"><code>d0c9d42</code></a> Regenerated Clients</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/e2ede4019d693a352b0ccbb0b87dd74c1fb4990e"><code>e2ede40</code></a> Update endpoints model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/7720f87d0ec2f3609e2912c864b6f9ae550e0792"><code>7720f87</code></a> Update API model</li> <li><a href="https://github.com/aws/aws-sdk-go-v2/commit/4bd06b93f8627928c17604383bd8639f2cb23739"><code>4bd06b9</code></a> Merge customizations for service s3</li> <li>Additional commits viewable in <a href="https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.42.1...service/s3/v1.43.1">compare view</a></li> </ul> </details> <br /> Updates `github.com/bytedance/sonic` from 1.15.1 to 1.15.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/bytedance/sonic/releases">github.com/bytedance/sonic's releases</a>.</em></p> <blockquote> <h2>v1.15.2</h2> <h2>What's Changed</h2> <ul> <li>rebase: update dev_hw with latest main by <a href="https://github.com/hellohw188"><code>@hellohw188</code></a> in <a href="https://redirect.github.com/bytedance/sonic/pull/937">bytedance/sonic#937</a></li> <li>Revert "rebase: update dev_hw with latest main" by <a href="https://github.com/liuq19"><code>@liuq19</code></a> in <a href="https://redirect.github.com/bytedance/sonic/pull/941">bytedance/sonic#941</a></li> <li>fix: align map runtime compatibility with Go 1.24+ by <a href="https://github.com/liuq19"><code>@liuq19</code></a> in <a href="https://redirect.github.com/bytedance/sonic/pull/951">bytedance/sonic#951</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/bytedance/sonic/compare/v1.15.1...v1.15.2">https://github.com/bytedance/sonic/compare/v1.15.1...v1.15.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/bytedance/sonic/commit/579b6ffa7b3b36665600615500a2bf2d59964c5c"><code>579b6ff</code></a> fix: use legacy map iterator shim</li> <li><a href="https://github.com/bytedance/sonic/commit/d77451355d8ae076459356fb89aac3b1c837e027"><code>d774513</code></a> fix: align map runtime tags with Go 1.24</li> <li><a href="https://github.com/bytedance/sonic/commit/47cc3ed0c10b735127abdba4651b0f939949ff2a"><code>47cc3ed</code></a> Revert "rebase: update dev_hw with latest main" (<a href="https://redirect.github.com/bytedance/sonic/issues/941">#941</a>)</li> <li><a href="https://github.com/bytedance/sonic/commit/fdf817a24dedf68ee60c13a50b887d99eb6b0dfa"><code>fdf817a</code></a> chore: update llvm</li> <li><a href="https://github.com/bytedance/sonic/commit/93044d2e5efd844250915435020a3885f8326c2c"><code>93044d2</code></a> fix:add pretouchRecX86 in arm64 and add !arm64 to loader_go117_test.go</li> <li><a href="https://github.com/bytedance/sonic/commit/59cca7ca115c17b5a15b9731b10a4040982440fe"><code>59cca7c</code></a> feat: update sve_linkname|sve_wrapgoc with asm2arm_tool</li> <li><a href="https://github.com/bytedance/sonic/commit/76dcf4a830bb447aaaffc702468eb0768d9cc05f"><code>76dcf4a</code></a> chore: add asm2arm_tool execution and test scripts</li> <li><a href="https://github.com/bytedance/sonic/commit/ccddb06137cc52e0ef6bb3d5d16ac08e364c7e98"><code>ccddb06</code></a> feat: add SL mode support for asm2arm_tool</li> <li><a href="https://github.com/bytedance/sonic/commit/a756ce4d6c940eba7a2bca9817ab1c2d9c025280"><code>a756ce4</code></a> feat: add JIT mode support for asm2arm_tool</li> <li><a href="https://github.com/bytedance/sonic/commit/1d176268eb2cea9dc083e18b38537d9e14141e37"><code>1d17626</code></a> feat: use SVE acceleration in linkname and wrapgoc</li> <li>Additional commits viewable in <a href="https://github.com/bytedance/sonic/compare/v1.15.1...v1.15.2">compare view</a></li> </ul> </details> <br /> Updates `github.com/openai/openai-go/v3` from 3.37.0 to 3.39.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-go/releases">github.com/openai/openai-go/v3's releases</a>.</em></p> <blockquote> <h2>v3.39.0</h2> <h2>3.39.0 (2026-06-03)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-%5Bgo/compare/v3.38.0...v3.39.0%5D(https://www.golinks.io/compare/v3.38.0...v3.39.0?trackSource=github)">v3.38.0...v3.39.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> responses.moderation and chat_completions.moderation (<a href="https://github.com/openai/openai-%5Bgo/commit/7a2dac0ddf6b92dfcaa45b190dbe7f51368e199c%5D(https://www.golinks.io/commit/7a2dac0ddf6b92dfcaa45b190dbe7f51368e199c?trackSource=github)">7a2dac0</a>)</li> </ul> <h2>v3.38.0</h2> <h2>3.38.0 (2026-06-01)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-go/compare/v3.37.0...v3.38.0">v3.37.0...v3.38.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> manual updates (<a href="https://github.com/openai/openai-go/commit/d7dac8192c292d882cb765d3379e10427930979e">d7dac81</a>)</li> <li><strong>api:</strong> workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (<a href="https://github.com/openai/openai-go/commit/4c3981cfabc98ec1d67c2baf7c6a891ef6640f96">4c3981c</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/openai/openai-go/blob/main/CHANGELOG.md">github.com/openai/openai-go/v3's changelog</a>.</em></p> <blockquote> <h2>3.39.0 (2026-06-03)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-go/compare/v3.38.0...v3.39.0">v3.38.0...v3.39.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> responses.moderation and chat_completions.moderation (<a href="https://github.com/openai/openai-go/commit/7a2dac0ddf6b92dfcaa45b190dbe7f51368e199c">7a2dac0</a>)</li> </ul> <h2>3.38.0 (2026-06-01)</h2> <p>Full Changelog: <a href="https://github.com/openai/openai-go/compare/v3.37.0...v3.38.0">v3.37.0...v3.38.0</a></p> <h3>Features</h3> <ul> <li><strong>api:</strong> manual updates (<a href="https://github.com/openai/openai-go/commit/d7dac8192c292d882cb765d3379e10427930979e">d7dac81</a>)</li> <li><strong>api:</strong> workload identity in audit logs, additional_tools item in responses, fix ActionSearch.query to be optional. (<a href="https://github.com/openai/openai-go/commit/4c3981cfabc98ec1d67c2baf7c6a891ef6640f96">4c3981c</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/openai/openai-go/commit/bfe92982d403b8eae7a355eb6a86650ee20b3570"><code>bfe9298</code></a> release: 3.39.0</li> <li><a href="https://github.com/openai/openai-go/commit/b256c9a1cf224ae0cad685e9072968dba7932693"><code>b256c9a</code></a> feat(api): responses.moderation and chat_completions.moderation</li> <li><a href="https://github.com/openai/openai-go/commit/fd8c615caa0b247c5a9de7318f457df1a014ea22"><code>fd8c615</code></a> codegen metadata</li> <li><a href="https://github.com/openai/openai-go/commit/f25b030d119ec829f5dd78db9e05eff31b8f178d"><code>f25b030</code></a> release: 3.38.0</li> <li><a href="https://github.com/openai/openai-go/commit/08e89a6fc0acbacf4645e16183e1130486e8a5de"><code>08e89a6</code></a> feat(api): workload identity in audit logs, additional_tools item in response...</li> <li>See full diff in <a href="https://github.com/openai/openai-go/compare/v3.37.0...v3.39.0">compare view</a></li> </ul> </details> <br /> Updates `github.com/prometheus/common` from 0.67.5 to 0.68.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/prometheus/common/releases">github.com/prometheus/common's releases</a>.</em></p> <blockquote> <h2>v0.68.1</h2> <h2>What's Changed</h2> <ul> <li>build(deps): bump golang.org/x/net from 0.52.0 to 0.53.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/prometheus/common/pull/903">prometheus/common#903</a></li> <li>build(deps): bump golang.org/x/net from 0.53.0 to 0.55.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/prometheus/common/pull/914">prometheus/common#914</a></li> <li>Synchronize common files from prometheus/prometheus by <a href="https://github.com/prombot"><code>@prombot</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/915">prometheus/common#915</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/prometheus/common/compare/v0.68.0...v0.68.1">https://github.com/prometheus/common/compare/v0.68.0...v0.68.1</a></p> <h2>v0.68.0</h2> <h2>What's Changed</h2> <ul> <li>Synchronize common files from prometheus/prometheus by <a href="https://github.com/prombot"><code>@prombot</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/873">prometheus/common#873</a></li> <li>Synchronize common files from prometheus/prometheus by <a href="https://github.com/prombot"><code>@prombot</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/874">prometheus/common#874</a></li> <li>build(deps): bump github.com/golang-jwt/jwt/v5 from 5.3.0 to 5.3.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/prometheus/common/pull/879">prometheus/common#879</a></li> <li>build(deps): bump golang.org/x/net from 0.48.0 to 0.49.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/prometheus/common/pull/878">prometheus/common#878</a></li> <li>Synchronize common files from prometheus/prometheus by <a href="https://github.com/prombot"><code>@prombot</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/875">prometheus/common#875</a></li> <li>Synchronize common files from prometheus/prometheus by <a href="https://github.com/prombot"><code>@prombot</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/880">prometheus/common#880</a></li> <li>Remove logic adding unit to metrics name by <a href="https://github.com/vesari"><code>@vesari</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/877">prometheus/common#877</a></li> <li>Synchronize common files from prometheus/prometheus by <a href="https://github.com/prombot"><code>@prombot</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/881">prometheus/common#881</a></li> <li>Update for Go 1.26 by <a href="https://github.com/SuperQ"><code>@SuperQ</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/883">prometheus/common#883</a></li> <li>build(deps): bump golang.org/x/net from 0.49.0 to 0.51.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/prometheus/common/pull/882">prometheus/common#882</a></li> <li>version: Add a slog helper by <a href="https://github.com/SuperQ"><code>@SuperQ</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/886">prometheus/common#886</a></li> <li>Remove Arthur from maintainers list by <a href="https://github.com/ArthurSens"><code>@ArthurSens</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/885">prometheus/common#885</a></li> <li>Synchronize common files from prometheus/prometheus by <a href="https://github.com/prombot"><code>@prombot</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/895">prometheus/common#895</a></li> <li>Synchronize common files from prometheus/prometheus by <a href="https://github.com/prombot"><code>@prombot</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/896">prometheus/common#896</a></li> <li>config: change NewOAuth2RoundTripper to accept variadic HTTPClientOption by <a href="https://github.com/alliasgher"><code>@alliasgher</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/898">prometheus/common#898</a></li> <li>config: guard against nil oauth2 credential in RoundTrip by <a href="https://github.com/alliasgher"><code>@alliasgher</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/897">prometheus/common#897</a></li> <li>build(deps): bump golang.org/x/net from 0.51.0 to 0.52.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/prometheus/common/pull/890">prometheus/common#890</a></li> <li>build(deps): bump go.yaml.in/yaml/v2 from 2.4.3 to 2.4.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/prometheus/common/pull/891">prometheus/common#891</a></li> <li>build(deps): bump golang.org/x/oauth2 from 0.34.0 to 0.36.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/prometheus/common/pull/892">prometheus/common#892</a></li> <li>Move interface assertions to a test file by <a href="https://github.com/msiegen"><code>@msiegen</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/839">prometheus/common#839</a></li> <li>fix(http_config): fix client cert rotation when no CA is configured by <a href="https://github.com/machine424"><code>@machine424</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/908">prometheus/common#908</a></li> <li>Remove CircleCI by <a href="https://github.com/ArthurSens"><code>@ArthurSens</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/910">prometheus/common#910</a></li> <li>Fix: apply DialContextFunc to OAuth2 token-fetch transport by <a href="https://github.com/yuri-tceretian"><code>@yuri-tceretian</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/911">prometheus/common#911</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/alliasgher"><code>@alliasgher</code></a> made their first contribution in <a href="https://redirect.github.com/prometheus/common/pull/898">prometheus/common#898</a></li> <li><a href="https://github.com/msiegen"><code>@msiegen</code></a> made their first contribution in <a href="https://redirect.github.com/prometheus/common/pull/839">prometheus/common#839</a></li> <li><a href="https://github.com/machine424"><code>@machine424</code></a> made their first contribution in <a href="https://redirect.github.com/prometheus/common/pull/908">prometheus/common#908</a></li> <li><a href="https://github.com/yuri-tceretian"><code>@yuri-tceretian</code></a> made their first contribution in <a href="https://redirect.github.com/prometheus/common/pull/911">prometheus/common#911</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/prometheus/common/compare/v0.67.5...v0.68.0">https://github.com/prometheus/common/compare/v0.67.5...v0.68.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/prometheus/common/blob/main/CHANGELOG.md">github.com/prometheus/common's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>main / unreleased</h2> <h3>What's Changed</h3> <h2>v0.69.0 / 2026-06-17</h2> <h3>Security / behavior changes</h3> <ul> <li><strong>config: credentials are no longer forwarded across cross-host redirects.</strong> When <code>FollowRedirects</code> is enabled, the HTTP client now strips <code>Authorization</code>, <code>Cookie</code>, <code>Proxy-Authorization</code> and other sensitive headers, and skips basic-auth, bearer-token and OAuth2 credentials, when a redirect points to a different host. This aligns with Go's <code>net/http</code> behavior. Callers that relied on credentials being sent to a redirect target on another host will need to target that host directly. <a href="https://redirect.github.com/prometheus/common/issues/901">#901</a> <a href="https://redirect.github.com/prometheus/common/issues/920">#920</a> <a href="https://redirect.github.com/prometheus/common/issues/921">#921</a></li> <li>config: <code>LoadHTTPConfigFile</code> now resolves relative file paths (e.g. <code>*_file</code> credentials, <code>http_headers</code> files) against the config file's own directory instead of its parent directory. Configs that worked around the old behavior by prefixing paths with the config's directory name must drop that prefix. <a href="https://redirect.github.com/prometheus/common/issues/925">#925</a></li> </ul> <h3>Bugfixes</h3> <ul> <li>expfmt: fix nil pointer panic when parsing empty braces <code>{}</code>. <a href="https://redirect.github.com/prometheus/common/issues/922">#922</a></li> <li>model: fix <code>Time.UnmarshalJSON</code> for larger negative numbers. <a href="https://redirect.github.com/prometheus/common/issues/918">#918</a></li> </ul> <h3>Performance</h3> <ul> <li>model: reduce allocations in <code>Time.UnmarshalJSON</code>. <a href="https://redirect.github.com/prometheus/common/issues/918">#918</a></li> </ul> <h3>Internal</h3> <ul> <li>Synchronize common files from prometheus/prometheus. <a href="https://redirect.github.com/prometheus/common/issues/917">#917</a></li> <li>Modernize Go. <a href="https://redirect.github.com/prometheus/common/issues/919">#919</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/prometheus/common/compare/v0.68.1...v0.69.0">https://github.com/prometheus/common/compare/v0.68.1...v0.69.0</a></p> <h2>v0.67.2 / 2025-10-28</h2> <h2>What's Changed</h2> <ul> <li>config: Fix panic in <code>tlsRoundTripper</code> when CA file is absent by <a href="https://github.com/ndk"><code>@ndk</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/792">prometheus/common#792</a></li> <li>Cleanup linting issues by <a href="https://github.com/SuperQ"><code>@SuperQ</code></a> in <a href="https://redirect.github.com/prometheus/common/pull/860">prometheus/common#860</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/ndk"><code>@ndk</code></a> made their first contribution in <a href="https://redirect.github.com/prometheus/common/pull/792">prometheus/common#792</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/prometheus/common/compare/v0.67.1...v0.67.2">https://github.com/prometheus/common/compare/v0.67.1...v0.67.2</a></p> <h2>v0.67.1 / 2025-10-07</h2> <h2>What's Changed</h2> <ul> <li>Remove VERSION file to avoid Go conflict error in <a href="https://redirect.github.com/prometheus/common/pull/853">prometheus/common#853</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/prometheus/common/compare/v0.67.0...v0.67.1">https://github.com/prometheus/common/compare/v0.67.0...v0.67.1</a></p> <h2>v0.67.0 / 2025-10-07</h2> <h2>What's Changed</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/prometheus/common/commit/212057321e897d625d07379aaddaca01afca7710"><code>2120573</code></a> Update common Prometheus files (<a href="https://redirect.github.com/prometheus/common/issues/915">#915</a>)</li> <li><a href="https://github.com/prometheus/common/commit/228386adfe1e9c8ede570fbca47782a9abca1a35"><code>228386a</code></a> build(deps): bump golang.org/x/net from 0.53.0 to 0.55.0 (<a href="https://redirect.github.com/prometheus/common/issues/914">#914</a>)</li> <li><a href="https://github.com/prometheus/common/commit/b8c88b4866403159e523c588dc7563b0f78c0418"><code>b8c88b4</code></a> build(deps): bump golang.org/x/net from 0.52.0 to 0.53.0 (<a href="https://redirect.github.com/prometheus/common/issues/903">#903</a>)</li> <li><a href="https://github.com/prometheus/common/commit/1e0ae832fb26a2c20c2c0d6ee1289111c668be18"><code>1e0ae83</code></a> config: apply DialContextFunc to OAuth2 token-fetch transport (<a href="https://redirect.github.com/prometheus/common/issues/911">#911</a>)</li> <li><a href="https://github.com/prometheus/common/commit/b51d01ba2175d103309dcee11f6c01bd03487a64"><code>b51d01b</code></a> Remove CircleCI (<a href="https://redirect.github.com/prometheus/common/issues/910">#910</a>)</li> <li><a href="https://github.com/prometheus/common/commit/0f3c348807322ea84d92fc7688b1b37a08e17d1f"><code>0f3c348</code></a> Merge pull request <a href="https://redirect.github.com/prometheus/common/issues/908">#908</a> from machine424/ttlsco</li> <li><a href="https://github.com/prometheus/common/commit/732a9cf781621a8d8f895ef933b78cf4e9f5d6af"><code>732a9cf</code></a> fix(http_config): fix client cert rotation when no CA is configured</li> <li><a href="https://github.com/prometheus/common/commit/ce9215c53d8c8e507c5f72a69d80568c072be3d9"><code>ce9215c</code></a> Move interface assertions to a test file (<a href="https://redirect.github.com/prometheus/common/issues/839">#839</a>)</li> <li><a href="https://github.com/prometheus/common/commit/1ba5ed78ffdaf199c6dded3ff8ac88edbdb53712"><code>1ba5ed7</code></a> build(deps): bump golang.org/x/oauth2 from 0.34.0 to 0.36.0 (<a href="https://redirect.github.com/prometheus/common/issues/892">#892</a>)</li> <li><a href="https://github.com/prometheus/common/commit/8f8ada69df73ad76cabef710856070a42ef420c0"><code>8f8ada6</code></a> build(deps): bump go.yaml.in/yaml/v2 from 2.4.3 to 2.4.4 (<a href="https://redirect.github.com/prometheus/common/issues/891">#891</a>)</li> <li>Additional commits viewable in <a href="https://github.com/prometheus/common/compare/v0.67.5...v0.68.1">compare view</a></li> </ul> </details> <br /> Updates `google.golang.org/api` from 0.282.0 to 0.283.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's releases</a>.</em></p> <blockquote> <h2>v0.283.0</h2> <h2><a href="https://github.com/googleapis/google-api-go-client/compare/v0.282.0...v0.283.0">0.283.0</a> (2026-06-01)</h2> <h3>Features</h3> <ul> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3609">#3609</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/ed84bb800c56d3f7fee4c11f96673114e94a8cc2">ed84bb8</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3611">#3611</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/3855346eda7f4ba6c844d86de5de493d3e395f00">3855346</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3612">#3612</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/32624d32240ec8e5997810fb9cb54f8000b6c7f8">32624d3</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/google-api-go-client/compare/v0.282.0...v0.283.0">0.283.0</a> (2026-06-01)</h2> <h3>Features</h3> <ul> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3609">#3609</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/ed84bb800c56d3f7fee4c11f96673114e94a8cc2">ed84bb8</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3611">#3611</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/3855346eda7f4ba6c844d86de5de493d3e395f00">3855346</a>)</li> <li><strong>all:</strong> Auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3612">#3612</a>) (<a href="https://github.com/googleapis/google-api-go-client/commit/32624d32240ec8e5997810fb9cb54f8000b6c7f8">32624d3</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/google-api-go-client/commit/f6726366ff2f0b8fc82cec6f063dc9beb3ab1377"><code>f672636</code></a> chore(main): release 0.283.0 (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3610">#3610</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/32624d32240ec8e5997810fb9cb54f8000b6c7f8"><code>32624d3</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3612">#3612</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/3855346eda7f4ba6c844d86de5de493d3e395f00"><code>3855346</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3611">#3611</a>)</li> <li><a href="https://github.com/googleapis/google-api-go-client/commit/ed84bb800c56d3f7fee4c11f96673114e94a8cc2"><code>ed84bb8</code></a> feat(all): auto-regenerate discovery clients (<a href="https://redirect.github.com/googleapis/google-api-go-client/issues/3609">#3609</a>)</li> <li>See full diff in <a href="https://github.com/googleapis/google-api-go-client/compare/v0.282.0...v0.283.0">compare view</a></li> </ul> </details> <br /> Updates `google.golang.org/genai` from 1.58.0 to 1.59.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/go-genai/releases">google.golang.org/genai's releases</a>.</em></p> <blockquote> <h2>v1.59.0</h2> <h2><a href="https://github.com/googleapis/go-genai/compare/v1.58.0...v1.59.0">1.59.0</a> (2026-06-03)</h2> <h3>Features</h3> <ul> <li>Add Agent Platform MCP support to async generate_content (<a href="https://github.com/googleapis/go-genai/commit/4b138c23dba7df1d76626fbc4565d4838469ce96">4b138c2</a>)</li> <li>Add transcription language code. (<a href="https://github.com/googleapis/go-genai/commit/cc4dd9cdd6e3c09044493c439c89cb67254539de">cc4dd9c</a>)</li> <li>Add TranslationConfig for live translation. (<a href="https://github.com/googleapis/go-genai/commit/76f4126a18dbb6c4606f649e1f8400003364f785">76f4126</a>)</li> <li>additional computer_use field support for vertex. (<a href="https://github.com/googleapis/go-genai/commit/8831eb39c99879b30695b3c1262d70a0b2b25450">8831eb3</a>)</li> <li>Support 'additionalProperties', 'defs' and 'ref' in the GenerateContent.Schema type. (<a href="https://github.com/googleapis/go-genai/commit/996b8316fdc4dfe1bb5d70e3af45542a4a55bf9e">996b831</a>)</li> <li>Support Reinforcement Tuning in GenAI SDK (<a href="https://github.com/googleapis/go-genai/commit/fecb49e3d7870921be23054457b7b5163b8bba4f">fecb49e</a>)</li> <li>Support ReinforcementTuning in GenAI SDK including ValidateReward API method. (<a href="https://github.com/googleapis/go-genai/commit/c95d115482daa0e69a02b25c239bd232bf62f054">c95d115</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/go-genai/blob/main/CHANGELOG.md">google.golang.org/genai's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/go-genai/compare/v1.58.0...v1.59.0">1.59.0</a> (2026-06-03)</h2> <h3>Features</h3> <ul> <li>Add Agent Platform MCP support to async generate_content (<a href="https://github.com/googleapis/go-genai/commit/4b138c23dba7df1d76626fbc4565d4838469ce96">4b138c2</a>)</li> <li>Add transcription language code. (<a href="https://github.com/googleapis/go-genai/commit/cc4dd9cdd6e3c09044493c439c89cb67254539de">cc4dd9c</a>)</li> <li>Add TranslationConfig for live translation. (<a href="https://github.com/googleapis/go-genai/commit/76f4126a18dbb6c4606f649e1f8400003364f785">76f4126</a>)</li> <li>additional computer_use field support for vertex. (<a href="https://github.com/googleapis/go-genai/commit/8831eb39c99879b30695b3c1262d70a0b2b25450">8831eb3</a>)</li> <li>Support 'additionalProperties', 'defs' and 'ref' in the GenerateContent.Schema type. (<a href="https://github.com/googleapis/go-genai/commit/996b8316fdc4dfe1bb5d70e3af45542a4a55bf9e">996b831</a>)</li> <li>Support Reinforcement Tuning in GenAI SDK (<a href="https://github.com/googleapis/go-genai/commit/fecb49e3d7870921be23054457b7b5163b8bba4f">fecb49e</a>)</li> <li>Support ReinforcementTuning in GenAI SDK including ValidateReward API method. (<a href="https://github.com/googleapis/go-genai/commit/c95d115482daa0e69a02b25c239bd232bf62f054">c95d115</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/go-genai/commit/bba8883a9ecbbb04ee5d5e3a2b665136483b7ce2"><code>bba8883</code></a> chore(main): release 1.59.0 (<a href="https://redirect.github.com/googleapis/go-genai/issues/799">#799</a>)</li> <li><a href="https://github.com/googleapis/go-genai/commit/c95d115482daa0e69a02b25c239bd232bf62f054"><code>c95d115</code></a> feat: Support ReinforcementTuning in GenAI SDK including ValidateReward API m...</li> <li><a href="https://github.com/googleapis/go-genai/commit/cc4dd9cdd6e3c09044493c439c89cb67254539de"><code>cc4dd9c</code></a> feat: Add transcription language code.</li> <li><a href="https://github.com/googleapis/go-genai/commit/d1ef633b5a7139cd0b92c935a7c480d2de137839"><code>d1ef633</code></a> chore: deprecate Google Maps grounding widget API fields</li> <li><a href="https://github.com/googleapis/go-genai/commit/76f4126a18dbb6c4606f649e1f8400003364f785"><code>76f4126</code></a> feat: Add TranslationConfig for live translation.</li> <li><a href="https://github.com/googleapis/go-genai/commit/4b138c23dba7df1d76626fbc4565d4838469ce96"><code>4b138c2</code></a> feat: Add Agent Platform MCP support to async generate_content</li> <li><a href="https://github.com/googleapis/go-genai/commit/2468757ab49e306020701e183d3d3a60b9328992"><code>2468757</code></a> chore: Remove 'additionalProperties', 'defs' and 'ref' in the GenerateContent...</li> <li><a href="https://github.com/googleapis/go-genai/commit/12650726cd492be68381b900f12e79308a07d467"><code>1265072</code></a> chore: Internal cleanup</li> <li><a href="https://github.com/googleapis/go-genai/commit/8831eb39c99879b30695b3c1262d70a0b2b25450"><code>8831eb3</code></a> feat: additional computer_use field support for vertex.</li> <li><a href="https://github.com/googleapis/go-genai/commit/996b8316fdc4dfe1bb5d70e3af45542a4a55bf9e"><code>996b831</code></a> feat: Support 'additionalProperties', 'defs' and 'ref' in the GenerateContent...</li> <li>Additional commits viewable in <a href="https://github.com/googleapis/go-genai/compare/v1.58.0...v1.59.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
…yproxy#2274) **Description** The previous gateway controller code made assumptions about the namespace consistency across gateway resources. This change adds an explicit check and returns an error if there are inconsistencies. **Related Issues/PRs (if applicable)** N/A **Special notes for reviewers (if applicable)** N/A Signed-off-by: Ignasi Barrera <ignasi@tetrate.io>
**Description** Set an upper bound for content blocks to prevent unreasonable values from eating up all memory. **Related Issues/PRs (if applicable)** N/A **Special notes for reviewers (if applicable)** N/A Signed-off-by: Ignasi Barrera <ignasi@tetrate.io>
… pointers (envoyproxy#2242) **Description** Adds nil checks for tool call IDs before dereferencing the pointers. **Related Issues/PRs (if applicable)** N/A **Special notes for reviewers (if applicable)** N/A Signed-off-by: Ignasi Barrera <nacx@apache.org>
…logs (envoyproxy#2245) **Description** Implements the `slog.LogValuer` interface in the internal FilterAPI structs to avoid leaking sensitive fields into the logs if those types are used in log messages. **Related Issues/PRs (if applicable)** N/A **Special notes for reviewers (if applicable)** N/A --------- Signed-off-by: Ignasi Barrera <ignasi@tetrate.io> Co-authored-by: Aaron Choo <achoo30@bloomberg.net>
envoyproxy#2270) **Description** Prepare release documentation for the upcoming **v1.0.0** release. Docs-only change in two parts: - **`RELEASES.md`** — record the API stability commitment that motivates the major version bump. As of v1.0.0, `v1beta1` is the committed **stable** control-plane API and is covered by the existing "never break unless critical security" guarantee. `v1alpha1` remains served but deprecated and will be removed in a future release per the deprecation policy. `QuotaPolicy` stays `v1alpha1`-only and is therefore outside the stable surface; in particular its `serviceQuota` field is accepted but not yet enforced end-to-end. - **`site/docs/compatibility.md`** — add the `v1.0.x` row to the compatibility matrix (Envoy Gateway v1.8.x+, Envoy Proxy v1.38.x, Kubernetes v1.32+, Gateway API v1.5.x). No API, controller, or data-plane code changes. AI usage: these docs were drafted with assistance from Claude (Claude Code) and reviewed by the author. **Related Issues/PRs (if applicable)** **Special notes for reviewers (if applicable)** This is forward-looking v1.0 release-prep. The new `v1.0.x` compatibility row is marked `Supported` and the `RELEASES.md` wording says "as of the v1.0.0 release", even though v1.0.0 has not been tagged yet. Intent is for this to land as part of, or immediately before, the v1.0 cut rather than necessarily merging standalone today. Two items intentionally left to maintainers: - EOL rolling in the compatibility matrix. With the v0.7 to v1.0 major jump, which of v0.7.x / v0.6.x / v0.5.x roll to End of Life is a judgment call; this PR only adds the `v1.0.x` row and does not change existing support statuses. - The `serviceQuota` docs accuracy fix tracked on the `docs/quota-policy-accuracy` branch is complementary to the `RELEASES.md` note added here. --------- Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
**Description** Adds comprehensive documentation for the QuotaPolicy CRD, which was fully implemented but had no user-facing documentation. Covers service-wide quotas, per-model quotas, CEL cost expressions, Exclusive vs Shared bucket modes, client-selector based bucket rules, shadow mode, and duration format. Follows the structure of existing traffic capability guides. Distinguishes QuotaPolicy (total consumption budgets) from rate limiting (request velocity) to help adopters choose the right mechanism. **Related Issues/PRs (if applicable)** Related envoyproxy#1571 **Special notes for reviewers (if applicable)** All field definitions and semantics sourced from `api/v1alpha1/quota_policy.go` GoDoc comments. Includes complete, copy-pasteable YAML examples for every configuration option. --------- Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com> Signed-off-by: Aaron Choo <achoo30@bloomberg.net> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Aaron Choo <achoo30@bloomberg.net>
…y#2240) **Description** A JSON `null` response body decodes into a nil `*ChatCompletionResponse` without an error, because the decode target is a `**ChatCompletionResponse` (`Decode(&resp)`). Some OpenAI-compatible backends return a `null` body with a 200 status (e.g. an upstream that aborts the response after committing headers under load). In the non-streaming path `ResponseBody` then dereferenced the nil response at `resp.Usage.PromptTokens`, panicking the ext-proc with a SIGSEGV (addr 0x80). `RedactBody` already guards `resp == nil`, so the nil case is known; the main path just missed it. This treats a nil response as an empty response: report zero token usage and fall back to the request model, mirroring the streaming path's behavior when no usage is present, rather than crashing. A regression test feeds a literal `null` body and asserts no panic and zero usage. Per the project's generative-AI policy: this change was prepared with the assistance of an AI coding tool (Claude Code). The submitter understands and takes full ownership of the change. **Related Issues/PRs (if applicable)** Fixes envoyproxy#2273 **Special notes for reviewers (if applicable)** N/A Signed-off-by: Kunwar Srivastav <kshivamsrivastav@gmail.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
…yproxy#2237) **Description** Fix two bugs in the Anthropic-to-Bedrock translator message merging logic at `internal/translator/anthropic_awsbedrock.go`. **Bug 1: Wrong slice index (original report)** When system messages are present in the request body, `promoteAnthropicSystemMessagesToParam` filters them out, producing a shorter `messages` slice. The coalescing loop was using `body.Messages[i+1]` (the original unfiltered slice) instead of `messages[i+1]` (the filtered slice), causing index misalignment that could read wrong messages or panic with out-of-bounds access. **Bug 2: Coalescing logic was unreachable (root cause)** Tool result messages have `Role: "user"`, so they match `case anthropicschema.MessageRoleUser` and go through `convertUserMessage()` — which handles tool results individually but never coalesces consecutive ones. The coalescing logic in the `default` branch was dead code for tool results since they never reach that branch. **Changes** - Moved the `hasToolResult` check + coalescing loop into the `MessageRoleUser` case branch - Non-tool-result user messages still go through `convertUserMessage()` - Changed `body.Messages[i+1]` → `messages[i+1]` to use the correct filtered slice - Simplified the `default` branch to just return an error for unexpected roles - Updated existing test to expect coalesced output (3 messages instead of 4) - Added regression test with system messages to verify index alignment **Testing** - All existing translator tests pass - New `TestAnthropicToAWSBedrockTranslator_RequestBody_ToolResultMessagesWithSystemMessages` verifies the fix works when system messages are present alongside consecutive tool results --------- Signed-off-by: liuhy <liuhongyu@apache.org> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io>
v1.0.0 marks v1beta1 control-plane API as stable (per RELEASES.md). 46 commits since v0.7.0 — mostly bug fixes (Bedrock translator coalescing, Anthropic streaming usage double-counting, GCP camelCase JSON tags, MCP secret leak, RBAC empty-namespace) plus two feats: - openai → gcp embedContent translation for gemini-embedding-2 (envoyproxy#2114) - completion token details for Anthropic models (envoyproxy#2199) Conflicts resolved (2 files): - internal/apischema/gcp/gcp.go: fork's CachedContentRequest struct and upstream's new EmbedContent* structs were added at the same file-tail location. Kept both. - internal/translator/openai_gcpvertexai_test.go: upstream removed the "content-length" entry from expected wantHeaderMut across 10 test cases (consistent with the upstream change that no longer emits content-length when no body mutation is needed — fix: skip CONTINUE_AND_REPLACE when no body change is needed, envoyproxy#2170). Took upstream's version everywhere. Verified after merge: - go build ./... ✓ - go vet ./... ✓ - All affected unit tests pass (apischema/anthropic, apischema/openai, translator, extproc, endpointspec, mainlib, backendauth). - Fork-only feature tests pass: cachedContents translator (Vertex form + Developer API form), expandToVertexFullModelPath, rewriteVertexModelName, ImageEdits translator, server prefix fallback router, mainlib path extractors for cachedContents + region. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
router.ProcessRequestBody re-set x-ai-eg-original-path unconditionally, overwriting the pre-rewrite path stored by ProcessRequestHeaders. By the time ProcessRequestBody runs, r.requestHeaders[":path"] already holds the rewritten form (e.g. /cachedContents after /v1beta/cachedContents → /cachedContents), so upstream-filter's processorForPath then looked up /cachedContents — which is not a registered prefix — and returned no processor. The upstream filter silently produced no response and Envoy 60s-timed the request out (504 UT). The v0.7-era code had this exact guard; it was dropped in the v1.0.0 merge conflict resolution (upstream removed it, we accepted upstream's version). Restore the fork's guard so bump-through GET/DELETE bodyless requests still get the header from ProcessRequestHeaders and body-carrying requests don't clobber it in ProcessRequestBody. Symptom: POST /v1beta/cachedContents 504s with response_flags=UT after v1.0.0 deploy. Regression only affects paths that go through rewriteDeveloperAPIPath (cachedContents Developer-API form) — generateContent is unaffected because its :path rewrite happens in the upstream stage. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
📝 WalkthroughWalkthrough이번 변경은 임베딩 요청·Vertex AI 경로, 컨트롤러 네임스페이스와 MCP 자격 증명 처리, 프록시 보호, 로그 마스킹, 쿼터·보안 문서, 릴리스·CI 구성을 갱신합니다. Changes임베딩 및 런타임
컨트롤러 및 MCP
문서 및 릴리스
빌드 유지보수
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant Client
participant EmbeddingTranslator
participant VertexAI
participant OpenAIResponse
Client->>EmbeddingTranslator: 임베딩 요청
EmbeddingTranslator->>VertexAI: predict 또는 embedContent
VertexAI-->>EmbeddingTranslator: 임베딩·토큰 사용량
EmbeddingTranslator->>OpenAIResponse: OpenAI 응답 변환
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
|
There was a problem hiding this comment.
Actionable comments posted: 12
🧹 Nitpick comments (6)
site/versioned_docs/version-0.7/_vars.json (1)
2-5: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win
aigwGitRef가 여전히main을 참조합니다.
aigwVersion은 이제 릴리스된0.7.0으로 고정되었지만,aigwGitRef는main(이동하는 브랜치)을 그대로 유지하고 있습니다. versioned docs는 해당 릴리스 시점의 소스코드를 링크해야 하므로,main을 참조하면 v0.7.0 릴리스 이후main에 반영된 변경 사항(코드가 다를 수 있음)을 잘못 링크할 위험이 있습니다.v0.7.0같은 고정 태그로 설정하는 것이 안전합니다.🤖 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 `@site/versioned_docs/version-0.7/_vars.json` around lines 2 - 5, Update the aigwGitRef configuration in _vars.json from the moving main branch to the fixed v0.7.0 release tag, keeping it aligned with aigwVersion.internal/endpointspec/endpointspec_test.go (1)
151-179: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win파싱된 임베딩 유니온 페이로드도 검증하세요.
현재는 모델과
parsed != nil만 확인하므로input또는messages가OfCompletion/OfChat에 보존되지 않아도 통과합니다. 각각의 유니온 존재 여부와 입력 텍스트를 assertion으로 확인하세요.🤖 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 `@internal/endpointspec/endpointspec_test.go` around lines 151 - 179, Strengthen the “success with input” and “success with messages” tests after spec.ParseBody by asserting the parsed embedding union is present in the expected OfCompletion or OfChat variant and that it retains the original input text or message content. Keep the existing model, stream, mutation, and error assertions unchanged.internal/translator/openai_awsbedrock_embeddings_test.go (1)
34-156: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win
OfCompletion누락 거부 경로를 테스트하세요.현재 테이블은 모두
OfCompletion을 설정합니다. 구현의 Line 44-46 분기가 제거·변경되어도 감지되지 않으므로,OfCompletion이 없는 요청이ErrInvalidRequestBody를 반환하는 케이스를 추가하세요.제안된 테스트 케이스
+ { + name: "missing completion input rejected", + input: openai.EmbeddingRequest{ + EmbeddingBaseRequest: openai.EmbeddingBaseRequest{ + Model: "amazon.titan-embed-text-v2:0", + }, + }, + wantErr: true, + },🤖 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 `@internal/translator/openai_awsbedrock_embeddings_test.go` around lines 34 - 156, Extend the table-driven tests around the existing embedding request cases with a request whose OfCompletion field is nil, and assert that it returns ErrInvalidRequestBody. Keep the case focused on the missing OfCompletion validation path and verify the specific error rather than only checking that an error occurred.internal/mcpproxy/handlers.go (2)
305-311: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win세션 검증 순서 수정에 대한 테스트 커버리지 부재.
doNotForwardResponseToBackends체크 전에s == nil검사를 먼저 수행하도록 순서가 바뀌었는데(스펙 준수를 위한 올바른 수정),handlers_test.go에는 세션 ID 없이*jsonrpc.Response를 보내 400을 기대하는 테스트가 보이지 않습니다. 회귀 방지를 위해 테스트 추가를 권장합니다.🤖 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 `@internal/mcpproxy/handlers.go` around lines 305 - 311, 현재 세션 검증 순서가 회귀되지 않도록 해당 핸들러 테스트에 세션 ID 없이 *jsonrpc.Response를 전송하는 케이스를 추가하세요. doNotForwardResponseToBackends 처리와 관계없이 s == nil일 때 HTTP 400과 적절한 “missing session ID” 오류 응답이 반환되는지 검증하고, 기존 유효 세션 테스트는 유지하세요.
279-294: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win413 응답에
MCPErrorInternal사용은 오분류.요청 바디 크기 초과는 클라이언트 오류인데
errType을metrics.MCPErrorInternal("internal_error")로 설정하고 있습니다. 메트릭/로그에서 클라이언트 유발 오류가 서버 내부 오류로 잘못 집계될 수 있습니다.metrics.MCPErrorInvalidParam등 클라이언트 오류 계열로 변경을 고려하세요.🛠️ 제안
var maxBytesErr *http.MaxBytesError if errors.As(err, &maxBytesErr) { - errType = metrics.MCPErrorInternal + errType = metrics.MCPErrorInvalidParam onErrorResponse(w, http.StatusRequestEntityTooLarge, "request body too large") return }🤖 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 `@internal/mcpproxy/handlers.go` around lines 279 - 294, Update the max-request-body error branch in the handler around http.MaxBytesReader so requests exceeding the limit set errType to the appropriate client-error metric, such as metrics.MCPErrorInvalidParam, instead of metrics.MCPErrorInternal; preserve the existing 413 response and handling for other body-read errors.internal/translator/anthropic_helper_test.go (1)
1164-1295: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winReasoningTokens 검증 누락.
이 PR의 핵심 변경인
SetReasoningTokens(message_delta의output_tokens_details.thinking_tokens기반)가 이 스트리밍 테스트 스위트에서 전혀 검증되지 않습니다. 테스트 케이스에output_tokens_details를 포함한 시나리오와tokenUsage.ReasoningTokens()assertion을 추가하는 것을 권장합니다.🤖 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 `@internal/translator/anthropic_helper_test.go` around lines 1164 - 1295, Extend TestAnthropicStreamParser_StreamingTokenUsage with a scenario containing message_delta.usage.output_tokens_details.thinking_tokens, add an expected reasoning-token value to the table, and assert tokenUsage.ReasoningTokens() is set and matches it after streaming completes. Ensure the fixture exercises the SetReasoningTokens path while preserving existing token assertions.
🤖 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 @.gitignore:
- Line 55: Update the .worktrees/ pattern in the root .gitignore to /.worktrees/
so only the repository-root worktree directory is ignored, while same-named
directories in nested paths remain unaffected.
In `@api/v1alpha1/quota_policy.go`:
- Around line 15-18: Update the top-level quota policy description near
QuotaRule/ShadowMode to state that 429 responses apply only to non-shadow
quotas, while ShadowMode quotas continue allowing requests after exhaustion.
Regenerate the affected CRD/API documentation so the corrected behavior is
reflected there as well.
In `@internal/controller/gateway.go`:
- Around line 1151-1187: Deduplicate the namespace list used by the pod,
deployment, and daemonset collection loop before iterating. Ensure gw.Namespace
is queried only once when it equals c.envoyGatewayNamespace, and avoid adding it
again when c.envoyGatewayNamespace is empty, while preserving distinctNamespaces
validation and existing list behavior.
In `@internal/controller/mcp_route.go`:
- Around line 596-604: Update the query-parameter URL construction in the
HTTPRoute rule generation flow around readAPIKey to URL-escape both
apiKey.QueryParam and apiKeyLiteral before composing fullPathPtr. Add the
required net/url import and preserve the existing error handling and parameter
structure.
In `@internal/tracing/openinference/anthropic/messages.go`:
- Around line 273-277: Apply the same non-negative and maximum-index validation
used for start events to ContentBlockDelta and ContentBlockStop before any slice
access in the message handling flow. Update
internal/tracing/openinference/anthropic/messages.go at lines 273-277 and the
corresponding delta/stop paths; add regression coverage in
internal/tracing/openinference/anthropic/messages_test.go at lines 213-268
confirming that negative delta and stop indices after a valid start are ignored
without panicking.
In `@internal/translator/anthropic_awsbedrock.go`:
- Around line 184-186: Update the system prompt construction around systemTexts
and body.System so existing top-level system content is preserved when messages
also contain role "system" entries. Merge the existing body.System text with the
promoted systemText blocks, retaining both contents and their ordering, instead
of unconditionally replacing body.System.
In `@internal/translator/anthropic_helper.go`:
- Around line 432-435: Keep the nil check in the tool-call validation flow
before any dereference of toolCall.ID, including the later use in the
surrounding translator logic. When toolCall.ID is nil, return the existing
internalapi.ErrInvalidRequestBody-wrapped error with the tool-call index and
required id field context, preventing a panic.
In `@internal/translator/openai_awsbedrock.go`:
- Around line 417-419: Update the tool-call ID validation in the translator flow
around toolCall.ID so it rejects nil, empty, and values that do not match
Bedrock’s allowed toolUseId pattern. Return the existing
internalapi.ErrInvalidRequestBody-wrapped error with the tool-call index for
every invalid ID, before forwarding it upstream.
In `@internal/translator/openai_gcpvertexai_embeddings_test.go`:
- Around line 476-483: Update the wantBodyNotContain assertions in the data URI
test case to use the correctly cased serialized key "fileUri" instead of
"fileURI", preserving the existing checks for "instances" and "parameters".
In `@internal/translator/openai_gcpvertexai_embeddings.go`:
- Around line 148-153: Update the global title assignment in the instances loop
so openAIReq.Title is applied only when the request task type is
RETRIEVAL_DOCUMENT. Preserve the existing behavior of leaving titles unset for
all other task types.
- Around line 165-171: Update isEmbedContentModel to recognize
gemini-embedding-001 by prefix rather than exact equality, so path- or
suffix-qualified forms such as `@default` and /models/... are routed to the
predict endpoint while other Gemini models still use embedContent.
In `@SECURITY.md`:
- Around line 69-81: Update the support-policy wording in SECURITY.md to align
with RELEASES.md and the documented v0.7.x support status: explicitly include
v0.7.x as a supported pre-v1 release or define the pre-v1 support policy
separately, and ensure the stated “two most recent minor releases” rule does not
incorrectly apply before v1.0.0.
---
Nitpick comments:
In `@internal/endpointspec/endpointspec_test.go`:
- Around line 151-179: Strengthen the “success with input” and “success with
messages” tests after spec.ParseBody by asserting the parsed embedding union is
present in the expected OfCompletion or OfChat variant and that it retains the
original input text or message content. Keep the existing model, stream,
mutation, and error assertions unchanged.
In `@internal/mcpproxy/handlers.go`:
- Around line 305-311: 현재 세션 검증 순서가 회귀되지 않도록 해당 핸들러 테스트에 세션 ID 없이
*jsonrpc.Response를 전송하는 케이스를 추가하세요. doNotForwardResponseToBackends 처리와 관계없이 s ==
nil일 때 HTTP 400과 적절한 “missing session ID” 오류 응답이 반환되는지 검증하고, 기존 유효 세션 테스트는
유지하세요.
- Around line 279-294: Update the max-request-body error branch in the handler
around http.MaxBytesReader so requests exceeding the limit set errType to the
appropriate client-error metric, such as metrics.MCPErrorInvalidParam, instead
of metrics.MCPErrorInternal; preserve the existing 413 response and handling for
other body-read errors.
In `@internal/translator/anthropic_helper_test.go`:
- Around line 1164-1295: Extend TestAnthropicStreamParser_StreamingTokenUsage
with a scenario containing
message_delta.usage.output_tokens_details.thinking_tokens, add an expected
reasoning-token value to the table, and assert tokenUsage.ReasoningTokens() is
set and matches it after streaming completes. Ensure the fixture exercises the
SetReasoningTokens path while preserving existing token assertions.
In `@internal/translator/openai_awsbedrock_embeddings_test.go`:
- Around line 34-156: Extend the table-driven tests around the existing
embedding request cases with a request whose OfCompletion field is nil, and
assert that it returns ErrInvalidRequestBody. Keep the case focused on the
missing OfCompletion validation path and verify the specific error rather than
only checking that an error occurred.
In `@site/versioned_docs/version-0.7/_vars.json`:
- Around line 2-5: Update the aigwGitRef configuration in _vars.json from the
moving main branch to the fixed v0.7.0 release tag, keeping it aligned with
aigwVersion.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ea6c1fdb-c66e-4bb8-8cdf-9594eeaf7c48
⛔ Files ignored due to path filters (4)
go.sumis excluded by!**/*.sumsite/package-lock.jsonis excluded by!**/package-lock.jsonsite/static/img/adopters/stacklok.pngis excluded by!**/*.pngtools/go.sumis excluded by!**/*.sum
📒 Files selected for processing (86)
.github/workflows/build_and_test.yaml.github/workflows/codeql.yaml.github/workflows/docker_build_job.yaml.github/workflows/release.yaml.gitignoreRELEASES.mdSECURITY.mdapi/v1alpha1/quota_policy.goapi/v1beta1/mcp_route.gocmd/aigw/translate.gocmd/controller/main.gocmd/controller/main_test.gogo.modinternal/apischema/gcp/gcp.gointernal/apischema/openai/openai.gointernal/bodymutator/body_mutator.gointernal/controller/ai_gateway_route.gointernal/controller/ai_gateway_route_test.gointernal/controller/controller.gointernal/controller/gateway.gointernal/controller/gateway_test.gointernal/controller/mcp_route.gointernal/controller/mcp_route_test.gointernal/endpointspec/endpointspec_test.gointernal/extensionserver/extensionserver_test.gointernal/extensionserver/inferencepool.gointernal/extensionserver/post_translate_modify.gointernal/extensionserver/post_translate_modify_test.gointernal/extproc/processor_impl.gointernal/extproc/processor_impl_test.gointernal/filterapi/filterconfig.gointernal/filterapi/filterconfig_test.gointernal/internalapi/internalapi.gointernal/mcpproxy/config.gointernal/mcpproxy/handlers.gointernal/mcpproxy/handlers_test.gointernal/mcpproxy/mcpproxy.gointernal/mcpproxy/mcpproxy_test.gointernal/pprof/pprof.gointernal/tracing/openinference/anthropic/messages.gointernal/tracing/openinference/anthropic/messages_test.gointernal/tracing/openinference/openai/embeddings_test.gointernal/tracing/openinference/openai/request_attrs.gointernal/tracing/tracing_test.gointernal/translator/anthropic_awsbedrock.gointernal/translator/anthropic_awsbedrock_test.gointernal/translator/anthropic_helper.gointernal/translator/anthropic_helper_test.gointernal/translator/anthropic_openai_test.gointernal/translator/gemini_helper.gointernal/translator/openai_awsanthropic_test.gointernal/translator/openai_awsbedrock.gointernal/translator/openai_awsbedrock_embeddings.gointernal/translator/openai_awsbedrock_embeddings_test.gointernal/translator/openai_awsbedrock_test.gointernal/translator/openai_gcpanthropic_test.gointernal/translator/openai_gcpvertexai_embeddings.gointernal/translator/openai_gcpvertexai_embeddings_test.gointernal/translator/openai_gcpvertexai_test.gointernal/translator/openai_openai.gointernal/translator/openai_openai_test.gomanifests/charts/ai-gateway-crds-helm/templates/aigateway.envoyproxy.io_mcproutes.yamlmanifests/charts/ai-gateway-crds-helm/templates/aigateway.envoyproxy.io_quotapolicies.yamlmanifests/charts/ai-gateway-helm/templates/_helpers.tplmanifests/charts/ai-gateway-helm/templates/deployment.yamlmanifests/charts/ai-gateway-helm/templates/envoy_gateway_cluster_role_for_inference_pool.yamlmanifests/charts/ai-gateway-helm/templates/serviceaccount.yamlsite/blog/authors.ymlsite/docs/_vars.jsonsite/docs/api/api.mdxsite/docs/capabilities/index.mdsite/docs/capabilities/traffic/index.mdsite/docs/capabilities/traffic/quota-policy.mdsite/docs/capabilities/traffic/usage-based-ratelimiting.mdsite/docs/compatibility.mdsite/docusaurus.config.tssite/package.jsonsite/src/components/HomepageFeatures/index.tsxsite/src/data/adopters/adopters.jsonsite/src/data/talks.jsonsite/versioned_docs/version-0.7/_vars.jsonsite/versioned_docs/version-0.7/compatibility.mdtests/data-plane/testupstream_test.gotests/internal/testopenai/embeddings_requests.gotests/internal/testopenai/openai_test.gotools/go.mod
| /aigw | ||
| site/.cursorrules | ||
| /.cursor | ||
| .worktrees/ |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Inspect the root .gitignore around the reported line.
echo "== .gitignore context =="
sed -n '45,65p' .gitignore | cat -n
# Check gitignore matching behavior for the current pattern.
tmpfile="$(mktemp)"
cat > "$tmpfile" <<'EOF'
.worktrees/
foo/.worktrees/
bar/baz/.worktrees/
EOF
echo
echo "== git check-ignore with current rules =="
git check-ignore -v --stdin < "$tmpfile" || true
rm -f "$tmpfile"Repository: inflearn/ai-gateway
Length of output: 549
.gitignore:55에서 패턴을 루트로 고정하세요.
루트 .gitignore의 .worktrees/는 하위 경로의 동일한 디렉터리명도 무시합니다. 저장소 루트의 worktree 디렉터리만 제외하려면 /.worktrees/로 바꾸세요.
권장 수정
- .worktrees/
+ /.worktrees/📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| .worktrees/ | |
| /.worktrees/ |
🤖 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 @.gitignore at line 55, Update the .worktrees/ pattern in the root .gitignore
to /.worktrees/ so only the repository-root worktree directory is ignored, while
same-named directories in nested paths remain unaffected.
| // Generates rate limit configuration and tracks quota usage. | ||
| // Reject requests with 429 once all related quota to that request has been exceeded. | ||
| // | ||
| // TODO: Waiting on next release of Envoyproxy that will support routing based on non-exceeded quotas. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
ShadowMode 예외를 최상위 429 설명에 반영하세요.
QuotaRule.ShadowMode는 quota 초과 시에도 요청을 항상 성공시킨다고 명시하지만, 최상위 설명은 무조건 429를 반환하는 것처럼 읽힙니다. 비-shadow quota에만 적용된다는 조건을 명시하고 생성된 CRD/API 문서도 함께 갱신해야 합니다.
🤖 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 `@api/v1alpha1/quota_policy.go` around lines 15 - 18, Update the top-level
quota policy description near QuotaRule/ShadowMode to state that 429 responses
apply only to non-shadow quotas, while ShadowMode quotas continue allowing
requests after exhaustion. Regenerate the affected CRD/API documentation so the
corrected behavior is reflected there as well.
| var distinctNamespaces []string | ||
| for _, ns := range []string{gw.Namespace, c.envoyGatewayNamespace} { | ||
| var ps *corev1.PodList | ||
| ps, err = c.kube.CoreV1().Pods(ns).List(ctx, listOption) | ||
| if err != nil { | ||
| err = fmt.Errorf("failed to list pods in namespace %s: %w", ns, err) | ||
| return | ||
| } | ||
| pods = append(pods, ps.Items...) | ||
|
|
||
| var ds *appsv1.DeploymentList | ||
| ds, err = c.kube.AppsV1().Deployments(ns).List(ctx, listOption) | ||
| if err != nil { | ||
| err = fmt.Errorf("failed to list deployments in namespace %s: %w", ns, err) | ||
| return | ||
| } | ||
| deployments = append(deployments, ds.Items...) | ||
|
|
||
| var dss *appsv1.DaemonSetList | ||
| dss, err = c.kube.AppsV1().DaemonSets(ns).List(ctx, listOption) | ||
| if err != nil { | ||
| err = fmt.Errorf("failed to list daemonsets in namespace %s: %w", ns, err) | ||
| return | ||
| } | ||
| daemonSets = append(daemonSets, dss.Items...) | ||
|
|
||
| if len(ps.Items) > 0 || len(ds.Items) > 0 || len(dss.Items) > 0 { | ||
| distinctNamespaces = append(distinctNamespaces, ns) | ||
| } | ||
| } | ||
| deployments = ds.Items | ||
|
|
||
| var dss *appsv1.DaemonSetList | ||
| dss, err = c.kube.AppsV1().DaemonSets("").List(ctx, listOption) | ||
| if err != nil { | ||
| err = fmt.Errorf("failed to list daemonsets: %w", err) | ||
| // All pods, deployments, and daemonsets should be in the same namespace. | ||
| // Otherwise, it would be a bug in the EG or the disruptive configuration change of EG. | ||
| if len(distinctNamespaces) > 1 { | ||
| err = fmt.Errorf("found gateway-labeled objects in multiple namespaces: %v", distinctNamespaces) | ||
| return | ||
| } |
There was a problem hiding this comment.
🩺 Stability & Availability | 🔴 Critical | ⚡ Quick win
gw.Namespace == c.envoyGatewayNamespace인 경우 동일 네임스페이스를 두 번 조회해 reconcile이 영구 실패합니다.
Gateway 리소스가 Envoy Gateway 네임스페이스(기본 envoy-gateway-system)에 생성되면 루프가 같은 네임스페이스를 두 번 순회합니다. 그 결과 pods/deployments/daemonSets에 동일 객체가 중복 append되고, distinctNamespaces에도 같은 값이 두 번 들어가 len > 1이 성립하여 found gateway-labeled objects in multiple namespaces: [envoy-gateway-system envoy-gateway-system] 에러로 매 reconcile이 실패합니다. c.envoyGatewayNamespace가 빈 문자열인 경우(모든 네임스페이스 조회)에도 동일하게 gw.Namespace 객체가 중복 수집됩니다.
순회 대상 네임스페이스를 중복 제거해 주세요.
🐛 중복 네임스페이스 제거 제안
var distinctNamespaces []string
- for _, ns := range []string{gw.Namespace, c.envoyGatewayNamespace} {
+ namespaces := []string{gw.Namespace}
+ if c.envoyGatewayNamespace != "" && c.envoyGatewayNamespace != gw.Namespace {
+ namespaces = append(namespaces, c.envoyGatewayNamespace)
+ }
+ for _, ns := range namespaces {
var ps *corev1.PodList🤖 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 `@internal/controller/gateway.go` around lines 1151 - 1187, Deduplicate the
namespace list used by the pod, deployment, and daemonset collection loop before
iterating. Ensure gw.Namespace is queried only once when it equals
c.envoyGatewayNamespace, and avoid adding it again when c.envoyGatewayNamespace
is empty, while preserving distinctNamespaces validation and existing list
behavior.
| case apiKey.QueryParam != nil: | ||
| // Query parameter injection cannot use Envoy Gateway's credentialInjection filter; | ||
| // embed directly in the URL rewrite path. | ||
| // TODO: evaluate alternatives to avoid embedding the secret in the HTTPRoute manifest. | ||
| apiKeyLiteral, err := c.readAPIKey(ctx, mcpRoute.Namespace, apiKey) | ||
| if err != nil { | ||
| return gwapiv1.HTTPRouteRule{}, fmt.Errorf("failed to read API key for backend %s: %w", ref.Name, err) | ||
| } | ||
| fullPathPtr = fmt.Sprintf("%s?%s=%s", fullPathPtr, *apiKey.QueryParam, apiKeyLiteral) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
쿼리 파라미터 API 키를 URL 인코딩 없이 경로에 삽입합니다.
apiKeyLiteral이 &, #, =, 공백 등을 포함하면 ReplaceFullPath 값이 왜곡되어 파라미터가 잘리거나 추가 쿼리 파라미터로 해석됩니다. 키 이름과 값 모두 이스케이프하는 것이 안전합니다.
🐛 URL 이스케이프 적용 제안
- fullPathPtr = fmt.Sprintf("%s?%s=%s", fullPathPtr, *apiKey.QueryParam, apiKeyLiteral)
+ fullPathPtr = fmt.Sprintf("%s?%s=%s", fullPathPtr,
+ url.QueryEscape(*apiKey.QueryParam), url.QueryEscape(apiKeyLiteral))net/url 임포트가 필요합니다.
🤖 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 `@internal/controller/mcp_route.go` around lines 596 - 604, Update the
query-parameter URL construction in the HTTPRoute rule generation flow around
readAPIKey to URL-escape both apiKey.QueryParam and apiKeyLiteral before
composing fullPathPtr. Add the required net/url import and preserve the existing
error handling and parameter structure.
| // Guard against negative or unreasonably large indices from a hostile upstream. | ||
| const maxContentBlocks = 1000 | ||
| if idx < 0 || idx >= maxContentBlocks { | ||
| continue | ||
| } |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
SSE 인덱스 검증이 start 이벤트에만 적용됩니다. ContentBlockDelta와 ContentBlockStop은 음수 index를 검사하지 않아, 정상 start 뒤의 -1 이벤트가 음수 슬라이스 접근 panic을 일으킬 수 있습니다.
internal/tracing/openinference/anthropic/messages.go#L273-L277: start, delta, stop 모두에 공통 범위 검증을 적용하세요.internal/tracing/openinference/anthropic/messages_test.go#L213-L268: 유효한 start 뒤 음수 delta/stop을 보내도 panic 없이 무시되는 회귀 테스트를 추가하세요.
📍 Affects 2 files
internal/tracing/openinference/anthropic/messages.go#L273-L277(this comment)internal/tracing/openinference/anthropic/messages_test.go#L213-L268
🤖 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 `@internal/tracing/openinference/anthropic/messages.go` around lines 273 - 277,
Apply the same non-negative and maximum-index validation used for start events
to ContentBlockDelta and ContentBlockStop before any slice access in the message
handling flow. Update internal/tracing/openinference/anthropic/messages.go at
lines 273-277 and the corresponding delta/stop paths; add regression coverage in
internal/tracing/openinference/anthropic/messages_test.go at lines 213-268
confirming that negative delta and stop indices after a valid start are ignored
without panicking.
| if toolCall.ID == nil { | ||
| return nil, fmt.Errorf("%w: tool_call at index %d is missing required field 'id'", internalapi.ErrInvalidRequestBody, i) | ||
| } |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
빈 문자열과 형식이 잘못된 tool-call ID도 거부하세요.
Line 417은 nil만 검사합니다. "" 또는 Bedrock 허용 패턴 밖의 값은 그대로 toolUseId로 전송되어 업스트림 400을 유발합니다. Bedrock의 허용 패턴까지 검증해 invalid-request-body 오류로 반환하세요.
🤖 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 `@internal/translator/openai_awsbedrock.go` around lines 417 - 419, Update the
tool-call ID validation in the translator flow around toolCall.ID so it rejects
nil, empty, and values that do not match Bedrock’s allowed toolUseId pattern.
Return the existing internalapi.ErrInvalidRequestBody-wrapped error with the
tool-call index for every invalid ID, before forwarding it upstream.
| wantBodyContains: []string{ | ||
| `"content"`, | ||
| `"parts"`, | ||
| `"inlineData"`, | ||
| `"mimeType":"image/png"`, | ||
| }, | ||
| wantBodyNotContain: []string{`"instances"`, `"parameters"`, `"fileURI"`}, | ||
| }, |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
"fileURI" 단정은 대소문자가 달라 항상 통과합니다.
실제 직렬화 키는 Line 449에서 확인되듯 fileUri입니다. data URI 케이스에서 파일 URI가 새지 않는지 실제로 검증하려면 케이싱을 맞춰야 합니다.
💚 제안 수정
- wantBodyNotContain: []string{`"instances"`, `"parameters"`, `"fileURI"`},
+ wantBodyNotContain: []string{`"instances"`, `"parameters"`, `"fileUri"`},📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| wantBodyContains: []string{ | |
| `"content"`, | |
| `"parts"`, | |
| `"inlineData"`, | |
| `"mimeType":"image/png"`, | |
| }, | |
| wantBodyNotContain: []string{`"instances"`, `"parameters"`, `"fileURI"`}, | |
| }, | |
| wantBodyContains: []string{ | |
| `"content"`, | |
| `"parts"`, | |
| `"inlineData"`, | |
| `"mimeType":"image/png"`, | |
| }, | |
| wantBodyNotContain: []string{`"instances"`, `"parameters"`, `"fileUri"`}, | |
| }, |
🤖 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 `@internal/translator/openai_gcpvertexai_embeddings_test.go` around lines 476 -
483, Update the wantBodyNotContain assertions in the data URI test case to use
the correctly cased serialized key "fileUri" instead of "fileURI", preserving
the existing checks for "instances" and "parameters".
| // Apply global title to all instances if specified. | ||
| if openAIReq.Title != "" { | ||
| for _, instance := range instances { | ||
| instance.Title = openAIReq.Title | ||
| } | ||
| } |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
전역 Title은 task_type=RETRIEVAL_DOCUMENT 조건을 무시합니다.
같은 파일의 per-item 경로(Line 61-65, 74-76)는 RETRIEVAL_DOCUMENT일 때만 title을 설정하는데, 전역 Title은 task type과 무관하게 모든 instance에 주입됩니다. Vertex AI는 다른 task type과 함께 온 title을 거부하므로 400이 발생할 수 있습니다.
🐛 제안 수정
// Apply global title to all instances if specified.
if openAIReq.Title != "" {
for _, instance := range instances {
- instance.Title = openAIReq.Title
+ if instance.TaskType == openai.EmbeddingTaskTypeRetrievalDocument {
+ instance.Title = openAIReq.Title
+ }
}
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| // Apply global title to all instances if specified. | |
| if openAIReq.Title != "" { | |
| for _, instance := range instances { | |
| instance.Title = openAIReq.Title | |
| } | |
| } | |
| // Apply global title to all instances if specified. | |
| if openAIReq.Title != "" { | |
| for _, instance := range instances { | |
| if instance.TaskType == openai.EmbeddingTaskTypeRetrievalDocument { | |
| instance.Title = openAIReq.Title | |
| } | |
| } | |
| } |
🤖 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 `@internal/translator/openai_gcpvertexai_embeddings.go` around lines 148 - 153,
Update the global title assignment in the instances loop so openAIReq.Title is
applied only when the request task type is RETRIEVAL_DOCUMENT. Preserve the
existing behavior of leaving titles unset for all other task types.
| // isEmbedContentModel returns true if the model should use the embedContent endpoint | ||
| // instead of the predict endpoint. | ||
| // Reference: https://github.com/googleapis/go-genai/blob/v1.54.0/transformer.go#L565 | ||
| // Check and update this function when new Gemini embedding model versions are released. | ||
| func isEmbedContentModel(model string) bool { | ||
| return strings.Contains(model, "gemini") && model != "gemini-embedding-001" | ||
| } |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
모델명 판정이 부분 문자열 기반이라 버전/경로 접미사에 취약합니다.
gemini-embedding-001은 완전 일치만 예외 처리되므로 gemini-embedding-001@default, .../models/gemini-embedding-001 같이 접미사·경로가 붙은 형태(모델 오버라이드로 지정 가능)는 embedContent로 잘못 라우팅되어 404/400을 유발합니다. 접두사 기반 판정이 더 안전합니다.
🛡️ 제안 수정
func isEmbedContentModel(model string) bool {
- return strings.Contains(model, "gemini") && model != "gemini-embedding-001"
+ if !strings.Contains(model, "gemini") {
+ return false
+ }
+ // gemini-embedding-001 (and its versioned/qualified variants) still use predict.
+ base := model[strings.LastIndex(model, "/")+1:]
+ return !strings.HasPrefix(base, "gemini-embedding-001")
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| // isEmbedContentModel returns true if the model should use the embedContent endpoint | |
| // instead of the predict endpoint. | |
| // Reference: https://github.com/googleapis/go-genai/blob/v1.54.0/transformer.go#L565 | |
| // Check and update this function when new Gemini embedding model versions are released. | |
| func isEmbedContentModel(model string) bool { | |
| return strings.Contains(model, "gemini") && model != "gemini-embedding-001" | |
| } | |
| // isEmbedContentModel returns true if the model should use the embedContent endpoint | |
| // instead of the predict endpoint. | |
| // Reference: https://github.com/googleapis/go-genai/blob/v1.54.0/transformer.go#L565 | |
| // Check and update this function when new Gemini embedding model versions are released. | |
| func isEmbedContentModel(model string) bool { | |
| if !strings.Contains(model, "gemini") { | |
| return false | |
| } | |
| // gemini-embedding-001 (and its versioned/qualified variants) still use predict. | |
| base := model[strings.LastIndex(model, "/")+1:] | |
| return !strings.HasPrefix(base, "gemini-embedding-001") | |
| } |
🤖 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 `@internal/translator/openai_gcpvertexai_embeddings.go` around lines 165 - 171,
Update isEmbedContentModel to recognize gemini-embedding-001 by prefix rather
than exact equality, so path- or suffix-qualified forms such as `@default` and
/models/... are routed to the predict endpoint while other Gemini models still
use embedContent.
| Envoy AI Gateway follows the support policy described in | ||
| [RELEASES.md](./RELEASES.md), aligned with the | ||
| [Envoy Gateway release support policy](https://gateway.envoyproxy.io/). Minor | ||
| releases are cut on a roughly quarterly cadence, and each minor release is | ||
| supported for **6 months** after its release date. In practice this means the | ||
| **two most recent minor releases** (the current and the previous `v1.x` line) | ||
| are supported at any given time. | ||
|
|
||
| Security fixes are developed on the `main` branch and backported as patch | ||
| releases to every minor release that is still within its support window. We | ||
| strongly recommend that all users run a supported, up-to-date `v1.x` version. | ||
| Reports against unsupported or end-of-life versions may be addressed by asking | ||
| you to reproduce the issue on a supported version. |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
지원 버전 범위가 저장소의 다른 정책과 충돌합니다.
이 문서는 현재 및 이전 v1.x만 지원한다고 하지만, site/versioned_docs/version-0.7/compatibility.md Line 14는 v0.7.x를 Supported로 표시하고 RELEASES.md Line 16-17은 두 릴리스 이후 EOL을 정의합니다. v1.0.0에는 이전 v1.x 라인도 없습니다. 실제 보안 백포트 대상인 v0.7.x를 명시하거나, pre-v1 지원 정책을 별도로 정의하세요.
🤖 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 `@SECURITY.md` around lines 69 - 81, Update the support-policy wording in
SECURITY.md to align with RELEASES.md and the documented v0.7.x support status:
explicitly include v0.7.x as a supported pre-v1 release or define the pre-v1
support policy separately, and ensure the stated “two most recent minor
releases” rule does not incorrectly apply before v1.0.0.
Summary
Integrate upstream
envoyproxy/ai-gatewayv1.0.0 (46 commits since v0.7.0) into our fork's main, plus one fork-only regression fix uncovered during dev deploy.Upstream v1.0.0 highlights
Merge conflict resolution
2 files:
internal/apischema/gcp/gcp.go: fork'sCachedContentRequestand upstream's newEmbedContent*structs both live at file-tail — kept both.internal/translator/openai_gcpvertexai_test.go: upstream removed thecontent-lengthentry fromwantHeaderMutacross 10 test cases (consistent with extproc: skip CONTINUE_AND_REPLACE when no body change is needed envoyproxy/ai-gateway#2170 skipping CONTINUE_AND_REPLACE when no body change needed) — took upstream's version.Fork-only regression fix —
60fcd8cbAfter the merge, POST
/v1beta/cachedContentsstarted 504-timing out (response_flags=UT). Root cause: v1.0.0 merge dropped a fork-authored guard inrouter.ProcessRequestBodythat stored the pre-rewrite:pathintox-ai-eg-original-pathonly when unset. Without the guard, the second write clobbered the header with the rewritten path (/cachedContents), and the upstream filter'sprocessorForPathlookup no longer matched any registered prefix — the filter silently produced no response, and Envoy hit the 60 s timeout.Restored the guard. Only paths that go through
rewriteDeveloperAPIPath(cachedContents Developer-API form) were affected; generateContent was unaffected because its:pathrewrite happens in the upstream stage.Verified on dev
go build ./... && go vet ./...✓expandToVertexFullModelPath,rewriteVertexModelName, ImageEdits translator, server prefix fallback router, mainlib path extractors for cachedContents + region.inflab-60fcd8cb-dev. Verified end-to-end viaPOST /v1beta/cachedContents(created cache successfully),POST /v1beta/models/{m}:generateContent(cachedContentTokenCount reported).Test plan
inflab-<merge-sha>-prodtag🤖 Generated with Claude Code
Summary by CodeRabbit
새 기능
embedContent및 멀티모달 입력을 지원합니다.413응답을 제공합니다.개선 및 버그 수정
문서