Skip to content

v0.35.0

Pre-release
Pre-release

Choose a tag to compare

@docker-read-write docker-read-write released this 09 Jan 21:58
· 176 commits to main since this release
362b068
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