feat: Add binary path resolution and Docker support (v0.1.0)

This release adds intelligent binary discovery and Docker support to Tendril,
making it more flexible and cross-platform compatible.

## Features

### Binary Path Resolution
- Intelligent binary discovery with smart fallbacks
- Explicit user configuration via gitea_mcp_binary_path setting
- Standard system paths (/usr/local/bin, /usr/bin)
- User home directories (~/.local/bin, ~/.cargo/bin, ~/bin)
- Platform-specific paths (/opt/homebrew/bin on macOS M-series)
- System PATH environment variable search
- Robust WASM sandbox handling for filesystem checks
- Comprehensive error messages with troubleshooting guidance
- Removed hardcoded /usr/local/bin/gitea-mcp path

### Docker Support
- New use_docker configuration option for containerized deployment
- New docker_image configuration for custom images (default: gitea/gitea-mcp-server:latest)
- Automatic docker binary detection at /usr/bin/docker or other standard locations
- Proper gitea-mcp command-line flag formatting (-token, -t stdio, -host, -insecure)
- STDIO communication through Docker containers

### Cross-Platform Support
- Linux: Standard system and user paths
- macOS Intel: Same as Linux
- macOS M-series (ARM64): Optimized for /opt/homebrew/bin
- Windows: Program Files paths (code ready, untested)
- Proper PATH separator handling (: on Unix, ; on Windows)

## Bug Fixes

- Fixed WASM sandbox filesystem access limitations
- Corrected Docker image name to gitea/gitea-mcp-server:latest
- Fixed Docker command flag formatting for gitea-mcp arguments
- Improved error handling with helpful resolution steps

## Documentation

- Updated README.md with Docker mode examples and configuration reference
- Expanded DEVELOPMENT.md with architecture and testing roadmap
- Updated PROJECT_STATUS.md with v0.1.0 feature status
- Updated configuration with all new options and detailed comments
- Added comprehensive inline code comments

## Testing

- Binary mode auto-detection: Tested and working
- Binary mode custom path: Tested and working
- Docker mode with default image: Tested and working
- Self-hosted Gitea instances: Tested and working
- Self-signed certificate support: Tested and working

## Files Changed

- src/mcp_server_gitea.rs: Core extension (~350 lines)
- configuration/default_settings.jsonc: New settings
- configuration/installation_instructions.md: Updated guide
- README.md: Expanded documentation
- DEVELOPMENT.md: Complete developer guide
- PROJECT_STATUS.md: Updated status
- .gitignore: Added comprehensive ignore file

## Breaking Changes

None - fully backward compatible.

## Next Steps (v0.2.0)

- Cross-platform testing
- Interactive configuration wizard
- Performance optimizations
- Marketplace publication
This commit is contained in:
2025-11-10 16:43:11 -07:00
parent 83d9664f72
commit 6a8dfa8b66
13 changed files with 2761 additions and 2 deletions

View File

@@ -0,0 +1,61 @@
{
// ============================================================================
// REQUIRED SETTINGS
// ============================================================================
// Required: Your Gitea personal access token
// Generated in Gitea at: Settings > Applications > Authorize New Application
// This token is used to authenticate with your Gitea instance
"gitea_access_token": "YOUR_GITEA_TOKEN",
// ============================================================================
// BINARY PATH RESOLUTION
// ============================================================================
// Optional: Explicit path to gitea-mcp binary
// Leave commented to use automatic discovery
// If set, this path must point to the gitea-mcp executable
// Examples:
// - "/usr/local/bin/gitea-mcp"
// - "/home/user/.local/bin/gitea-mcp"
// - "C:\\Program Files\\gitea-mcp\\gitea-mcp.exe" (Windows)
// "gitea_mcp_binary_path": "path/to/gitea-mcp",
// ============================================================================
// DOCKER SUPPORT
// ============================================================================
// Optional: Use Docker to run gitea-mcp instead of local binary
// Set to true if:
// 1. You prefer containerized deployment
// 2. The binary is not available on your system
// 3. You want consistent behavior across platforms
// Requires: Docker or Docker Desktop to be installed and running
// "use_docker": false,
// Optional: Docker image to use for gitea-mcp
// Only used if use_docker is true
// Default: "gitea/gitea-mcp:latest"
// You can specify a different version or tag:
// - "gitea/gitea-mcp-server:v1.0.0" (specific version)
// - "my-registry.com/gitea-mcp-server:custom" (custom registry)
// "docker_image": "gitea/gitea-mcp-server:latest",
// ============================================================================
// GITEA INSTANCE CONFIGURATION
// ============================================================================
// Optional: URL of your Gitea instance (for self-hosted Gitea)
// Leave commented out to use the default Gitea instance
// Examples:
// - "https://git.example.com"
// - "https://gitea.internal.company.com"
// - "http://localhost:3000" (for local development)
// "gitea_host": "https://your-gitea-instance.com",
// Optional: Allow insecure/self-signed certificates
// Set to true ONLY if using self-signed certificates
// Security warning: This disables certificate verification
// Only use this for trusted internal servers
// "gitea_insecure": false
}