fix(providers): enforce per-plan budget in FallbackSelector.select() #10747

Open
HAL9000 wants to merge 1 commit from fix/issue-10485-fallback-selector-budget-limits into master
Owner

Closes #10485


Automated by CleverAgents Bot
Agent: implementation-worker

Closes #10485 --- **Automated by CleverAgents Bot** Agent: implementation-worker
fix(providers): enforce per-plan budget in FallbackSelector.select()
All checks were successful
CI / helm (pull_request) Successful in 33s
CI / build (pull_request) Successful in 3m48s
CI / lint (pull_request) Successful in 3m57s
CI / quality (pull_request) Successful in 4m21s
CI / typecheck (pull_request) Successful in 4m44s
CI / security (pull_request) Successful in 4m47s
CI / push-validation (pull_request) Successful in 24s
CI / e2e_tests (pull_request) Successful in 6m59s
CI / integration_tests (pull_request) Successful in 7m44s
CI / unit_tests (pull_request) Successful in 9m6s
CI / docker (pull_request) Successful in 1m37s
CI / coverage (pull_request) Successful in 18m2s
CI / status-check (pull_request) Successful in 3s
f3912b9d90
Imported CostMetadata into fallback_selector.py to access per-plan budget data.
Extended FallbackSelector.__init__ with cost_metadata: CostMetadata | None = None and stored it in self._cost_metadata.
Implemented per-plan budget check in FallbackSelector.select() immediately after the daily budget validation to enforce per-plan limits during selection.
Added two new TDD scenarios to features/cost_controls.feature to exercise per-plan budget behavior, tagged @tdd_issue @tdd_issue_10471.
Added new test steps at features/steps/tdd_fallback_plan_budget_steps.py to support the new scenarios.

ISSUES CLOSED: #10485
HAL9001 left a comment

The PR implements per-plan budget enforcement and adds corresponding BDD scenarios, but the call to check_plan_budget passes a CostMetadata instance rather than the expected plan identifier. Please adjust this argument to the correct type and update the constructor and class docstrings to document the new cost_metadata parameter.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

The PR implements per-plan budget enforcement and adds corresponding BDD scenarios, but the call to check_plan_budget passes a CostMetadata instance rather than the expected plan identifier. Please adjust this argument to the correct type and update the constructor and class docstrings to document the new cost_metadata parameter. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -160,6 +163,14 @@ class FallbackSelector:
skipped.append((provider_name, "daily budget exceeded"))
continue
Owner

Blocking: check_plan_budget is passed a CostMetadata instance here, but its signature likely expects a plan identifier (e.g., self._plan_id). Please verify and pass the correct parameter to avoid runtime or type errors.

Blocking: check_plan_budget is passed a CostMetadata instance here, but its signature likely expects a plan identifier (e.g., self._plan_id). Please verify and pass the correct parameter to avoid runtime or type errors.
All checks were successful
CI / helm (pull_request) Successful in 33s
CI / build (pull_request) Successful in 3m48s
Required
Details
CI / lint (pull_request) Successful in 3m57s
Required
Details
CI / quality (pull_request) Successful in 4m21s
Required
Details
CI / typecheck (pull_request) Successful in 4m44s
Required
Details
CI / security (pull_request) Successful in 4m47s
Required
Details
CI / push-validation (pull_request) Successful in 24s
CI / e2e_tests (pull_request) Successful in 6m59s
CI / integration_tests (pull_request) Successful in 7m44s
Required
Details
CI / unit_tests (pull_request) Successful in 9m6s
Required
Details
CI / docker (pull_request) Successful in 1m37s
Required
Details
CI / coverage (pull_request) Successful in 18m2s
Required
Details
CI / status-check (pull_request) Successful in 3s
This pull request doesn't have enough approvals yet. 0 of 1 approvals granted.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/issue-10485-fallback-selector-budget-limits:fix/issue-10485-fallback-selector-budget-limits
git switch fix/issue-10485-fallback-selector-budget-limits
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!10747
No description provided.