feat: Add comprehensive dynamic configuration system v3.3.0
## Major Features Added ### 🎯 Dynamic Configuration System - **Environment-aware model selection**: DEFAULT_MODEL with 'pro'/'flash' shortcuts - **Configurable thinking modes**: DEFAULT_THINKING_MODE_THINKDEEP for extended reasoning - **All tool schemas now dynamic**: Show actual current defaults instead of hardcoded values - **Enhanced setup workflow**: Copy from .env.example with smart customization ### 🔧 Model & Thinking Configuration - **Smart model resolution**: Support both shortcuts ('pro', 'flash') and full model names - **Thinking mode optimization**: Only apply thinking budget to models that support it - **Flash model compatibility**: Works without thinking config, still beneficial via system prompts - **Dynamic schema descriptions**: Tool parameters show current environment values ### 🚀 Enhanced Developer Experience - **Fail-fast Docker setup**: GEMINI_API_KEY required upfront in docker-compose - **Comprehensive startup logging**: Shows current model and thinking mode defaults - **Enhanced get_version tool**: Reports all dynamic configuration values - **Better .env documentation**: Clear token consumption details and model options ### 🧪 Comprehensive Testing - **Live model validation**: New simulator test validates Pro vs Flash thinking behavior - **Dynamic configuration tests**: Verify environment variable overrides work correctly - **Complete test coverage**: All 139 unit tests pass, including new model config tests ### 📋 Configuration Files Updated - **docker-compose.yml**: Fail-fast API key validation, thinking mode support - **setup-docker.sh**: Copy from .env.example instead of manual creation - **.env.example**: Detailed documentation with token consumption per thinking mode - **.gitignore**: Added test-setup/ for cleanup ### 🛠 Technical Improvements - **Removed setup.py**: Fully Docker-based deployment (no longer needed) - **REDIS_URL smart defaults**: Auto-configured for Docker, still configurable for dev - **All tools updated**: Consistent dynamic model parameter descriptions - **Enhanced error handling**: Better model resolution and validation ## Breaking Changes - Removed setup.py (Docker-only deployment) - Model parameter descriptions now show actual defaults (dynamic) ## Migration Guide - Update .env files using new .env.example format - Use 'pro'/'flash' shortcuts or full model names - Set DEFAULT_THINKING_MODE_THINKDEEP for custom thinking depth 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
20
.env.example
20
.env.example
@@ -5,10 +5,22 @@
|
||||
# Get your API key from: https://makersuite.google.com/app/apikey
|
||||
GEMINI_API_KEY=your_gemini_api_key_here
|
||||
|
||||
# Optional: Redis connection URL for conversation memory
|
||||
# Defaults to redis://localhost:6379/0
|
||||
# For Docker: redis://redis:6379/0
|
||||
REDIS_URL=redis://localhost:6379/0
|
||||
# Optional: Default model to use
|
||||
# Full names: 'gemini-2.5-pro-preview-06-05' or 'gemini-2.0-flash-exp'
|
||||
# Defaults to gemini-2.5-pro-preview-06-05 if not specified
|
||||
DEFAULT_MODEL=gemini-2.5-pro-preview-06-05
|
||||
|
||||
# Optional: Default thinking mode for ThinkDeep tool
|
||||
# NOTE: Only applies to models that support extended thinking (e.g., Gemini 2.5 Pro)
|
||||
# Flash models (2.0) will use system prompt engineering instead
|
||||
# Token consumption per mode:
|
||||
# minimal: 128 tokens - Quick analysis, fastest response
|
||||
# low: 2,048 tokens - Light reasoning tasks
|
||||
# medium: 8,192 tokens - Balanced reasoning (good for most cases)
|
||||
# high: 16,384 tokens - Complex analysis (recommended for thinkdeep)
|
||||
# max: 32,768 tokens - Maximum reasoning depth, slowest but most thorough
|
||||
# Defaults to 'high' if not specified
|
||||
DEFAULT_THINKING_MODE_THINKDEEP=high
|
||||
|
||||
# Optional: Workspace root directory for file access
|
||||
# This should be the HOST path that contains all files Claude might reference
|
||||
|
||||
Reference in New Issue
Block a user