Skip to content

feat(ui): backport decision auto-router setup to 1.106 - #45916

Merged
yuneng-berri merged 6 commits into
rc/1.106.0from
litellm_jev_router_creation_ui_106
Oct 11, 2026
Merged

yuneng-berri merged 6 commits into
rc/1.106.0from
litellm_jev_router_creation_ui_106

Conversation

@joshua-berri

@joshua-berri joshua-berri commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Current verification status

Independent source verification passed on this final commit, including create, reopen, change deployment, invoke, legacy compatibility, and nonzero cost/provider recording in spend logs. No concrete defects were found. Transport used a controlled local upstream, not a real paid provider

Release CI still has failures. These remain visible and are not claimed as passes

TLDR

Problem this solves:

  • Auto-router setup scatters classifier, tier, and advanced controls
  • Decision classifiers cannot select an existing model deployment

How it solves it:

  • Groups classifier settings, prefilled tiers, and advanced settings
  • Reuses deployed decision connections and existing dependency authorization
  • Preserves deployment selection when reopening and editing routers

Intentional product change: new decision routers choose an onboarded decision model instead of entering a provider and raw model name. Legacy router configurations remain supported. Tier assignments start with the existing automatic recommendations and remain editable

User Flow

Before: decision-router setup requires separate provider/model choices and scattered settings

  1. Open /ui/models-and-endpoints, then Add Auto Router
  2. Select the decision classifier and separately configure its provider and model
  3. Navigate template, classification frequency, tiers, and advanced controls in separate places

After: the same task starts with the deployment and keeps related settings together

  1. Open /ui/models-and-endpoints, then Add Auto Router
  2. Select Decisions Model, choose an onboarded deployment, and set classification frequency
  3. Review automatically filled tiers, optionally apply a template or edit them, and expand advanced settings as needed

Dependencies

Backport of #45913 for 106. This PR targets the branch for #45891, which supplies decision-model support on this release

Merge #45891 first. After its squash merge, replay only this PR's commits onto the release branch and retarget. The recorded parent boundary is acf745591166776afd8fd8775d20be6626ae021e. Refresh verification after that replay

Implementation

The dropdown intersects available model groups with evaluation mode or existing decision catalog metadata. It saves the deployment alias in deployment_name. A small classifier adapter calls the existing Router.adecisions path, so the selected deployment owns the connection and credentials. Existing key/team dependency checks also apply to this alias. Direct legacy classifier configurations still use their original path

Deployment-backed routers reopen with the same dropdown; ignored legacy provider/model controls are hidden. This fixes the edit regression discovered during independent verification. Access groups only move below the name; their behavior is unchanged. No new endpoints, migrations, routing policies, or provider onboarding changes

Tests

  • 400 affected backend tests pass; deployment credentials, validation, authorization, timeout, cancellation, invalid-tier fallback, and legacy behavior are covered
  • 365 creation/catalog/edit tests pass locally. The new edit regression fails before the fix
  • Production UI build passes. Canonical backend lint/type gates pass; changed UI lint introduces no warnings
  • Local changed executable-line coverage: backend 30/30; frontend 63/63. Touched-function branch coverage: backend 36/46; frontend 590/730. Remaining branches include existing behavior outside this change and defensive picker fallbacks for missing configuration or a disabled clear action. Repository-wide coverage is not inferred from these focused suites
  • Independent verification passed on the final commit
  • GitHub CI, completed Codecov, and required bot reviews are pending

Screenshots / Proof of Fix

Same isolated demo data and controlled upstream on baseline and final source builds

Before (acf7455)

  1. Open /ui/models-and-endpoints, then Add Auto Router and select the decision classifier
  2. Observe separate provider/model controls and the original layout

Before

After (6d19d8e)

  1. Open the same page and select the decision classifier
  2. Select a deployment, save, reopen, change the deployment, and save again
  3. Invoke the router and observe HTTP 200 using the selected connection
  4. Observe classifier spend and routing-decision classifier cost of 5.04e-07 for the controlled 12-token response

After

Caveats

Severe

  • Upgrade every proxy replica before saving deployment-backed routers
  • Older binaries reject the new deployment_name configuration
  • Convert or remove these configurations before rolling back

Low

  • Real Jev credentials were unavailable, so provider transport was simulated
  • Legacy configurations remain supported
  • Release backports have separate prerequisite PRs and verification

Type

  • UI improvement and scoped backend support for deployed decision classifiers

Pre-Submission checklist

  • Meaningful regression tests added
  • Affected local tests and production build pass
  • Scope remains limited to auto-router setup and deployment-selection compatibility
  • Required CI and completed Codecov report
  • Greptile confidence ≥4/5, Veria, and Bugbot at the current tip

@codecov

codecov Bot commented Oct 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@joshua-berri
joshua-berri marked this pull request as ready for review October 11, 2026 03:13
Base automatically changed from litellm_backport_decisions_ui_rc_1_106_0 to rc/1.106.0 October 11, 2026 05:15
@yuneng-berri
yuneng-berri merged commit 69738f5 into rc/1.106.0 Oct 11, 2026
86 of 88 checks passed
@yuneng-berri
yuneng-berri deleted the litellm_jev_router_creation_ui_106 branch October 11, 2026 05:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants