Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
49871ce
feat(proxy): add native ROI calculator for gateway spend vs merged PRs
devin-ai-integration[bot] Sep 29, 2026
1e6854a
fix(proxy): serialize ROI Prisma inputs with builtin containers
devin-ai-integration[bot] Sep 29, 2026
7286f84
style(proxy): format ROI calculator backend files
devin-ai-integration[bot] Sep 29, 2026
99bc544
fix: parse fenced ROI estimates and retain completed reports
devin-ai-integration[bot] Sep 29, 2026
738a136
fix(roi-calculator): correct estimator and dashboard behavior
devin-ai-integration[bot] Sep 29, 2026
0ba9e67
chore(ui): drop next dev generated AGENTS.md block
devin-ai-integration[bot] Sep 29, 2026
a8679be
fix(proxy): chunk ROI spend user lookup
devin-ai-integration[bot] Sep 29, 2026
8f0d8bb
fix(ui): show reused ROI estimates after sync
devin-ai-integration[bot] Sep 29, 2026
8426563
fix(security): address ROI CodeQL alerts
devin-ai-integration[bot] Sep 29, 2026
4a825ce
test(proxy): make ROI calculator unit tests discoverable
devin-ai-integration[bot] Sep 29, 2026
3ecedc8
test(ci): run ROI calculator tests in proxy infra shard
devin-ai-integration[bot] Sep 29, 2026
1afcc91
fix(roi): page repository search and recover polling errors
devin-ai-integration[bot] Sep 30, 2026
73ed163
feat(roi): bring scheduled analysis and guided setup into the gateway
moe-berri Sep 30, 2026
d1d1673
fix(roi): recover interrupted syncs and resolve review findings
moe-berri Sep 30, 2026
4007f79
chore: merge main into ROI calculator review
moe-berri Sep 30, 2026
3cf6cd7
fix(roi): preserve cached estimates across report scope changes
moe-berri Sep 30, 2026
b3aacaf
fix(roi): normalize scheduler timestamps to UTC
moe-berri Sep 30, 2026
bb3a380
fix(roi): fence cancelled syncs and read reports from writer
moe-berri Sep 30, 2026
293be19
fix(roi): preserve reports during metadata outages
moe-berri Sep 30, 2026
8db5733
refactor(roi): isolate outage validation and verify uncached retry
moe-berri Sep 30, 2026
7eba31c
chore(roi): sync main and remove unrelated changes
moe-berri Sep 30, 2026
411bf2d
fix(roi): make scheduled job registration repeatable
moe-berri Sep 30, 2026
e816859
chore(roi): sync latest main
moe-berri Sep 30, 2026
3dc7848
style(roi): format scheduler import
moe-berri Sep 30, 2026
85f558f
fix(roi): continue syncing accessible repositories
moe-berri Sep 30, 2026
e05684a
Merge remote-tracking branch 'origin/main' into litellm_roi_calculato…
moe-berri Sep 30, 2026
459d6ff
fix(roi): preserve reports and identity during upstream outages
moe-berri Sep 30, 2026
deb9d2d
fix(roi): persist refreshed identities for reused estimates
moe-berri Sep 30, 2026
5d642e6
perf(roi): skip writes for unchanged cached identities
moe-berri Sep 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .circleci/scripts/unit_selection.sh
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,10 @@ legacy_paths() {
echo tests/unit/proxy/test_proxy_server.py ;;
proxy-db-proxy-utils) echo tests/unit/proxy/test_proxy_utils.py ;;
proxy-extras) echo tests/unit/litellm_proxy_extras ;;
proxy-infra) echo tests/unit/gateway ;;
proxy-infra)
echo tests/unit/gateway
echo tests/unit/proxy/management_endpoints/test_roi_calculator_endpoints.py
echo tests/unit/proxy/roi_calculator ;;
responses-caching-types)
find tests/unit/responses -name 'test_*.py' -not -path 'tests/unit/responses/mcp/*'
echo tests/unit/types ;;
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/roi-calculator/02-repositories.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/roi-calculator/06-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/roi-calculator/08-match-email.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/roi-calculator/10-pr-reasoning.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/roi-calculator/11-settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions litellm/proxy/_lazy_features.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,11 @@ def matches(self, path: str) -> bool:
module_path="litellm.proxy.management_endpoints.model_insights_endpoints",
path_prefixes=("/model-insights",),
),
LazyFeature(
name="roi_calculator",
module_path="litellm.proxy.management_endpoints.roi_calculator_endpoints",
path_prefixes=("/roi-calculator",),
),
LazyFeature(
name="search_tools",
module_path="litellm.proxy.search_endpoints.search_tool_management",
Expand Down
Loading
Loading