feat(budget): make spend budget the sole run limiter #101

Open
salmaelsoly wants to merge 1 commit from development_unify_budget_limit into development
Member

Summary

Removes agent step/iteration limiting entirely and makes the spend budget the single execution limiter.

Closes #98

Changes

  • resolve_iteration_budget always returns an unbounded ceiling, so the agent loop and subagents are never stopped by an iteration/step count. The iteration machinery remains for telemetry only.
  • max_iterations / hard_max_iterations, and the duplicate per-job budget fields (per_job_usd, per_job_max_calls, autonomy.job_budget_usd), are deprecated no-ops kept parseable for backward compatibility.
  • job.start refuses a run when no spend budget is configured (the only thing that bounds a run now), with the HERO_SHRIMP_BUDGET_OVERRIDE=1 escape hatch. default.yml ships budget.daily_usd: 5.0 so runs stay bounded out of the box.
  • The per-call spend cap and the job-start gate read the live global config, so a budget edited from the UI takes effect without a daemon restart.

Test Results

  • runtime + engine + server-lib: cargo check and cargo clippy -- -D warnings clean.
  • hero_shrimp_runtime: 559 tests passed; hero_shrimp_engine: 1665 tests passed (incl. 2 new).
  • Full-workspace build is blocked only by pre-existing upstream dependency drift (hero_rpc_openrpc, herolib_core::base) unrelated to this change.
## Summary Removes agent step/iteration limiting entirely and makes the spend budget the single execution limiter. ## Related Issue Closes https://forge.ourworld.tf/lhumina_code/hero_shrimp/issues/98 ## Changes - `resolve_iteration_budget` always returns an unbounded ceiling, so the agent loop and subagents are never stopped by an iteration/step count. The iteration machinery remains for telemetry only. - `max_iterations` / `hard_max_iterations`, and the duplicate per-job budget fields (`per_job_usd`, `per_job_max_calls`, `autonomy.job_budget_usd`), are deprecated no-ops kept parseable for backward compatibility. - `job.start` refuses a run when no spend budget is configured (the only thing that bounds a run now), with the `HERO_SHRIMP_BUDGET_OVERRIDE=1` escape hatch. `default.yml` ships `budget.daily_usd: 5.0` so runs stay bounded out of the box. - The per-call spend cap and the job-start gate read the live global config, so a budget edited from the UI takes effect without a daemon restart. ## Test Results - runtime + engine + server-lib: `cargo check` and `cargo clippy -- -D warnings` clean. - hero_shrimp_runtime: 559 tests passed; hero_shrimp_engine: 1665 tests passed (incl. 2 new). - Full-workspace build is blocked only by pre-existing upstream dependency drift (`hero_rpc_openrpc`, `herolib_core::base`) unrelated to this change.
feat(budget): make spend budget the sole run limiter
Some checks failed
Verify / verify (push) Failing after 17s
Verify / verify (pull_request) Failing after 14s
6aef46479d
Remove agent step/iteration limiting entirely and make the spend budget
the only execution limiter:

- resolve_iteration_budget always returns an unbounded ceiling, so the
  agent loop (and subagents) are never stopped by an iteration count
- max_iterations/hard_max_iterations and the duplicate per-job budget
  fields (per_job_usd, per_job_max_calls, autonomy.job_budget_usd) are
  deprecated no-ops, still parsed for backward compatibility
- job.start refuses a run when no budget is configured (with the
  HERO_SHRIMP_BUDGET_OVERRIDE escape hatch); default.yml ships
  budget.daily_usd so runs stay bounded out of the box
- the per-call cap and the job-start gate read the live global config so
  a budget edited from the UI takes effect without a restart

#98
Some checks failed
Verify / verify (push) Failing after 17s
Verify / verify (pull_request) Failing after 14s
This pull request can be merged automatically.
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 development_unify_budget_limit:development_unify_budget_limit
git switch development_unify_budget_limit

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch development
git merge --no-ff development_unify_budget_limit
git switch development_unify_budget_limit
git rebase development
git switch development
git merge --ff-only development_unify_budget_limit
git switch development_unify_budget_limit
git rebase development
git switch development
git merge --no-ff development_unify_budget_limit
git switch development
git merge --squash development_unify_budget_limit
git switch development
git merge --ff-only development_unify_budget_limit
git switch development
git merge development_unify_budget_limit
git push origin development
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
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
lhumina_code/hero_shrimp!101
No description provided.