Repository navigation
fix(tests): match the OS bind error in the owned-proxy port-race retry - #44462
Conversation
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
|
| process.wait() | ||
|
|
||
|
|
||
| def test_lost_port_race_matches_the_bind_error_the_server_logs( |
There was a problem hiding this comment.
The tests run in CI: the CircleCI unit job collects every tests/unit file on main every six hours, the same path the sibling test_routing.py takes
There was a problem hiding this comment.
You're right — my comment incorrectly assumed that the unit workflow only runs explicitly listed shard paths. The six-hour CircleCI unit job collects tests/unit on main, so tests/unit/integration_support/test_process.py is covered just like the sibling test_routing.py.
This finding is invalid; no CI configuration change is needed.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…s stay in-process
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit b12759e. Configure here.
…106.0) (#443) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/berriai/litellm](https://images.chainguard.dev/directory/image/wolfi-base/overview) ([source](https://github.com/BerriAI/litellm)) | minor | `v1.105.1` → `v1.106.0` | --- ### Release Notes <details> <summary>BerriAI/litellm (ghcr.io/berriai/litellm)</summary> ### [`v1.106.0`](https://github.com/BerriAI/litellm/releases/tag/v1.106.0) [Compare Source](https://github.com/BerriAI/litellm/compare/v1.105.1...v1.106.0) #### Verify Docker Image Signature All LiteLLM Docker images are signed with [cosign](https://docs.sigstore.dev/cosign/overview/). Every release is signed with the same key introduced in [commit `0112e53`](https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0). **Verify using the pinned commit hash (recommended):** A commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key: ```bash cosign verify \ --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \ ghcr.io/berriai/litellm:v1.106.0 ``` **Verify using the release tag (convenience):** Tags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules: ```bash cosign verify \ --key https://raw.githubusercontent.com/BerriAI/litellm/v1.106.0/cosign.pub \ ghcr.io/berriai/litellm:v1.106.0 ``` Expected output: ``` The following checks were performed on each of these signatures: - The cosign claims were validated - The signatures were verified against the specified public key ``` *** #### What's Changed - test(mcp): fire MCP client test deadlines on conditions instead of wall-clock time by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44166](https://github.com/BerriAI/litellm/pull/44166) - fix(cost-map): add OpenAI TTS and GPT-5.x deprecation dates by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44175](https://github.com/BerriAI/litellm/pull/44175) - fix(tracing): unify ClickHouse storage configuration by [@​yujonglee-berri](https://github.com/yujonglee-berri) in [#​43941](https://github.com/BerriAI/litellm/pull/43941) - feat(docker): one-command quickstart that starts the gateway, Postgres, and the admin UI by [@​misbahsy](https://github.com/misbahsy) in [#​43673](https://github.com/BerriAI/litellm/pull/43673) - fix(lens): simplify the example investigation preview by [@​moe-berri](https://github.com/moe-berri) in [#​44123](https://github.com/BerriAI/litellm/pull/44123) - chore(helm): drop migrationJob values the chart never reads by [@​Bernedotcom2312](https://github.com/Bernedotcom2312) in [#​42141](https://github.com/BerriAI/litellm/pull/42141) - fix(ui): register tencent in the Add Model provider dropdown by [@​jimaldon](https://github.com/jimaldon) in [#​40924](https://github.com/BerriAI/litellm/pull/40924) - test: remove 130 legacy tests owned by stronger unit proofs by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44157](https://github.com/BerriAI/litellm/pull/44157) - feat(mcp)!: disable stdio MCP servers by default by [@​yuneng-berri](https://github.com/yuneng-berri) in [#​44066](https://github.com/BerriAI/litellm/pull/44066) - fix(proxy): exit when DATABASE_URL is set but the Prisma toolchain is missing by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44207](https://github.com/BerriAI/litellm/pull/44207) - fix(proxy): preserve lifespan state across all entrypoints by [@​tin-berri](https://github.com/tin-berri) in [#​44214](https://github.com/BerriAI/litellm/pull/44214) - fix(oci): resolve the GenAI endpoint realm from the compartment OCID instead of hardcoding oraclecloud.com by [@​fede-kamel](https://github.com/fede-kamel) in [#​43180](https://github.com/BerriAI/litellm/pull/43180) - fix(chatgpt): preserve requested service tier in Responses calls by [@​SteffanWolter](https://github.com/SteffanWolter) in [#​40108](https://github.com/BerriAI/litellm/pull/40108) - fix(ui): leave unset callback select params out of the save payload by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44213](https://github.com/BerriAI/litellm/pull/44213) - fix(proxy-extras): hand libpq a root cert, not Prisma's sslcert, when the migration job builds indexes by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44203](https://github.com/BerriAI/litellm/pull/44203) - feat: add Laya gateway and OSS classifier providers by [@​tin-berri](https://github.com/tin-berri) in [#​43626](https://github.com/BerriAI/litellm/pull/43626) - fix(auto-router): count usage savings by selected UTC request day by [@​tin-berri](https://github.com/tin-berri) in [#​44115](https://github.com/BerriAI/litellm/pull/44115) - fix(lens): preserve framework agent names and GenAI message content by [@​moe-berri](https://github.com/moe-berri) in [#​44218](https://github.com/BerriAI/litellm/pull/44218) - feat(jwt): auto_register_map_existing_key maps JWT to the user's existing virtual key by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​42375](https://github.com/BerriAI/litellm/pull/42375) - feat(ui): select Laya for OSS classification by [@​tin-berri](https://github.com/tin-berri) in [#​43768](https://github.com/BerriAI/litellm/pull/43768) - fix(otel): tolerate non-dict callback_settings.otel and ignore bare EXCLUDED_SERVICES env by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44086](https://github.com/BerriAI/litellm/pull/44086) - fix(proxy): carry key, team and project tags into pass-through spend logs by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​42662](https://github.com/BerriAI/litellm/pull/42662) - feat(ui): add System One (Jev) tab to the playground by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44043](https://github.com/BerriAI/litellm/pull/44043) - chore: bump litellm-proxy-extras 0.4.104 -> 0.4.105 by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44234](https://github.com/BerriAI/litellm/pull/44234) - chore(prices): add xAI grok-voice-transcribe-1.0 deprecation date by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44237](https://github.com/BerriAI/litellm/pull/44237) - fix(exa): fall back to highlights/summary when text is missing by [@​wakqasahmed](https://github.com/wakqasahmed) in [#​42213](https://github.com/BerriAI/litellm/pull/42213) - fix(scim): apply path-less group PATCH ops instead of storing them under an empty metadata key by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43978](https://github.com/BerriAI/litellm/pull/43978) - fix(lens): run investigations with configured wildcard models by [@​moe-berri](https://github.com/moe-berri) in [#​44233](https://github.com/BerriAI/litellm/pull/44233) - fix(ui): shrink the sidebar logo so it stops outweighing page titles by [@​yuneng-berri](https://github.com/yuneng-berri) in [#​44247](https://github.com/BerriAI/litellm/pull/44247) - feat(tracing): support claude agent sdk traces with agent name, logo and chat content by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44248](https://github.com/BerriAI/litellm/pull/44248) - fix(ui): make model leaderboard chart bars wide and readable by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44249](https://github.com/BerriAI/litellm/pull/44249) - test: repair stale and polluting tests red on scheduled main CI by [@​yuneng-berri](https://github.com/yuneng-berri) in [#​44229](https://github.com/BerriAI/litellm/pull/44229) - feat(traces): type queries and align read access with log visibility by [@​yujonglee-berri](https://github.com/yujonglee-berri) in [#​44228](https://github.com/BerriAI/litellm/pull/44228) - chore(ui): untrack tsconfig.tsbuildinfo and gitignore \*.tsbuildinfo by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44261](https://github.com/BerriAI/litellm/pull/44261) - refactor(mcp): extract upstream preparation and support modern clients by [@​joshua-berri](https://github.com/joshua-berri) in [#​44232](https://github.com/BerriAI/litellm/pull/44232) - fix(lens): default to traces and reopen span details by [@​moe-berri](https://github.com/moe-berri) in [#​44260](https://github.com/BerriAI/litellm/pull/44260) - fix(bedrock): surface unrecognized converse-stream event frames instead of an empty turn by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44112](https://github.com/BerriAI/litellm/pull/44112) - perf(proxy): batch daily model usage writes instead of upserting per request by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44243](https://github.com/BerriAI/litellm/pull/44243) - test(integration): opt the config pass-through spend-log case into auth by [@​yuneng-berri](https://github.com/yuneng-berri) in [#​44265](https://github.com/BerriAI/litellm/pull/44265) - test: fix three order-dependent and timing-flaky tests by [@​yuneng-berri](https://github.com/yuneng-berri) in [#​44271](https://github.com/BerriAI/litellm/pull/44271) - fix(ui): make the Lens traces refresh button always clickable by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44252](https://github.com/BerriAI/litellm/pull/44252) - feat(lens): add sample previews and improve setup and worker feedback by [@​moe-berri](https://github.com/moe-berri) in [#​44268](https://github.com/BerriAI/litellm/pull/44268) - chore(openrouter): sync prices, limits and deprecation dates from the models API by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44287](https://github.com/BerriAI/litellm/pull/44287) - refactor(traces): type the ClickHouse query help response by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44285](https://github.com/BerriAI/litellm/pull/44285) - fix(proxy): stop queued registry read-throughs spending the resync budget by [@​yuneng-berri](https://github.com/yuneng-berri) in [#​44277](https://github.com/BerriAI/litellm/pull/44277) - feat(lens): show investigation progress as one staged bar with time left by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44301](https://github.com/BerriAI/litellm/pull/44301) - refactor(ui): compose dashboard pages with shared layouts by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44306](https://github.com/BerriAI/litellm/pull/44306) - fix(proxy): share ownership permissions for spend logs and traces by [@​yujonglee-berri](https://github.com/yujonglee-berri) in [#​44239](https://github.com/BerriAI/litellm/pull/44239) - fix(proxy-extras): retry P3009 when a peer already recovered the named migration row by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44283](https://github.com/BerriAI/litellm/pull/44283) - fix(bedrock): price amazon nova 2 pro preview at the standard tier by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44302](https://github.com/BerriAI/litellm/pull/44302) - feat: add Bespoke Nimble gateway and OSS classifier support by [@​tin-berri](https://github.com/tin-berri) in [#​44246](https://github.com/BerriAI/litellm/pull/44246) - fix(anthropic): stop repeating streamed thinking text in the signature chunk by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44127](https://github.com/BerriAI/litellm/pull/44127) - fix(responses): drop bridge-minted reasoning items from OpenAI replays by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44132](https://github.com/BerriAI/litellm/pull/44132) - feat(bedrock): drop lookaround regex patterns from tool schemas for Converse models that reject them by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44138](https://github.com/BerriAI/litellm/pull/44138) - feat(bedrock): serve gpt-5.6+ chat completions natively by default, with chat_completions/ opt-in for gpt-oss and grok by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44307](https://github.com/BerriAI/litellm/pull/44307) - feat(lens): issue briefs with problem, user goal, outcome and test cases by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44311](https://github.com/BerriAI/litellm/pull/44311) - fix(responses): keep gpt-5.4/5.5 tool calls on chat and merge bridged tool calls into one choice by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44295](https://github.com/BerriAI/litellm/pull/44295) - fix(cost): price rule-only model names at the deployment's rate by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44144](https://github.com/BerriAI/litellm/pull/44144) - fix(auto-router): attribute router-day savings without spend logs or a session by [@​tin-berri](https://github.com/tin-berri) in [#​44226](https://github.com/BerriAI/litellm/pull/44226) - test(integration): let run.py select cells by pytest node id by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44319](https://github.com/BerriAI/litellm/pull/44319) - fix(bedrock): honor unsupported reasoning effort levels for OpenAI GPT models by [@​Aasif-Multani](https://github.com/Aasif-Multani) in [#​44183](https://github.com/BerriAI/litellm/pull/44183) - feat(lens): add preset watch-for checks to investigation setup by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44313](https://github.com/BerriAI/litellm/pull/44313) - fix(proxy): use OpenAI workload identity federation tokens on /openai_passthrough by [@​6matt](https://github.com/6matt) in [#​44140](https://github.com/BerriAI/litellm/pull/44140) - feat(interactions): durable cross-pod settlement for background interaction billing by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​41955](https://github.com/BerriAI/litellm/pull/41955) - fix(streaming): keep the finish_reason of the provider's last content chunk in the logged response by [@​joeym82956](https://github.com/joeym82956) in [#​44318](https://github.com/BerriAI/litellm/pull/44318) - fix(bedrock): send the anthropic-workspace-id header to Bedrock Mantle by [@​kohjunhao](https://github.com/kohjunhao) in [#​44173](https://github.com/BerriAI/litellm/pull/44173) - fix(guardrails): run unified guardrails on /v1/images/edits by [@​michelligabriele](https://github.com/michelligabriele) in [#​44195](https://github.com/BerriAI/litellm/pull/44195) - feat(scaleway): add rerank support by [@​ankit373](https://github.com/ankit373) in [#​44160](https://github.com/BerriAI/litellm/pull/44160) - fix(vector_stores): return managed file ids from vector store file list by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43800](https://github.com/BerriAI/litellm/pull/43800) - fix(proxy): return 4xx instead of 500 for missing required params, invalid pagination and unknown ids by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43787](https://github.com/BerriAI/litellm/pull/43787) - fix(guardrails): encrypt guardrail litellm_params secrets at rest by [@​yucheng-berri](https://github.com/yucheng-berri) in [#​43627](https://github.com/BerriAI/litellm/pull/43627) - fix(search_tools): encrypt search tool litellm_params at rest by [@​yucheng-berri](https://github.com/yucheng-berri) in [#​43631](https://github.com/BerriAI/litellm/pull/43631) - feat(roi): add GitLab sources and branch cost attribution by [@​moe-berri](https://github.com/moe-berri) in [#​44324](https://github.com/BerriAI/litellm/pull/44324) - fix(model-prices): mark azure us/eu responses-only models as mode responses by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44323](https://github.com/BerriAI/litellm/pull/44323) - revert(cost): revert "fix(cost): price rule-only model names at the deployment's rate" ([#​44144](https://github.com/BerriAI/litellm/issues/44144)) by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44335](https://github.com/BerriAI/litellm/pull/44335) - fix(proxy): stamp the client alias on a copy of each streamed chunk so pricing sees the deployment model by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44341](https://github.com/BerriAI/litellm/pull/44341) - revert(responses): revert "fix(responses): keep gpt-5.4/5.5 tool calls on chat and merge bridged tool calls into one choice" ([#​44295](https://github.com/BerriAI/litellm/issues/44295)) by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44344](https://github.com/BerriAI/litellm/pull/44344) - refactor(dashboard): migrate to zod 4 and openai 6 by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44345](https://github.com/BerriAI/litellm/pull/44345) - feat(ui): move LiteAdmin into the header with a docked side panel by [@​tin-berri](https://github.com/tin-berri) in [#​44293](https://github.com/BerriAI/litellm/pull/44293) - fix(responses): merge bridged tool calls into the same choice as the text by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44346](https://github.com/BerriAI/litellm/pull/44346) - feat(ui): improve trace inspection and ROI estimation by [@​moe-berri](https://github.com/moe-berri) in [#​44351](https://github.com/BerriAI/litellm/pull/44351) - refactor(ui): reorganize Lens dashboard components by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44354](https://github.com/BerriAI/litellm/pull/44354) - refactor(ui): inject Lens backends as services instead of a fake HTTP client by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44369](https://github.com/BerriAI/litellm/pull/44369) - refactor: clean up fresh tech debt from 2026-10-02 by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44362](https://github.com/BerriAI/litellm/pull/44362) - feat(traces): tracing development seed by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44363](https://github.com/BerriAI/litellm/pull/44363) - refactor(types): replace Any with proven types in 4 files by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44370](https://github.com/BerriAI/litellm/pull/44370) - build(deps): suppress unfixed braces GHSA-vfj7-8cjw-p6xm to clear osv-scan by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44347](https://github.com/BerriAI/litellm/pull/44347) - fix(azure): add MAI-Image max_input_tokens from models sold directly page by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44375](https://github.com/BerriAI/litellm/pull/44375) - fix(proxy): emit postgres service spans only on real DB reads in auth cache helpers by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44148](https://github.com/BerriAI/litellm/pull/44148) - fix(otel): nest cache spans under their operation and name service spans by purpose by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44150](https://github.com/BerriAI/litellm/pull/44150) - fix(otel): name postgres service spans by operation and table by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44240](https://github.com/BerriAI/litellm/pull/44240) - perf(proxy): stop prompt-cache eligibility from tokenizing the whole conversation by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44221](https://github.com/BerriAI/litellm/pull/44221) - fix(proxy): keep the database error when the log_db_metrics failure hook raises by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44383](https://github.com/BerriAI/litellm/pull/44383) - feat(azure): add azure_ai/kimi-k2-thinking from Azure Kimi pricing page by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44382](https://github.com/BerriAI/litellm/pull/44382) - feat(harness): add Harness.TOOL_LOOP, a minimal in-process tool-calling loop by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44391](https://github.com/BerriAI/litellm/pull/44391) - feat(decisions): add unified /v1/decisions endpoint for Jev-compatible providers by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44236](https://github.com/BerriAI/litellm/pull/44236) - fix(lens): paginate trace reads within ClickHouse limits by [@​moe-berri](https://github.com/moe-berri) in [#​44384](https://github.com/BerriAI/litellm/pull/44384) - feat(lens): live dot field timeline and full-screen traces view by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44390](https://github.com/BerriAI/litellm/pull/44390) - feat(ui): make LiteAdmin enterprise-only by [@​tin-berri](https://github.com/tin-berri) in [#​44399](https://github.com/BerriAI/litellm/pull/44399) - fix(bedrock): stop emitting Converse cachePoint blocks for Kimi K3 by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44292](https://github.com/BerriAI/litellm/pull/44292) - test(cost): pin OpenAI reported web search count with mixed actions by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44414](https://github.com/BerriAI/litellm/pull/44414) - fix(ci): give the pass-through auth regression test a real FastAPI app by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44403](https://github.com/BerriAI/litellm/pull/44403) - fix(azure): add azure_ai/flux.2-pro input token limit from the models sold directly page by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44405](https://github.com/BerriAI/litellm/pull/44405) - fix(lens): batch run reads and reset trace pagination by [@​moe-berri](https://github.com/moe-berri) in [#​44398](https://github.com/BerriAI/litellm/pull/44398) - fix(lens): preserve full trace access and expose investigation failures by [@​moe-berri](https://github.com/moe-berri) in [#​44406](https://github.com/BerriAI/litellm/pull/44406) - feat: add make lens-dev for one-command lens local dev by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44413](https://github.com/BerriAI/litellm/pull/44413) - fix(bedrock): honor the per-request timeout on Converse and Invoke streaming (internal copy of [#​38210](https://github.com/BerriAI/litellm/issues/38210)) by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44134](https://github.com/BerriAI/litellm/pull/44134) - feat(traces): render curated SQL examples from shared files by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44388](https://github.com/BerriAI/litellm/pull/44388) - fix(model_prices): registry audit 2026-10-03, add cohere embed v5, grok-imagine-video-1.5-lite and openrouter gpt-image rows by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44376](https://github.com/BerriAI/litellm/pull/44376) - refactor(traces): extract snapshot cache by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44424](https://github.com/BerriAI/litellm/pull/44424) - feat(lens): always-on investigations with findings and investigations tables by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44418](https://github.com/BerriAI/litellm/pull/44418) - feat(docker): add a Windows quickstart in PowerShell, and a styled terminal for both quickstarts by [@​misbahsy](https://github.com/misbahsy) in [#​44310](https://github.com/BerriAI/litellm/pull/44310) - feat(proxy): serve a Codex-native model catalog with per-model service_tiers from /v1/models by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44136](https://github.com/BerriAI/litellm/pull/44136) - refactor(types): replace Any with proven types in 9 files by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44389](https://github.com/BerriAI/litellm/pull/44389) - fix(proxy): treat Postgres connection exhaustion as DB unavailable, not poison spend-log rows by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44270](https://github.com/BerriAI/litellm/pull/44270) - fix(proxy): treat Postgres connection exhaustion as backpressure, not poison rows by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44266](https://github.com/BerriAI/litellm/pull/44266) - fix(lens): release budget reservations when the analysis model call fails by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44431](https://github.com/BerriAI/litellm/pull/44431) - fix(mcp): preserve upstream tool schemas and parameter headers by [@​joshua-berri](https://github.com/joshua-berri) in [#​44425](https://github.com/BerriAI/litellm/pull/44425) - fix(bedrock_mantle): route Claude chat completions to the native Messages endpoint by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43646](https://github.com/BerriAI/litellm/pull/43646) - fix(tracing): preserve spend identity and gateway correlation by [@​yujonglee-berri](https://github.com/yujonglee-berri) in [#​44421](https://github.com/BerriAI/litellm/pull/44421) - feat(roi): measure shipping velocity, quality, and recorded spend by [@​moe-berri](https://github.com/moe-berri) in [#​44426](https://github.com/BerriAI/litellm/pull/44426) - fix(azure): set text-embedding max input to 8192 from the models sold directly page by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44449](https://github.com/BerriAI/litellm/pull/44449) - feat(ui): show invitation and reset password links in a copyable field by [@​yuneng-berri](https://github.com/yuneng-berri) in [#​44454](https://github.com/BerriAI/litellm/pull/44454) - feat(lens): coordinate worker releases and bundled installs by [@​moe-berri](https://github.com/moe-berri) in [#​44428](https://github.com/BerriAI/litellm/pull/44428) - fix(auth): resolve hidden model_group_alias entries in the zero-cost budget check by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43741](https://github.com/BerriAI/litellm/pull/43741) - fix(vertex_ai): forward system and tools to partner model count_tokens by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43900](https://github.com/BerriAI/litellm/pull/43900) - fix(traces): reject conflicting spend aliases and unrelated HTTP siblings by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44456](https://github.com/BerriAI/litellm/pull/44456) - chore(cost-map): add azure_ai/kimi-k2-thinking retirement date from the Azure retired models page by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44455](https://github.com/BerriAI/litellm/pull/44455) - fix(health): probe Bedrock Mantle Claude deployments over the Anthropic Messages API by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44419](https://github.com/BerriAI/litellm/pull/44419) - fix(tests): match the OS bind error in the owned-proxy port-race retry by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44462](https://github.com/BerriAI/litellm/pull/44462) - feat(anthropic): workload identity federation and pluggable identity sources by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44448](https://github.com/BerriAI/litellm/pull/44448) - test(integration): exact four-part translation cases on a shared fake provider and shared YAML deployment by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44451](https://github.com/BerriAI/litellm/pull/44451) - feat(roi): default people and branch lists to matched accounts by [@​moe-berri](https://github.com/moe-berri) in [#​44465](https://github.com/BerriAI/litellm/pull/44465) - feat(enterprise): bundle LiteAdmin Slack with native gateway login by [@​tin-berri](https://github.com/tin-berri) in [#​44444](https://github.com/BerriAI/litellm/pull/44444) - fix(caching): count tool_call cache_control marks in the injection census by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43556](https://github.com/BerriAI/litellm/pull/43556) - chore(cost-map): sync openrouter prices from the models API by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44466](https://github.com/BerriAI/litellm/pull/44466) - fix(lens): preserve approved worker digests and harden its image by [@​moe-berri](https://github.com/moe-berri) in [#​44467](https://github.com/BerriAI/litellm/pull/44467) - feat: improve Lens dev seeding and live UI by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44468](https://github.com/BerriAI/litellm/pull/44468) - test(ui): wait for step search value to settle in TraceDrawer test by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44470](https://github.com/BerriAI/litellm/pull/44470) - feat(ui): share trace drawer as a closable SidePanel and polish Lens by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44473](https://github.com/BerriAI/litellm/pull/44473) - fix(lens): align source setup with available worker images by [@​moe-berri](https://github.com/moe-berri) in [#​44476](https://github.com/BerriAI/litellm/pull/44476) - feat(sdk): add run_tool_loop and arun_tool_loop helpers by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44381](https://github.com/BerriAI/litellm/pull/44381) - feat(lens): guide setup through the first investigation by [@​moe-berri](https://github.com/moe-berri) in [#​44475](https://github.com/BerriAI/litellm/pull/44475) - test(ci): fix six CircleCI test regressions on main by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44429](https://github.com/BerriAI/litellm/pull/44429) - fix(proxy-extras): log v1 migration failures at ERROR so LITELLM_LOG=ERROR shows them by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44202](https://github.com/BerriAI/litellm/pull/44202) - feat(ui): inline Lens settings tab and investigation editor by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44479](https://github.com/BerriAI/litellm/pull/44479) - feat(mcp): hand listed-tool description and input schema to pre-call hooks per caller by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​41162](https://github.com/BerriAI/litellm/pull/41162) - refactor: clean up fresh tech debt from 2026-10-03 by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44484](https://github.com/BerriAI/litellm/pull/44484) - fix(otel): read the registered v2 logger without importing the proxy by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44485](https://github.com/BerriAI/litellm/pull/44485) - test(mcp): keep the SSO assertion round trip from matching its refresh token inside random ciphertext by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44494](https://github.com/BerriAI/litellm/pull/44494) - test(ci): pin the ROI estimator flag and the prompt-cache counter in two drifted tests by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44499](https://github.com/BerriAI/litellm/pull/44499) - refactor(ui): move TraceView into components/lens/traces by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44501](https://github.com/BerriAI/litellm/pull/44501) - refactor(ui): rename view_logs to logs and split request, audit and detail by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44505](https://github.com/BerriAI/litellm/pull/44505) - refactor(ui): share CopyButton between Lens traces and logs by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44513](https://github.com/BerriAI/litellm/pull/44513) - refactor(lens): storage-independent trace reads, shared keyset pager, typed read failures by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44422](https://github.com/BerriAI/litellm/pull/44422) - fix(ci): send the Lens preview body as selection in the tracing endpoint tests by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44525](https://github.com/BerriAI/litellm/pull/44525) - fix(azure): set gpt-realtime-2.1 retirement dates from the retirement schedule by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44526](https://github.com/BerriAI/litellm/pull/44526) - fix(ci): repair the security sweep and Lens billing integration tests for ROI, JWKS, and release identity changes by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44529](https://github.com/BerriAI/litellm/pull/44529) - fix(dashboard): route dev API calls on Accept and fail fast on non-JSON 2xx by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44528](https://github.com/BerriAI/litellm/pull/44528) - chore(cost-map): sync openrouter prices from the models API by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44533](https://github.com/BerriAI/litellm/pull/44533) - refactor(ui): route dashboard URL state through nuqs parsers by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44537](https://github.com/BerriAI/litellm/pull/44537) - fix(logging): deduplicate streaming failure callbacks by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44442](https://github.com/BerriAI/litellm/pull/44442) - feat(proxy): add LITELLM_FIPS_MODE startup gate with provider assertion and loud password migration failure by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​42700](https://github.com/BerriAI/litellm/pull/42700) - fix(guardrails): run the end-of-stream post_call scan when the client disconnects mid-stream by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43839](https://github.com/BerriAI/litellm/pull/43839) - refactor(mcp): fix Sequence/list return mismatch and collapse record_listed_tools wrapper by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44556](https://github.com/BerriAI/litellm/pull/44556) - chore(cost-map): add azure retirement dates for gpt-4o-realtime-preview-2024-10-01 and jamba-instruct by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44567](https://github.com/BerriAI/litellm/pull/44567) - feat(ui): add persistent columns and loading skeletons to Lens runs by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44579](https://github.com/BerriAI/litellm/pull/44579) - fix(ui): remove Top models by task card from Model Leaderboard by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44502](https://github.com/BerriAI/litellm/pull/44502) - refactor(rust): track ClickHouse migrations in a checksummed ledger by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44580](https://github.com/BerriAI/litellm/pull/44580) - refactor(ui): extract shared timeline and time-range controls by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44584](https://github.com/BerriAI/litellm/pull/44584) - fix(azure): set gpt-4o-transcribe retirement date from the retirement schedule by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44585](https://github.com/BerriAI/litellm/pull/44585) - ci: move Postgres, MCP and Redis suites to CircleCI integration by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44453](https://github.com/BerriAI/litellm/pull/44453) - chore!: retire the integrated ROI calculator by [@​moe-berri](https://github.com/moe-berri) in [#​44477](https://github.com/BerriAI/litellm/pull/44477) - fix(caching): key response cache by router model group in litellm_metadata by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44542](https://github.com/BerriAI/litellm/pull/44542) - fix(auto-router): align preview and serving default resolution by [@​moyai-berriai](https://github.com/moyai-berriai)\[bot] in [#​44436](https://github.com/BerriAI/litellm/pull/44436) - fix(mcp): bind OAuth clients to their upstream issuer by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​37777](https://github.com/BerriAI/litellm/pull/37777) - feat(guardrails): add llm shield pii redaction and rehydration guardrail by [@​ninadphalak](https://github.com/ninadphalak) in [#​42645](https://github.com/BerriAI/litellm/pull/42645) - refactor(tracing): generate existing HTTP request models from Rust schemas by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44591](https://github.com/BerriAI/litellm/pull/44591) - ci: run unit selections from GHA test-path and drop the CircleCI unit jobs by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44461](https://github.com/BerriAI/litellm/pull/44461) - fix(ui): make mobile sidebar and top bar responsive by [@​moe-berri](https://github.com/moe-berri) in [#​44603](https://github.com/BerriAI/litellm/pull/44603) - refactor(types): replace Any with proven types in 137 files by [@​mateo-berri](https://github.com/mateo-berri) in [#​44478](https://github.com/BerriAI/litellm/pull/44478) - fix(ui): restore inline Lens onboarding and responsive layout by [@​moe-berri](https://github.com/moe-berri) in [#​44604](https://github.com/BerriAI/litellm/pull/44604) - test(integration): anthropic-route basic translation cases for six Claude models on messages, chat completions and responses by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44607](https://github.com/BerriAI/litellm/pull/44607) - fix(responses): report truncated bridged output as incomplete and echo request params by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44460](https://github.com/BerriAI/litellm/pull/44460) - fix(proxy): enforce internal-user model creation prohibition by [@​moyai-berriai](https://github.com/moyai-berriai)\[bot] in [#​44438](https://github.com/BerriAI/litellm/pull/44438) - chore(harness): drop the unused Any import left in harness options by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44625](https://github.com/BerriAI/litellm/pull/44625) - fix(harness): drop the unused Any import that fails ruff on main by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44627](https://github.com/BerriAI/litellm/pull/44627) - refactor(proxy): rename management/teams/access.py to authz.py by [@​ryan-crabbe-berri](https://github.com/ryan-crabbe-berri) in [#​44624](https://github.com/BerriAI/litellm/pull/44624) - feat(tracing)!: return only data from SQL queries by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44609](https://github.com/BerriAI/litellm/pull/44609) - fix(openai/realtime): drop model from upstream URL for intent=transcription by [@​michelligabriele](https://github.com/michelligabriele) in [#​43854](https://github.com/BerriAI/litellm/pull/43854) - fix(gemini): add priority tier audio input price to three Gemini rows by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44632](https://github.com/BerriAI/litellm/pull/44632) - fix(cost): bill per-second transcription models outside chat modes by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44458](https://github.com/BerriAI/litellm/pull/44458) - fix(ui): explain why team member reset spend is unavailable instead of hiding it by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44629](https://github.com/BerriAI/litellm/pull/44629) - test(integration): bedrock_converse-route basic translation cases for six Claude models on messages, chat completions and responses by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44646](https://github.com/BerriAI/litellm/pull/44646) - test(integration): run the anthropic /v1/responses basic translation cases now that the bridge echoes request params by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44615](https://github.com/BerriAI/litellm/pull/44615) - feat(lens): restore compact navigation with live investigation review by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44472](https://github.com/BerriAI/litellm/pull/44472) - feat(proxy): limit which models an end user can call by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43904](https://github.com/BerriAI/litellm/pull/43904) - fix(sso): let CLI and Claude Code gateway sign-in through on DISABLE_ADMIN_UI nodes by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44620](https://github.com/BerriAI/litellm/pull/44620) - feat(ui): declare shared search operators and flush queries on blur by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44665](https://github.com/BerriAI/litellm/pull/44665) - fix(lens): make tool steps and conversations readable by [@​moe-berri](https://github.com/moe-berri) in [#​44645](https://github.com/BerriAI/litellm/pull/44645) - fix(ui): send null instead of $0 when a team's member default budget is cleared by [@​ryan-crabbe-berri](https://github.com/ryan-crabbe-berri) in [#​44644](https://github.com/BerriAI/litellm/pull/44644) - test(integration): azure_ai-route basic translation cases for six Claude models on messages, chat completions and responses by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44658](https://github.com/BerriAI/litellm/pull/44658) - test(integration): basic translation cases for the openai_responses route by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44663](https://github.com/BerriAI/litellm/pull/44663) - feat(lens): analyze trace workspaces with confined Python and compaction by [@​moe-berri](https://github.com/moe-berri) in [#​44640](https://github.com/BerriAI/litellm/pull/44640) - fix(vertex-ai): add deprecation_date to gemini-3.1-flash-lite-image by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44639](https://github.com/BerriAI/litellm/pull/44639) - fix(bedrock): add priority and flex prices for Grok 4.3, 4.6, 4.7 and Kimi K3 by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44670](https://github.com/BerriAI/litellm/pull/44670) - test(integration): pin the Claude-tokenizer recount for streamed claude-sonnet-5 no-usage cases by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44643](https://github.com/BerriAI/litellm/pull/44643) - feat(proxy): embed enterprise LiteAdmin MCP in LiteLLM images by [@​tin-berri](https://github.com/tin-berri) in [#​44610](https://github.com/BerriAI/litellm/pull/44610) - test(integration): basic translation cases for the azure route by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44672](https://github.com/BerriAI/litellm/pull/44672) - test(integration): assert the Messages API health probe on Mantle Claude by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44612](https://github.com/BerriAI/litellm/pull/44612) - refactor(rust): rename litellm-framing crate to litellm-framer by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44683](https://github.com/BerriAI/litellm/pull/44683) - test(integration): basic translation cases for the gemini route by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44662](https://github.com/BerriAI/litellm/pull/44662) - test(integration): basic translation cases for the openai route by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44667](https://github.com/BerriAI/litellm/pull/44667) - refactor(rust): derive string enum serde through strum and serde_with by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44675](https://github.com/BerriAI/litellm/pull/44675) - fix(spend-tracking): stop caching failed spend-log metadata lookups as confirmed misses by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43560](https://github.com/BerriAI/litellm/pull/43560) - fix(proxy): let a listed team alias win over a same-named key alias in the customer model check by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44677](https://github.com/BerriAI/litellm/pull/44677) - chore: move PR template to PULL_REQUEST_TEMPLATE/general.md, add rust.md by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44693](https://github.com/BerriAI/litellm/pull/44693) - fix(router): retry a /v1/messages stream the provider drops before the first content chunk by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44276](https://github.com/BerriAI/litellm/pull/44276) - fix(lens): persist final coverage with source diagnostics by [@​moe-berri](https://github.com/moe-berri) in [#​44682](https://github.com/BerriAI/litellm/pull/44682) - test(integration): point the scratch upgraded proxy's read replica at the scratch database by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44613](https://github.com/BerriAI/litellm/pull/44613) - fix(lens): show investigation findings for agent traces by [@​moe-berri](https://github.com/moe-berri) in [#​44696](https://github.com/BerriAI/litellm/pull/44696) - fix(build): rebuild the Rust bridge when uv sync sees Rust sources change by [@​nate-berri](https://github.com/nate-berri) in [#​44708](https://github.com/BerriAI/litellm/pull/44708) - fix(lens): preserve span timestamps in investigation evidence by [@​moe-berri](https://github.com/moe-berri) in [#​44702](https://github.com/BerriAI/litellm/pull/44702) - ci: split slow unit shards and build the Rust bridge once per run by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44622](https://github.com/BerriAI/litellm/pull/44622) - test(rust_bridge): expect PartRow start_time and end_time as required LENS_CONTENT fields by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44719](https://github.com/BerriAI/litellm/pull/44719) - chore(deps): bump langgraph-sdk from 0.4.2 to 0.4.4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​44713](https://github.com/BerriAI/litellm/pull/44713) - feat: add Reka as an OpenAI-compatible provider by [@​anniejeng](https://github.com/anniejeng) in [#​44278](https://github.com/BerriAI/litellm/pull/44278) - feat(ui): support native decisions endpoint in decision playground by [@​moyai-berriai](https://github.com/moyai-berriai)\[bot] in [#​44664](https://github.com/BerriAI/litellm/pull/44664) - fix(lens): reconstruct native coding agent conversations by [@​moe-berri](https://github.com/moe-berri) in [#​44711](https://github.com/BerriAI/litellm/pull/44711) - fix(responses): honor request cache controls on chat completions bridged to the Responses API by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44676](https://github.com/BerriAI/litellm/pull/44676) - fix(deps): bump source-map-js, smol-toml, mako, multidict and werkzeug for OSV advisories by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44728](https://github.com/BerriAI/litellm/pull/44728) - test(integration): rename translation runner run to assert_translation by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44741](https://github.com/BerriAI/litellm/pull/44741) - feat(lens): show investigation names in findings table by [@​moe-berri](https://github.com/moe-berri) in [#​44753](https://github.com/BerriAI/litellm/pull/44753) - feat(ui): configure cache-aware auto routing by [@​tin-berri](https://github.com/tin-berri) in [#​43396](https://github.com/BerriAI/litellm/pull/43396) - fix(lens): bound result recovery and preserve partial results by [@​moe-berri](https://github.com/moe-berri) in [#​44692](https://github.com/BerriAI/litellm/pull/44692) - feat(prometheus): cap series per metric for every labeled metric by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44420](https://github.com/BerriAI/litellm/pull/44420) - feat(lens): type to filter the traces agent dropdown by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44745](https://github.com/BerriAI/litellm/pull/44745) - test(lens): use current worker protocol in billing integration by [@​moe-berri](https://github.com/moe-berri) in [#​44760](https://github.com/BerriAI/litellm/pull/44760) - feat(model_prices): add chatgpt subscription rows for the gpt-6 family by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44758](https://github.com/BerriAI/litellm/pull/44758) - test(e2e): assert the sibling-replica cooldown through the router by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44706](https://github.com/BerriAI/litellm/pull/44706) - test(integration): basic translation cases for the bedrock_invoke route by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44752](https://github.com/BerriAI/litellm/pull/44752) - fix(gemini): stop replaying thinking block signatures to Gemini by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44661](https://github.com/BerriAI/litellm/pull/44661) - fix(ci): namespace claude session ids in tracing seeds and allowlist /v1/logs on backend by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44761](https://github.com/BerriAI/litellm/pull/44761) - fix(proxy): judge the free-model budget waiver by the group an alias routes to by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44638](https://github.com/BerriAI/litellm/pull/44638) - test(integration): basic translation cases for the vertex_ai route by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44751](https://github.com/BerriAI/litellm/pull/44751) - fix(vertex_ai): apply regional endpoint uplift on image generation cost path by [@​nate-berri](https://github.com/nate-berri) in [#​44679](https://github.com/BerriAI/litellm/pull/44679) - refactor(tests): extract Rust cache test split from [#​44714](https://github.com/BerriAI/litellm/issues/44714) by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44780](https://github.com/BerriAI/litellm/pull/44780) - feat(proxy): cap batch file records, daily batch uploads, and per-file downloads by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​43632](https://github.com/BerriAI/litellm/pull/43632) - feat(lens): add copy link button to trace header by [@​ishaan-berri](https://github.com/ishaan-berri) in [#​44749](https://github.com/BerriAI/litellm/pull/44749) - test(integration): keep scripted upstream connections open past the proxy's keepalive by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44695](https://github.com/BerriAI/litellm/pull/44695) - test(integration): basic translation cases for the bedrock_mantle route by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44750](https://github.com/BerriAI/litellm/pull/44750) - fix(chatgpt,github_copilot): refuse device-code login inside an event loop or worker thread by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​39585](https://github.com/BerriAI/litellm/pull/39585) - feat(bedrock): add glm 5.3 cross-region rows and nova 2.5 sonic by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44710](https://github.com/BerriAI/litellm/pull/44710) - fix(responses): honor caller stream flag when provider forces SSE (internal copy of [#​34095](https://github.com/BerriAI/litellm/issues/34095)) by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​41235](https://github.com/BerriAI/litellm/pull/41235) - refactor(cache): remove dead Cache.\_native_cache runtime path by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44785](https://github.com/BerriAI/litellm/pull/44785) - fix(vertex_ai): add regional endpoint uplift to gemini-3.1-flash-image by [@​nate-berri](https://github.com/nate-berri) in [#​44673](https://github.com/BerriAI/litellm/pull/44673) - feat(ui): lead the Lens investigation detail with a run report by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44786](https://github.com/BerriAI/litellm/pull/44786) - fix(ui): polish Lens runs loading, reload, and time range menu by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44789](https://github.com/BerriAI/litellm/pull/44789) - refactor(types): move SpanAttributes, SpecialHeaders and AllowedModelRegion out of proxy.\_types by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44717](https://github.com/BerriAI/litellm/pull/44717) - refactor(types): import proxy-only types under TYPE_CHECKING in SDK modules by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44740](https://github.com/BerriAI/litellm/pull/44740) - refactor(logging): load enterprise alerting loggers lazily so import litellm skips proxy types by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44762](https://github.com/BerriAI/litellm/pull/44762) - perf(types): defer pydantic schema builds via shared LiteLLMBaseModel by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44720](https://github.com/BerriAI/litellm/pull/44720) - fix(router): price a model group from the deployments that serve it by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44732](https://github.com/BerriAI/litellm/pull/44732) - refactor: remove fresh tech debt from the 2026-10-05 window by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44821](https://github.com/BerriAI/litellm/pull/44821) - fix(azure): add gpt-6-sol priority processing prices by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44829](https://github.com/BerriAI/litellm/pull/44829) - refactor(types): replace Any with proven types in 6 files by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44491](https://github.com/BerriAI/litellm/pull/44491) - test: deflake the JEV classifier select and two router tests that inherited leaked state by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44840](https://github.com/BerriAI/litellm/pull/44840) - refactor(rust): rename litellm-core to litellm-inference by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44802](https://github.com/BerriAI/litellm/pull/44802) - refactor(rust): extract inference-transcription crate by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44809](https://github.com/BerriAI/litellm/pull/44809) - refactor(rust): extract inference-responses crate by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44811](https://github.com/BerriAI/litellm/pull/44811) - refactor(rust): extract inference-messages crate by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44818](https://github.com/BerriAI/litellm/pull/44818) - refactor(rust): extract inference-chat crate by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44827](https://github.com/BerriAI/litellm/pull/44827) - refactor(rust): extract inference-ocr crate by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44832](https://github.com/BerriAI/litellm/pull/44832) - chore(rust): prune inference deps and rewrite layering docs by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44836](https://github.com/BerriAI/litellm/pull/44836) - fix(otel): name an Arize project on every OTel v2 Arize export by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44605](https://github.com/BerriAI/litellm/pull/44605) - fix(otel): gate the Arize OTel v2 exporter on operator credentials by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44596](https://github.com/BerriAI/litellm/pull/44596) - fix(otel): honor per-team Arize sampling rates in OTel v2 fan-out by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44595](https://github.com/BerriAI/litellm/pull/44595) - fix(model_prices): gemini deep research input limits, vertex flash retirement dates, azure data zone gpt-6.1-sol pricing by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44633](https://github.com/BerriAI/litellm/pull/44633) - refactor(types): replace Any with proven types in 157 files by [@​mateo-berri](https://github.com/mateo-berri) in [#​44798](https://github.com/BerriAI/litellm/pull/44798) - fix(sap): correctly handle cache_control by [@​yamaceay](https://github.com/yamaceay) in [#​39122](https://github.com/BerriAI/litellm/pull/39122) - fix(responses): stop SDK retries nesting under router retries, and unbreak CircleCI integration tests by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44791](https://github.com/BerriAI/litellm/pull/44791) - fix(cost-map): update together_ai Kimi-K3 and Qwen3.8-Flash prices to published rates by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44864](https://github.com/BerriAI/litellm/pull/44864) - fix(ui): restore key activity search to the top of the tab and add model activity search by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44521](https://github.com/BerriAI/litellm/pull/44521) - refactor(rust): extract inference-testing crate by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44873](https://github.com/BerriAI/litellm/pull/44873) - fix(ui): read MCP submission rules from bare-array /config/list response by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44648](https://github.com/BerriAI/litellm/pull/44648) - chore(model_prices): remove malformed, duplicate and decommissioned palm cost map entries by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44880](https://github.com/BerriAI/litellm/pull/44880) - fix(azure): add model router flat fee to azure provider cost tracking by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44876](https://github.com/BerriAI/litellm/pull/44876) - chore(pricing): add azure model-router and whisper rows by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44872](https://github.com/BerriAI/litellm/pull/44872) - fix(security): remove the publicly known master key from the repo by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44718](https://github.com/BerriAI/litellm/pull/44718) - chore(prices): add gemini/gemini-nano-banana-2.1 from the Gemini pricing page by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44868](https://github.com/BerriAI/litellm/pull/44868) - fix(ci): skip the generated dashboard bundle in the master key guard by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44890](https://github.com/BerriAI/litellm/pull/44890) - fix(model_prices): correct supported_endpoints on gemini and vertex image rows by [@​devin-ai-integration](https://github.com/devin-ai-integration)\[bot] in [#​44891](https://github.com/BerriAI/litellm/pull/44891) - feat(vertex-ai): add gemini-nano-banana-2.1 and Nano Banana 2 priority pricing by [@​berriai-litellm-provider-info-sync](https://github.com/berriai-litellm-provider-info-sync)\[bot] in [#​44892](https://github.com/BerriAI/litellm/pull/44892) - fix(lens): reuse trace reviews and consolidate findings across runs by [@​moe-berri](https://github.com/moe-berri) in [#​44778](https://github.com/BerriAI/litellm/pull/44778) - fix(lens): paginate visible conversation entries by [@​moe-berri](https://github.com/moe-berri) in [#​44878](https://github.com/BerriAI/litellm/pull/44878) - refactor(rust_…
TLDR
Problem this solves:
tests/integration/_support/process.pynever fires on a real port collisionaddress already in use, the server logs[Errno 48] Address already in useOwned proxy exited before readinessinstead of relaunchingHow it solves it:
os.strerror(errno.EADDRINUSE), the text the OS puts in the error the server logs_lost_port_racethe exact logged line, an unrelated exit, and a live processUser Flow
Before: an engineer running a self-booting integration cell loses the run to a port race the harness was built to survive
python tests/integration/run.py providers tests/integration/providers/test_decisions_chaos.pyERROR: [Errno 48] Address already in useAssertionError: Owned proxy exited before readinessalthough two launch attempts are leftAfter: the same collision is recognized and the launch retries on a fresh port
python tests/integration/run.py providers tests/integration/providers/test_decisions_chaos.py[Errno 48] Address already in uselinePre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
uv run pytest tests/unit/<your_test_file>.py -v. Leave the suites (make test-unit-*,make test-unit) to CI: it finishes in ~15 minutes where a laptop takes an hour or more@greptileaito re-request a review after pushing changes)Delays in PR merge?
If you're seeing a delay in your PR being merged, ping the LiteLLM Team on Slack (#pr-review).
Screenshots / Proof of Fix
Shared setup: a Python socket holds a random free port (50989) on 127.0.0.1, then the harness's own proxy entrypoint is launched on that port exactly the way
owned_proxy_processlaunches it, with the log captured to a fileBefore (1a70233)
_lost_port_racesearches for, against that log:grep -c "address already in use" owned-proxy.log0, so the harness reads the exit as a plain crash and assertsOwned proxy exited before readinessAfter (b12759e)
grep -c "$(python3 -c 'import errno,os; print(os.strerror(errno.EADDRINUSE))')" owned-proxy.log1(ERROR: [Errno 48] Address already in use), so the harness relaunches on a fresh portuv run pytest tests/unit/integration_support/test_process.py -q:3 passed, in-process (the predicate takes the exit code and the log path); with the needle reverted to the lowercase text,test_lost_port_race_matches_the_bind_error_the_server_logsfailsType
🐛 Bug Fix
✅ Test
Caveats (if any)
Low
run.pycell, because a collision cannot be forced on a port the harness picks for itself; the retry glue around the predicate is covered by the in-process unit tests, and forcing the race would mean test-only hooks in the harness's port choice for the sake of a prooftests/unitfile, not on the PR-time GitHub shards, the same way the siblingtest_routing.pydoes; adding a shard for a two-file harness directory is more CI config than the fix is worthtests/onsys.paththroughmonkeypatch.syspath_prependto import the harness module, which imports its siblings asintegration._support.*the way CI'sPYTHONPATHresolves them; atests.-rooted import would need the harness to change how it imports its siblings, more churn than a two-line fixtureFinal Attestation
The tests check the right things, including the edge cases, and regressions in the respective real-world customer use-cases are not possible after this PR
b12759e passes /live-pr-risk