Skip to content

Releases: mirinodev/maestro

maestro@5.0.0

Choose a tag to compare

@mirinodev mirinodev released this 05 Aug 11:05
692c792

Major Changes 🚨

  • #213 692c792 Thanks @camoneart! - Remove watch command

    BREAKING CHANGE: The mst watch command has been removed. This command was not functioning properly and was removed to keep the codebase simple.

Patch Changes 🐛

  • #211 5b5dc9f Thanks @camoneart! - Fix GitHub metadata not being saved

    Metadata is now properly saved when creating worktrees with mst github issue, mst github pr, mst create {number}, and other GitHub integration commands. This fixes the mst list --metadata option to work as expected.

    Fixes #210

maestro@4.0.0

Choose a tag to compare

@mirinodev mirinodev released this 05 Aug 02:00
a847c03

🚨 Breaking Change

Major Changes

  • #208 c1a6361 Thanks @camoneart! - Remove obsolete mcp command and add dedicated MCP server binary

    The mcp command has been removed as it became obsolete with the introduction of the modern claude mcp add command 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-server is now a standalone executable
  • Simplified CLI: Removed unnecessary complexity by eliminating the obsolete mcp command
  • 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/maestro

Fixes #207

maestro@3.5.18

Choose a tag to compare

@mirinodev mirinodev released this 04 Aug 18:50

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 add command format and removed references to unsupported .claude/mcp_settings.json manual configuration.

    Changes:

    • Updated MCP setup instructions to use claude mcp add command with all scope options (user, project, local)
    • Removed outdated manual configuration references to .claude/mcp_settings.json
    • Fixed mst mcp serve command output to match actual implementation
    • Added claude mcp add-json as 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

maestro@3.5.17

Choose a tag to compare

@mirinodev mirinodev released this 03 Aug 19:16

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:
      1. Delete existing directory and create new
      2. Use auto-generated alternative name
      3. Cancel operation

    Affected commands:

    • mst create - Directory conflict handling added
    • mst github - Directory conflict handling added
    • mst review - Directory conflict handling added

    Fixes #205

maestro@3.5.16

Choose a tag to compare

@mirinodev mirinodev released this 02 Aug 23:03

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.json and .maestro.json). This ensures user settings like ui.pathDisplay are properly applied across all commands.

    Affected commands:

    • mst github - Path display now respects user settings
    • mst create - Configuration properly loaded
    • mst exec - Path display fixed
    • mst shell - Path display fixed
    • mst review - Path display fixed
    • mst health - Partial fix for async functions

    Fixes #203

maestro@3.5.15

Choose a tag to compare

@mirinodev mirinodev released this 02 Aug 17:01

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.pathDisplay configuration
    • 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

Choose a tag to compare

@mirinodev mirinodev released this 02 Aug 13:52

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 list works as expected without creating worktree
    • Direct PR/Issue selection without unnecessary prompts
    • Clear error messages for non-existent GitHub resources

    Fixes #191, #192, #193, #194, #195

maestro@3.5.13

Choose a tag to compare

@mirinodev mirinodev released this 02 Aug 00:18

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 running mst watch with worktrees created from slash-containing branch names will no longer experience filesystem corruption.

    Fixes #189

maestro@3.5.12

Choose a tag to compare

@mirinodev mirinodev released this 01 Aug 22:11

Patch Changes

  • #185 677f493 Thanks @camoneart! - fix: github command now only opens editor with explicit --open flag
  • #188 eee57c1 Thanks @camoneart! - fix: github pr command now creates worktree correctly
  • d7bd3fe Thanks @camoneart! - chore: remove unused worktrees.path configuration

maestro@3.5.11

Choose a tag to compare

@mirinodev mirinodev released this 01 Aug 08:39

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 --tmux option.

    Changes:

    • Set pane titles during regular tmux session creation
    • Unified behavior with other tmux options (--tmux-h, --tmux-v)

    Fixes #177