chore(ci): reconcile main into internal_staging to unblock promotion (#31384) - #31392
Merged
yuneng-berri merged 44 commits intoJun 26, 2026
Merged
Conversation
[Infra] Promote internal staging to main
[Infra] Promote internal staging to main
chore(ci): promote internal staging to main
chore(ci): promote internal staging to main
chore(ci): promote internal staging to main
chore(ci): promote internal staging to main
chore(ci): promote internal staging to main
chore(ci): promote internal staging to main
chore(ci): promote internal staging to main
Adds a quickstart for the two published Terraform modules on the public registry (BerriAI/litellm/aws and BerriAI/litellm/google). Copy-paste main.tf for each cloud, the one-time GCP Artifact Registry remote-repo command, and pointers to the registry pages for the full input surface. Sits inside the Get Started section, between the gateway/SDK table and Run in Developer Mode -- where someone scanning the README for "how do I deploy this" will land. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
GCP gets the real 1-click: Open in Cloud Shell badge that clones the repo and walks through `terraform apply` via the existing DeployStack tutorial (already shipped at terraform/litellm/gcp/examples/default/ TUTORIAL.md). User just picks a project. AWS gets a soft 1-click: a Launch in AWS CloudShell badge that opens an in-browser, already-authenticated shell. User runs four commands (clone + cd + cp tfvars + terraform apply) once inside. There's no native AWS deeplink that pre-clones a repo + runs a tutorial -- CFN "Launch Stack" + CodeBuild would be needed for that, and that's a separate piece of work. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…on font GitHub rewrites an image's height attribute to "height: auto; max-height: Npx", which only caps and never stretches, so each image renders at its intrinsic height. The AWS/GCP shields badges are intrinsically 28px while the Render/Railway buttons are 40px, leaving the row uneven regardless of the height="48" we set. Replace the two shields badges with committed 40px PNGs so all four header buttons render at the same 40px. Also swap the Cloud Shell button from open-btn.svg to open-btn.png. The SVG renders its label as live text with font-family "Roboto, Sans" and no generic fallback; since neither font exists in GitHub's render environment, the text fell back to a serif (Times New Roman). The PNG bakes in the correct typeface.
The Railway button wrapped its img across indented lines, so the anchor contained leading and trailing whitespace. GitHub underlines link content, rendering that whitespace as a small blue underline beside the button. Put the anchor on one line like the other three buttons so there is no inner whitespace to underline.
Backports only the model map changes from #30064 so deployments on released litellm versions pick up Fable 5 pricing, context window, and the adaptive thinking flag through the hosted cost map fetch without upgrading. Includes the supports_sampling_params flag on the 28 Fable 5 / Opus 4.7 / Opus 4.8 entries (ignored by released code, read by the gating that ships with the next release) and the matching one-line schema declaration so the map validation test passes. https://claude.ai/code/session_01MZarYYT3aS7DxaNjoax6Gm
Add Claude Fable 5 cost map entries (data-only hotfix for the hosted map)
chore(ci): promote internal staging to main
chore(ci): promote internal staging to main
feat: make rust OCR async-first
Records main as an ancestor of internal_staging so the staging->main promotion (#31384) merges cleanly. Resolves in staging's favor; changes 0 files (staging already supersedes every main-side hotfix). MUST be merged as a real merge commit (not squash/rebase) or the link to main is lost.
Contributor
|
No reviewable files after applying ignore patterns. |
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
ryan-crabbe-berri
approved these changes
Jun 26, 2026
yuneng-berri
merged commit Jun 26, 2026
61e705a
into
litellm_internal_staging
122 of 123 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The previous attempt (#31390) was squash-merged, which collapsed the two-parent
merge into a single commit and discarded the link to
main— the one thing thisPR exists to create. As a result #31384 stayed CONFLICTING. This PR redoes it; it only
works if merged as a real merge commit so
mainis preserved as a second parent.What this is
A history-reconciliation merge of
mainintolitellm_internal_stagingto unblockthe stuck promotion PR #31384 (
staging → main, currently CONFLICTING).Why #31384 is conflicting
mainis normally strictly behindinternal_staging, so promotion should be trivial.It isn't, because async-first Rust OCR was developed twice:
mainas a direct hotfix —litellm_hotfix_ocr_async_rust(feat: make rust OCR async-first #31253), patching theold single-
providers-crate layout in place, andinternal_stagingthrough the normal flow (feat: add Rust OCR providers #31272, feat: package Rust OCR bridge in LiteLLM wheel #31267, refactor(litellm-rust): dissolve providers into core + ai-gateway (strict 3-crate layers) #31218, feat(ocr): thin Rust OCR Python bridge #31368, …),which refactored that area (dissolved the
providerscrate intocore+ai-gateway, moved the Python bridge tolitellm/rust_bridge/ocr.py).Same feature, two incompatible file layouts → every conflict in #31384 is in the OCR /
litellm-rustarea.Nothing is lost
internal_stagingalready contains a superset of every behavior the main-sidehotfixes added: async-first Rust OCR bridge + dispatch, the duplicate-
Authorization-headerguard (identical tests present on staging), Fable 5 cost-map entries, and the README
AWS/GCP deploy buttons — all already on staging. The only main-only content is the
hotfix's now-obsolete registry-codegen scaffolding (
crates/core/build.rs,providers/provider.rs,provider_endpoints_support.jsonentries), which staging'srefactor replaced. This merge resolves in staging's favor, so the merged tree is
byte-identical to
internal_staging.Effect
After this lands as a merge commit,
mainbecomes an ancestor ofinternal_staging, so#31384 (
staging → main) fast-forwards with zero conflicts and main ends up exactlymatching staging.
Verification
litellm_internal_staging(0 files differ).git merge-base --is-ancestor main HEAD→ true (downstreamstaging → mainis a clean fast-forward).git merge-tree main HEAD→ exit 0, no conflicts.