Skip to content

Make AI token budget limits user-configurable #46

@heysamtexas

Description

@heysamtexas

Summary

Currently AI token budget limits are hard-coded in the library API (50-1000 tokens). This should be configurable by users while maintaining safe defaults.

Current Implementation

# Hard-coded in src/git_summary/library.py
@field_validator("ai_token_budget")
@classmethod  
def validate_token_budget(cls, v: int) -> int:
    if v < 50:
        raise ValueError("ai_token_budget must be at least 50 for basic analysis")
    if v > 1000:
        raise ValueError("ai_token_budget cannot exceed 1000 to avoid rate limits")
    return v

Proposed Solution

1. Add AI Configuration to Config Class

  • Extend ~/.git-summary/config.json to include AI settings
  • Add methods: get_ai_config(), set_ai_config(), get_token_budget_limits()
  • Structure: {"ai": {"min_token_budget": 50, "max_token_budget": 1000, "default_token_budget": 200}}

2. Update Library API Validation

  • Replace hard-coded limits in AnalysisConfig.validate_token_budget()
  • Load limits from user config with fallback to safe defaults
  • Add validation that user limits are reasonable (e.g., max can't exceed 10000)

3. Add CLI Commands for Configuration

git-summary config ai --min-budget 25 --max-budget 2000
git-summary config ai --reset  # restore defaults
git-summary config ai --show   # display current limits

4. Enhanced Validation & Warnings

  • Warn users when they set high limits about cost implications
  • Add --force flag to override safety warnings
  • Include budget guidance in dry-run output

Benefits

  • Flexibility: Power users can set higher limits when needed
  • Safety: Defaults remain conservative, changes require explicit action
  • Transparency: Users see and control their own risk tolerance
  • Enterprise-friendly: Organizations can set company-wide policies

Acceptance Criteria

  • User can configure min/max token budget limits via CLI
  • Configuration persists in ~/.git-summary/config.json
  • Library API respects user-configured limits
  • Safe defaults maintained (50-1000 tokens)
  • Warnings for potentially expensive configurations
  • Dry-run shows current budget limits and guidance

Priority

Low-medium - current hard-coded limits work well for 95% of users. Good candidate for community contribution after core library API is complete.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions