tree 1a181005f78a908112288e814bd60205b060a436
parent 2f0eb6995fc1041d23b8224a099013e89bb03f67
author Philip Zeyliger <philip@bold.dev> 1749056121 +0000
committer Philip Zeyliger <philip@bold.dev> 1749056237 -0700

budget: remove num-iterations and wall clock time limits

Remove iteration count and time-based budget limits from the agent budget system
while preserving the budget concept for dollar-based limits only.

Problem Analysis:
The budget system previously supported three types of limits:
1. MaxResponses (iteration count limit)
2. MaxWallTime (wall clock time limit)
3. MaxDollars (cost limit)

This created complexity in both implementation and user experience, with
multiple overlapping budget mechanisms that could trigger independently.
The iteration and time limits added limited value compared to the more
practical dollar-based budget control.

Implementation Changes:

1. Budget Structure Simplification:
   - Remove MaxResponses and MaxWallTime fields from Budget struct
   - Keep only MaxDollars field for cost-based budget control
   - Simplify Budget to single-field struct with clear purpose

2. CLI Flag Removal:
   - Remove -max-iterations flag from command line interface
   - Remove -max-wall-time flag from command line interface
   - Keep -max-dollars flag with same functionality
   - Remove unused time import from cmd/sketch/main.go

3. Budget Logic Streamlining:
   - Simplify ResetBudget() to only adjust MaxDollars based on usage
   - Simplify overBudget() to only check dollar limits
   - Remove iteration and time checking logic throughout

4. Container Configuration Updates:
   - Remove MaxIterations and MaxWallTime from ContainerConfig struct
   - Remove corresponding docker command arguments
   - Maintain MaxDollars configuration and passing

5. UI Cleanup:
   - Remove budget display of max responses and max wall time from termui
   - Keep dollar-based budget information display

6. Test Updates:
   - Update test Budget initialization to use only MaxDollars
   - Verify all existing tests continue to pass

Technical Details:
- Budget struct now contains only MaxDollars float64 field
- ResetBudget adjusts budget by adding current TotalCostUSD to MaxDollars
- overBudget checks only dollar spending against MaxDollars limit
- CLI help shows only -max-dollars option, no iteration/time options
- Docker container launch passes only max-dollars parameter

Benefits:
- Simplified budget system with single, clear cost control mechanism
- Reduced complexity in budget logic and error handling
- Cleaner CLI interface with fewer confusing options
- More predictable budget behavior focused on practical cost limits
- Easier to understand and configure for users

Testing:
- All existing tests pass with updated budget structure
- CLI help verification shows only max-dollars option
- Build verification confirms no compilation errors
- Budget functionality preserved for dollar-based limits

This change streamlines the budget system to focus on practical cost control
while maintaining all existing dollar-based budget functionality and removing
complexity around iteration and time-based limits.

Co-Authored-By: sketch <hello@sketch.dev>
Change-ID: sa7be127e12d43ee7k
