-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
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
Labels
enhancementNew feature or requestNew feature or request