Releases: mirinodev/maestro
Release list
maestro@5.0.0
maestro@4.0.0
🚨 Breaking Change
Major Changes
-
#208 c1a6361 Thanks @camoneart! - Remove obsolete
mcpcommand and add dedicated MCP server binaryThe
mcpcommand has been removed as it became obsolete with the introduction of the modernclaude mcp addcommand which automatically manages the MCP server lifecycle.
🔄 Migration Guide
Users no longer need to manually start the MCP server with mst mcp serve. Instead, use the new setup:
Setup for different scopes:
# Local scope (default - current project only)
claude mcp add maestro -- npx -y @camoneart/maestro maestro-mcp-server
# Project scope (saved in .mcp.json for team sharing)
claude mcp add maestro -s project -- npx -y @camoneart/maestro maestro-mcp-server
# User scope (all projects on machine)
claude mcp add maestro -s user -- npx -y @camoneart/maestro maestro-mcp-server
# For global installation
claude mcp add maestro -s user -- maestro-mcp-server✨ What's New
- Dedicated MCP server binary:
maestro-mcp-serveris now a standalone executable - Simplified CLI: Removed unnecessary complexity by eliminating the obsolete
mcpcommand - Modern MCP practices: Aligns with Claude Code's automatic server lifecycle management
📦 Installation
# npm
npm install -g @camoneart/maestro@4.0.0
# pnpm
pnpm add -g @camoneart/maestro@4.0.0
# Homebrew
brew upgrade camoneart/tap/maestroFixes #207
maestro@3.5.18
Patch Changes
-
#0 6a548dc Thanks @camoneart! - fix: update MCP documentation and remove unsupported manual configuration
Updated all MCP setup instructions to use modern
claude mcp addcommand format and removed references to unsupported.claude/mcp_settings.jsonmanual configuration.Changes:
- Updated MCP setup instructions to use
claude mcp addcommand with all scope options (user, project, local) - Removed outdated manual configuration references to
.claude/mcp_settings.json - Fixed
mst mcp servecommand output to match actual implementation - Added
claude mcp add-jsonas an alternative JSON-based configuration method - Added warnings that traditional manual configuration is no longer supported
Fixed behavior:
- Command output now correctly shows modern setup instructions instead of legacy JSON configuration
- Documentation now matches Anthropic's official MCP documentation
- All three scope options are properly documented with accurate descriptions
- Updated MCP setup instructions to use
maestro@3.5.17
Patch Changes
-
#206 4950339 Thanks @camoneart! - fix: improve error handling for existing directories during worktree creation
Fixed issue where worktree creation would fail with Git errors when target directory already existed. Now provides interactive resolution options for better user experience.
Changes:
- Added directory existence detection before worktree creation
- Implemented interactive resolution when conflicts detected:
- Delete existing directory and create new
- Use auto-generated alternative name
- Cancel operation
Affected commands:
mst create- Directory conflict handling addedmst github- Directory conflict handling addedmst review- Directory conflict handling added
Fixes #205
maestro@3.5.16
Patch Changes
-
#204 b77e2a6 Thanks @camoneart! - fix: ensure ConfigManager loads project config on new instances
Fixed issue where ConfigManager new instances weren't loading project configuration files (
.maestro.local.jsonand.maestro.json). This ensures user settings likeui.pathDisplayare properly applied across all commands.Affected commands:
mst github- Path display now respects user settingsmst create- Configuration properly loadedmst exec- Path display fixedmst shell- Path display fixedmst review- Path display fixedmst health- Partial fix for async functions
Fixes #203
maestro@3.5.15
Patch Changes
-
#202 6d1ba1a Thanks @camoneart! - fix: apply ui.pathDisplay setting to all commands
Root Cause:
- Path display inconsistency across commands caused user confusion
- Some commands used formatPath() while others displayed absolute paths directly
Changes:
- Added formatPath() to github command (3 locations)
- Added formatPath() to review command for PR checkout paths
- Added formatPath() to shell command (2 locations)
- Added formatPath() to exec command (2 locations)
- Added formatPath() to health command (2 locations)
- Added formatPath() to watch command for worktree selection
User Impact:
- All commands now respect
ui.pathDisplayconfiguration - Users see consistent relative paths when setting
mst config set ui.pathDisplay relative - Improved user experience with unified path display behavior
Fixes #201
maestro@3.5.14
Patch Changes
-
#200 b0babcc Thanks @camoneart! - fix: prevent infinite directory creation in watch command
Root Cause:
- Invalid options were not properly handled, allowing command execution to proceed
- GitHub command lacked enhanced tmux options (--tmux-h, --tmux-v, etc.)
- Issue command treated 'list' as branch name instead of --list option
- GitHub issue/pr commands showed unnecessary selection prompts
- Non-existent Issue/PR numbers triggered interactive mode
Changes:
- Added
.exitOverride()to Commander for proper option validation (fixes #191) - Added enhanced tmux options to github command: --tmux-h, --tmux-v, --tmux-h-panes, --tmux-v-panes, --tmux-layout (fixes #192)
- Fixed issue command to properly handle 'list' as --list option (fixes #193)
- Fixed github issue/pr commands to skip selection when number is provided (fixes #194)
- Fixed github command to show error for non-existent Issue/PR numbers (fixes #195)
- Added automatic tmux session cleanup when deleting worktrees with --keep-session option
User Impact:
- Commands now properly exit with error code 1 for invalid options
- GitHub command supports advanced tmux pane configurations
mst issue listworks as expected without creating worktree- Direct PR/Issue selection without unnecessary prompts
- Clear error messages for non-existent GitHub resources
maestro@3.5.13
Patch Changes
-
#190 b0babcc Thanks @camoneart! - 🚨 Critical Fix: Prevent infinite directory creation in watch command
This patch fixes a critical bug where the watch command could create 65,535 subdirectories (macOS filesystem limit), causing filesystem corruption that cannot be cleaned up with normal methods.
Root Cause:
- Slash-containing branch names (e.g.,
feature/awesome-feature) caused problematic directory structures - Watch command's relative path calculation could generate paths like
../feature/awesome-feature/... - This triggered infinite directory creation loops
Security Improvements:
- Added path validation to prevent directory traversal attacks (
../patterns) - Implemented loop detection to stop infinite directory creation
- Added path depth limits (maximum 10 levels)
- Ensures all file operations stay within worktree boundaries
User Impact:
Users runningmst watchwith worktrees created from slash-containing branch names will no longer experience filesystem corruption.Fixes #189
- Slash-containing branch names (e.g.,
maestro@3.5.12
maestro@3.5.11
Patch Changes
-
#179 c8c0ec6 Thanks @camoneart! - Fix tmux session deletion for branch names with slashes
Fixed an issue where tmux sessions were not being deleted when removing worktrees with branch names containing slashes (e.g.,
feature/test).Changes:
- Normalize tmux session names in delete command (replace slashes with hyphens)
- Apply the same normalization logic as the create command
Fixes #178
-
#180 9086e74 Thanks @camoneart! - Set pane title for regular --tmux sessions
Fixed an issue where pane titles were not being set to branch names when creating sessions with the
--tmuxoption.Changes:
- Set pane titles during regular tmux session creation
- Unified behavior with other tmux options (--tmux-h, --tmux-v)
Fixes #177