v0.35.0
Pre-release
Pre-release
·
176 commits
to main
since this release
Slim/dynamic profiles (#313)
* Add conditional profiles feature with Claude Code integration
This commit implements several enhancements to the profiles feature:
1. Conditional tool loading based on profiles feature flag
- Added UseProfiles field to Options config
- Profile tools (mcp-create-profile, mcp-activate-profile) now only
load when features.IsProfilesFeatureEnabled() returns true
- Updated gateway.go to set the flag based on feature detection
- Modified reload.go to conditionally register profile tools
2. Automatic profile loading for Claude Code
- Created new pkg/gateway/project package for project-level config
- LoadProfiles() reads profiles.json from current working directory
- InitializedHandler detects claude-code client and auto-loads profiles
- Profiles are activated on connection startup seamlessly
3. Automatic profiles.json management for Claude Code
- SaveProfile() function creates/updates profiles.json
- When creating a profile with claude-code client, profile name is
automatically added to profiles.json in current directory
- Maintains array of profile names with deduplication
4. Refactored profile activation for reusability
- Extracted ActivateProfile() method on Gateway
- Performs full validation (secrets, config, image pulls)
- Used by both activateProfileHandler and LoadProfiles
- Simplified activateProfileHandler by delegating to method
5. Enhanced initialization logging
- Changed InitializedHandler to log entire initialize request
- Provides complete visibility into client capabilities and config
- Helpful for debugging client behavior
6. Improved Configurator interface design
- Added readDockerDesktopSecrets to Configurator interface
- Eliminated type-casting in activateprofile.go and mcpadd.go
- Both FileBasedConfiguration and WorkingSetConfiguration implement
- Cleaner code following proper Go interface patterns
* stop skipping remote servers
* Claude-Code support in project package.
* update permissions
* Updates from review
* Update pkg/gateway/activateprofile.go
Co-authored-by: Cody Rigney <cody.rigney@docker.com>
* slight mishap!
* another mistake
* while testing, found a bug in docker mcp secret
* Move profile loading into middleware
It's better if this happens before the client sends the initialized
notification