@iflow-mcp/camoneart-maestro 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,949 @@
1
+ # Changelog
2
+
3
+ ## 4.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#208](https://github.com/camoneart/maestro/pull/208) [`c1a6361`](https://github.com/camoneart/maestro/commit/c1a6361ec1da4dbd57ece404121e8af88b2dfc32) Thanks [@camoneart](https://github.com/camoneart)! - Remove obsolete `mcp` command and add dedicated MCP server binary
8
+
9
+ BREAKING CHANGE: The `mcp` command has been removed. It became obsolete with the introduction of the modern `claude mcp add` command which automatically manages the MCP server lifecycle.
10
+
11
+ **Migration:**
12
+ - Users no longer need to manually start the MCP server with `mst mcp serve`
13
+ - Claude Code automatically manages the server lifecycle
14
+ - New dedicated `maestro-mcp-server` binary added for MCP integration
15
+
16
+ **Setup for different scopes:**
17
+
18
+ ```bash
19
+ # Local scope (default - current project only)
20
+ claude mcp add maestro -- npx -y @camoneart/maestro maestro-mcp-server
21
+
22
+ # Project scope (saved in .mcp.json for team sharing)
23
+ claude mcp add maestro -s project -- npx -y @camoneart/maestro maestro-mcp-server
24
+
25
+ # User scope (all projects on machine)
26
+ claude mcp add maestro -s user -- npx -y @camoneart/maestro maestro-mcp-server
27
+
28
+ # For global installation
29
+ claude mcp add maestro -s user -- maestro-mcp-server
30
+ ```
31
+
32
+ **Rationale:**
33
+ - Simplifies the CLI by removing unnecessary complexity
34
+ - Reduces confusion for users
35
+ - Reduces maintenance burden
36
+ - Aligns with modern MCP setup practices
37
+ - Provides dedicated binary for cleaner MCP integration
38
+
39
+ Fixes #207
40
+
41
+ ## 3.5.18
42
+
43
+ ### Patch Changes
44
+
45
+ - fix: update MCP documentation and remove unsupported manual configuration
46
+ - Updated all MCP setup instructions to use modern `claude mcp add` command
47
+ - Removed references to unsupported `.claude/mcp_settings.json` manual configuration
48
+ - Fixed mcp serve command output to match actual implementation
49
+ - Added support for all MCP scopes (user, project, local) with accurate descriptions
50
+ - Replaced legacy configuration with `claude mcp add-json` alternative method
51
+
52
+ This ensures users follow the current best practices for MCP server setup as documented in Anthropic's official documentation.
53
+
54
+ ## 3.5.17
55
+
56
+ ### Patch Changes
57
+
58
+ - fix: improve error handling for existing directories during worktree creation
59
+ - Added intelligent directory existence checking before creating worktrees
60
+ - Implemented interactive resolution options when directory conflicts are detected
61
+ - Users can now choose to delete existing directory, use an alternative name, or cancel
62
+ - Prevents Git errors and improves user experience when creating worktrees
63
+ - Applied to `mst create`, `mst github`, and `mst review` commands
64
+
65
+ Fixes #205
66
+
67
+ ## 3.5.16
68
+
69
+ ### Patch Changes
70
+
71
+ - fix: ensure ConfigManager loads project config on new instances
72
+
73
+ 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.
74
+
75
+ Affected commands:
76
+ - `mst github` - Path display now respects user settings
77
+ - `mst create` - Configuration properly loaded
78
+ - `mst exec` - Path display fixed
79
+ - `mst shell` - Path display fixed
80
+ - `mst review` - Path display fixed
81
+ - `mst health` - Partial fix for async functions
82
+
83
+ Fixes #203
84
+
85
+ ## 3.5.15
86
+
87
+ ### Patch Changes
88
+
89
+ - fix: apply ui.pathDisplay setting to all commands (fixes #201)
90
+
91
+ All commands now respect the ui.pathDisplay configuration setting for consistent path display:
92
+ - github command: 3 path displays now use formatPath()
93
+ - review command: PR checkout path display
94
+ - shell command: 2 path displays for worktree entry
95
+ - exec command: 2 path displays for command execution
96
+ - health command: 2 path displays in worktree lists
97
+ - watch command: Path display in worktree selection
98
+
99
+ Users can now use `mst config set ui.pathDisplay relative` to see relative paths consistently across all commands.
100
+
101
+ ## 3.5.14
102
+
103
+ ### Patch Changes
104
+
105
+ - Fix multiple GitHub and tmux integration issues:
106
+ - fix: prevent command execution with invalid options (fixes #191)
107
+ - feat: add enhanced tmux options to github command (--tmux-h, --tmux-v, --tmux-h-panes, --tmux-v-panes, --tmux-layout) (fixes #192)
108
+ - fix: handle 'list' argument as --list option in issue command (fixes #193)
109
+ - fix: prevent unnecessary selection prompt in github issue/pr commands (fixes #194)
110
+ - fix: prevent interactive mode when non-existent Issue/PR number is specified (fixes #195)
111
+ - feat: automatic tmux session cleanup when deleting worktrees (with --keep-session override option)
112
+ EOF < /dev/null
113
+
114
+ ## 3.5.13
115
+
116
+ ### Patch Changes
117
+
118
+ - 🚨 Critical Fix: Prevent infinite directory creation in watch command
119
+
120
+ 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.
121
+
122
+ **Root Cause:**
123
+ - Slash-containing branch names (e.g., `feature/awesome-feature`) caused problematic directory structures
124
+ - Watch command's relative path calculation could generate paths like `../feature/awesome-feature/...`
125
+ - This triggered infinite directory creation loops
126
+
127
+ **Security Improvements:**
128
+ - Added path validation to prevent directory traversal attacks (`../` patterns)
129
+ - Implemented loop detection to stop infinite directory creation
130
+ - Added path depth limits (maximum 10 levels)
131
+ - Ensures all file operations stay within worktree boundaries
132
+
133
+ **User Impact:**
134
+ Users running `mst watch` with worktrees created from slash-containing branch names will no longer experience filesystem corruption.
135
+
136
+ Fixes #189
137
+
138
+ ## 3.5.12
139
+
140
+ ### Patch Changes
141
+
142
+ - fix: github command improvements and bug fixes
143
+ - Fixed github command to only open editor with explicit --open flag (#185)
144
+ - Fixed github pr command worktree creation error (#188)
145
+ - Removed unused worktrees.path configuration for clarity
146
+
147
+ ## 3.5.11
148
+
149
+ ### Patch Changes
150
+
151
+ - fix: tmuxセッション関連のバグ修正
152
+ - スラッシュを含むブランチ名(例:`feature/test`)のworktree削除時にtmuxセッションが削除されない問題を修正
153
+ - 通常の`--tmux`オプションでセッション作成時にペインタイトルがブランチ名に設定されない問題を修正
154
+
155
+ 詳細:
156
+ - deleteコマンドでtmuxセッション名を正規化(スラッシュをハイフンに置換)するよう修正
157
+ - createコマンドで通常のtmuxセッション作成時もペインタイトルを設定するよう修正
158
+
159
+ ## 3.5.10
160
+
161
+ ### Patch Changes
162
+
163
+ - Improve list command UI with clearer worktree labeling
164
+ - Update header to show "オーケストラ編成(worktree):" for clarity
165
+ - Change individual worktree icons from 🎼 to 🎷 (keeping 📍 for current position)
166
+ - Fix English documentation that had Japanese text mixed in
167
+ - Maintain consistent orchestra theme throughout the UI
168
+
169
+ ## 3.5.9
170
+
171
+ ### Patch Changes
172
+
173
+ - Update README with demo video and improved descriptions
174
+ - Added demo video link to help users understand the tool visually
175
+ - Improved Japanese description for better clarity
176
+ - Enhanced documentation for better user experience
177
+
178
+ ## 3.5.8
179
+
180
+ ### Patch Changes
181
+
182
+ - Add automatic empty directory cleanup after worktree deletion
183
+
184
+ When deleting worktrees with slash-separated branch names (e.g., `feature/api`), empty parent directories are now automatically removed. This keeps the file system clean without manual intervention.
185
+ - Recursively removes empty directories up to the worktree base directory
186
+ - Safe operation that stops at non-empty directories
187
+ - Displays cleanup messages for transparency
188
+
189
+ Fixes #175
190
+
191
+ ## 3.5.7
192
+
193
+ ### Patch Changes
194
+
195
+ - Fix unwanted cleanup when Ctrl+C during tmux attach prompt
196
+ - Prevent automatic rollback from post-creation task errors
197
+ - Add try-catch handling for attach prompts
198
+ - Preserve created resources (worktree, branch, tmux session) when Ctrl+C is pressed
199
+ - Show manual attachment instructions instead of deleting resources
200
+
201
+ Fixes #173
202
+
203
+ ## 3.5.6
204
+
205
+ ### Patch Changes
206
+
207
+ - Critical tmux integration bug fixes
208
+
209
+ **Fixed behavior:**
210
+ - tmux分割エラー時にセッション・ブランチ・worktreeが作成される問題を修正 (Issue #171)
211
+ - tmuxペインタイトル設定とフォーカス位置のバグを修正 (Issue #169, #167)
212
+ - tmuxヘルパースクリプトのパス解決問題を修正 (Issue #160)
213
+ - tmuxペイン作成時の重複エラーメッセージを修正
214
+ - tmuxペイン数の検証ロジックを改善
215
+
216
+ **Changes:**
217
+ - エラー発生時のリソース作成を防ぐようtmux処理の順序を変更
218
+ - 全ペインに統一したブランチ名タイトルを設定
219
+ - スクリプトパス解決を改善し、異なるディレクトリからの実行に対応
220
+ - エラーメッセージの重複を排除し、一貫性のある表示に改善
221
+
222
+ これらの修正により、tmux統合機能の安定性が大幅に向上しました。
223
+
224
+ ## 3.5.5
225
+
226
+ ### Patch Changes
227
+
228
+ - fix: tmuxペインタイトル設定とフォーカス位置のバグ修正
229
+
230
+ Properly set unified branch name titles for all tmux panes and ensure focus is correctly set to the first pane (top-left).
231
+
232
+ **Fixed:**
233
+ - Use correct tmux pane specification format `sessionName:0.paneIndex` instead of `sessionName:paneIndex`
234
+ - All panes now properly display the branch name as their title
235
+ - Focus is correctly set to the first pane (0.0) after pane creation
236
+ - Both new session and inside-tmux scenarios work correctly
237
+
238
+ **Changes:**
239
+ - Fixed `setTitleForAllPanes` function to use correct pane targeting format
240
+ - Fixed `handleNewSessionPaneSplit` to focus on `sessionName:0.0` instead of `sessionName:0`
241
+ - Added comprehensive tests for pane title and focus behavior
242
+
243
+ Fixes #167, #169
244
+
245
+ ## 3.5.4
246
+
247
+ ### Patch Changes
248
+
249
+ - fix: Set unified branch name titles for all tmux panes
250
+
251
+ When creating multiple tmux panes with options like `--tmux-h-panes` or `--tmux-v-panes`, all panes now display the branch name as their title instead of only the last pane. This provides better visual consistency and makes it easier to identify which worktree you're working in across all panes.
252
+
253
+ Fixes #165
254
+
255
+ ## 3.5.3
256
+
257
+ ### Patch Changes
258
+
259
+ - fix: Complete elimination of duplicate error messages
260
+
261
+ Removes the final redundant error display in executeCreateCommand that was causing
262
+ triple error messages when tmux operations failed. Now shows clean, single error
263
+ messages as intended.
264
+
265
+ **Fixed behavior:**
266
+ - Error messages now display only twice instead of three times
267
+ - Eliminated redundant error output in CLI error handling
268
+ - Cleaner error experience for users
269
+
270
+ Completes fix for #163
271
+ EOF < /dev/null
272
+
273
+ ## 3.5.2
274
+
275
+ ### Patch Changes
276
+
277
+ - fix: Reduce duplicate error messages in tmux pane creation
278
+
279
+ When tmux pane creation fails due to insufficient screen space or other errors, the error message was displayed multiple times at different levels of the error handling chain. This fix consolidates error display to show clear, single error messages.
280
+
281
+ **Fixed behavior:**
282
+ - Error messages are now displayed once instead of 2-3 times
283
+ - Better error handling hierarchy prevents redundant spinner failures
284
+ - Cleaner user experience when tmux operations fail
285
+
286
+ Fixes #163
287
+ EOF < /dev/null
288
+
289
+ ## 3.5.1
290
+
291
+ ### Patch Changes
292
+
293
+ - feat: Add multi-pane support for tmux options (#157)
294
+ - Added `--tmux-h-panes <number>` and `--tmux-v-panes <number>` options for creating multiple tmux panes
295
+ - Added `--tmux-layout <type>` option for applying tmux layout (even-horizontal, even-vertical, main-horizontal, main-vertical, tiled)
296
+ - Improved tmux integration with automatic layout application for optimal space usage
297
+
298
+ fix: Improve tmux pane creation error handling (#161)
299
+ - Enhanced error messages when tmux pane creation fails due to insufficient screen space
300
+ - Better user feedback with specific guidance on resolution (e.g., "画面サイズに対してペイン数が多すぎます")
301
+
302
+ fix: Lazy initialization for tmux helper to resolve path resolution issues (#162)
303
+ - Fixed issue where CLI commands failed when run from directories outside the maestro project root
304
+ - Tmux helper path is now resolved only when tmux features are actually used
305
+ - Non-tmux commands (like `config init`) now work correctly from any directory
306
+
307
+ Fixes #159, #160
308
+ EOF < /dev/null
309
+
310
+ ## 3.5.0
311
+
312
+ ### Minor Changes
313
+
314
+ - feat: Add CLI configuration commands (set/get/reset)
315
+
316
+ **New Commands:**
317
+ - `mst config get <key>` - Get configuration value using dot notation
318
+ - `mst config set <key> <value>` - Set configuration value using dot notation
319
+ - `mst config reset <key>` - Reset configuration value to default
320
+
321
+ **Features:**
322
+ - Dot notation support for nested configurations (e.g., `ui.pathDisplay`)
323
+ - Automatic type conversion for boolean and number values
324
+ - Schema validation ensures only valid configurations are saved
325
+ - Auto-creates `.maestro.json` if it doesn't exist
326
+ - Removes empty nested objects after reset operations
327
+
328
+ **Examples:**
329
+
330
+ ```bash
331
+ mst config set ui.pathDisplay relative
332
+ mst config set development.autoSetup false
333
+ mst config get worktrees.path
334
+ mst config reset ui.pathDisplay
335
+ ```
336
+
337
+ Fixes #152
338
+
339
+ ## 3.4.0
340
+
341
+ ### Minor Changes
342
+
343
+ - feat: Add configurable path display format (absolute/relative)
344
+
345
+ **New Feature:**
346
+ - Added `ui.pathDisplay` configuration option in `.maestro.json`
347
+ - Choose between `"absolute"` (default) or `"relative"` path display
348
+ - Affects path display across all major commands
349
+
350
+ **Affected Commands:**
351
+ - `mst create` - Creation confirmation message
352
+ - `mst list` - Worktree listing (respects configuration)
353
+ - `mst where` - Current location display
354
+ - `mst delete` - Deletion confirmation
355
+ - `mst sync` - Sync target selection
356
+
357
+ **Configuration Example:**
358
+
359
+ ```json
360
+ {
361
+ "ui": {
362
+ "pathDisplay": "relative" // or "absolute"
363
+ }
364
+ }
365
+ ```
366
+
367
+ **Benefits:**
368
+ - Consistent path display across all commands
369
+ - User preference for compact (relative) or explicit (absolute) paths
370
+ - Better integration with different workflow preferences
371
+
372
+ Fixes #150
373
+
374
+ ## 3.3.5
375
+
376
+ ### Patch Changes
377
+
378
+ - 🐛 Fix: Inquirer prompt fails due to Promise.allSettled conflict (Issue #148)
379
+
380
+ **What was fixed:**
381
+ - Separated tmux session creation from parallel task execution in `executePostCreationTasks`
382
+ - Added TTY environment check before showing interactive prompts
383
+ - Non-TTY environments now skip prompts and show manual attach instructions
384
+
385
+ **Technical details:**
386
+ - Interactive tmux confirmation prompts were conflicting with concurrent Promise execution
387
+ - Now executes non-interactive tasks (setup, editor, CLAUDE.md) in parallel first
388
+ - Then runs tmux session creation separately to avoid stdin/stdout conflicts
389
+ - Prevents "User force closed the prompt" errors in inquirer
390
+
391
+ **User impact:**
392
+ - Interactive tmux attach confirmation now works reliably
393
+ - Non-TTY environments (CI, scripts) gracefully skip prompts
394
+ - Better user experience with proper prompt handling
395
+
396
+ Fixes #148
397
+
398
+ ## 3.3.4
399
+
400
+ ### Patch Changes
401
+
402
+ - Use existing shell script helper for tmux auto-attach TTY fix
403
+
404
+ **Fixed:**
405
+ - 🚀 Integrated existing `scripts/maestro-tmux-attach` shell script that uses proper `exec()` system call
406
+ - 🛠️ Resolved persistent TTY corruption when using `--tmux`, `--tmux-h`, `--tmux-v` options
407
+ - ✨ Proper process replacement ensures tmux gets full TTY control
408
+ - 🎯 No more keyboard input corruption or terminal breakage after detach
409
+
410
+ **Technical Details:**
411
+ - Utilizes shell's `exec` command for true process replacement
412
+ - Avoids Node.js process lingering and competing for TTY control
413
+ - Works immediately without requiring C compilation
414
+
415
+ Fixes #142
416
+
417
+ ## 3.3.3
418
+
419
+ ### Patch Changes
420
+
421
+ - Critical fixes for tmux TTY corruption and spinner hanging issues
422
+
423
+ **Fixed:**
424
+ - 🚨 Resolved severe TTY corruption when using tmux auto-attach options (`--tmux`, `--tmux-h`, `--tmux-v`)
425
+ - 🐛 Fixed spinner hanging indefinitely when specifying non-existent issue/PR numbers
426
+ - 🔧 Improved tmux session environment handling with proper PATH configuration
427
+ - 🛡️ Added maestro-exec helper for proper process replacement in tmux attach
428
+
429
+ **Impact:**
430
+ These fixes resolve critical issues that made tmux integration features unusable and could leave terminals in a corrupted state requiring restart.
431
+
432
+ ## 3.3.2
433
+
434
+ ### Patch Changes
435
+
436
+ - fix: tmux session attachment issues
437
+ - Fixed tmux auto-attach breaking terminal input handling by using spawn instead of execa for proper TTY handling (#130)
438
+ - Fixed custom PS1 not being applied in tmux sessions by using login shell (#128)
439
+ - Added dedicated `attachToTmuxSession` and `switchTmuxClient` functions to handle TTY correctly
440
+ - Resolved issue where Ctrl+C would terminate the mst process instead of being handled by tmux
441
+ - Ensured tmux key bindings work properly after auto-attach
442
+
443
+ ## 3.3.1
444
+
445
+ ### Patch Changes
446
+
447
+ - Fix worktree self-deletion causing ENOENT error
448
+
449
+ Resolves issue where attempting to delete a worktree from within the worktree directory itself would cause a `spawn git ENOENT` error and leave the system in an inconsistent state (directory deleted but branch remaining).
450
+
451
+ **Changes:**
452
+ - Added validation to prevent worktree self-deletion attempts
453
+ - Enhanced error messages with clear guidance for correct usage
454
+ - Added comprehensive test coverage for directory validation scenarios
455
+
456
+ **Fixed behavior:**
457
+ - Users are now warned when trying to delete a worktree from within itself
458
+ - Proper error message guides users to run the command from outside the worktree
459
+ - Prevents system inconsistency and manual cleanup requirements
460
+
461
+ Fixes #126
462
+
463
+ ## 3.3.0
464
+
465
+ ### Minor Changes
466
+
467
+ - Add automatic tmux session cleanup when deleting worktrees
468
+
469
+ ### New Features
470
+ - **Automatic tmux session cleanup**
471
+ - `mst delete` now automatically removes associated tmux sessions
472
+ - Prevents accumulation of orphaned tmux sessions
473
+ - Improves system resource management
474
+
475
+ ### Options
476
+ - **--keep-session flag**
477
+ - Use `mst delete <branch> --keep-session` to preserve tmux session
478
+ - Maintains backward compatibility for users who want to keep sessions
479
+
480
+ ### Benefits
481
+ - Eliminates manual tmux session cleanup
482
+ - Prevents "duplicate session" errors on recreation
483
+ - Reduces memory usage from orphaned sessions
484
+ - Provides consistent worktree lifecycle management
485
+
486
+ Resolves: #122
487
+
488
+ ## 3.2.1
489
+
490
+ ### Patch Changes
491
+
492
+ - Improve README documentation with update commands and enhanced content
493
+
494
+ ### Documentation Improvements
495
+ - **Add comprehensive "Updating" section**
496
+ - Homebrew: `brew upgrade camoneart/tap/maestro`
497
+ - npm: `npm update -g @camoneart/maestro`
498
+ - pnpm: `pnpm update -g @camoneart/maestro`
499
+ - **Add "Requirements" section with detailed dependency table**
500
+ - Node.js >=20.0.0, Git >=2.22 requirements
501
+ - Optional tools: tmux, fzf, GitHub CLI with install commands
502
+ - **Add status badges**
503
+ - CI workflow badge
504
+ - Coverage status badge (≥80%)
505
+ - **Enhance visual presentation**
506
+ - Demo animation placeholder
507
+ - Updated table of contents
508
+ - Consistent formatting across README.md and README.ja.md
509
+
510
+ ### Why This Matters
511
+ - Users can now easily find update commands for their installation method
512
+ - Professional documentation follows CLI tool best practices
513
+ - Reduces support questions about "how to update"
514
+ - Improves first-time user experience with clear requirements
515
+
516
+ ## 3.2.0
517
+
518
+ ### Minor Changes
519
+
520
+ - Enhance tmux integration and improve documentation
521
+
522
+ ### New Features
523
+ - **Auto-attach to tmux session when using --tmux-h/--tmux-v from terminal**
524
+ - Now `--tmux-h` and `--tmux-v` options work consistently with `--tmux`
525
+ - When run from terminal, automatically creates and attaches to tmux session
526
+ - Maintains existing behavior when run inside tmux (pane splitting with auto-focus)
527
+ - Resolves UX inconsistency where users had to manually start tmux sessions
528
+
529
+ ### Documentation Improvements
530
+ - **Add comprehensive documentation for claude.markdownMode configuration**
531
+ - Added detailed explanation of `"shared"` vs `"split"` modes
532
+ - Updated README.md and README.ja.md with configuration table
533
+ - Enhanced docs/COMMANDS.md with practical examples
534
+ - Improved docs/commands/create.md with detailed usage scenarios
535
+
536
+ ### Technical Details
537
+ - Enhanced tmux session management logic to detect terminal vs tmux execution context
538
+ - Improved command consistency across all `--tmux*` options
539
+ - Better error handling for tmux session creation and attachment
540
+
541
+ ## 3.1.0
542
+
543
+ ### Minor Changes
544
+
545
+ - Add tmux auto-focus and refactor --claude option to --claude-md
546
+
547
+ ### New Features
548
+ - **Auto-focus to new pane when using --tmux-h/--tmux-v options**
549
+ - New tmux panes now automatically receive focus after creation
550
+ - Eliminates manual pane switching for immediate development workflow
551
+ - Uses `tmux select-pane -l` to focus the last created pane
552
+ - Fixes #105
553
+ - **Simplified --claude option to --claude-md**
554
+ - Renamed `--claude` to `--claude-md` for clearer purpose indication
555
+ - Focuses specifically on CLAUDE.md file management
556
+ - Removed non-functional autoStart and initialCommands features
557
+ - Simplified configuration and reduced complexity
558
+ - Fixes #112
559
+
560
+ ### Improvements
561
+ - Streamlined tmux workflow with seamless pane focus management
562
+ - Better semantic naming for Claude Code integration options
563
+ - Reduced configuration complexity for better maintainability
564
+
565
+ ## 3.0.1
566
+
567
+ ### Patch Changes
568
+
569
+ - Fix EEXIST error when using --claude option with existing CLAUDE.md
570
+
571
+ Resolves issue where `mst create <branch> --claude` would fail with EEXIST error when CLAUDE.md already exists in the worktree. Git worktree creation automatically copies all files from the root directory, including CLAUDE.md, but the --claude option was attempting to create a symlink without removing the existing file first.
572
+
573
+ Changes:
574
+ - Delete existing CLAUDE.md in worktree before creating symlink in shared mode
575
+ - Add graceful error handling for cases where the file doesn't exist
576
+ - Include comprehensive test coverage for the fix
577
+
578
+ Fixes #106
579
+
580
+ ## 3.0.0
581
+
582
+ ### Major Changes
583
+
584
+ - [#108](https://github.com/camoneart/maestro/pull/108) [`3684416`](https://github.com/camoneart/maestro/commit/368441684d5dbdb4e4630eec9d6d827738dc8e50) Thanks [@camoneart](https://github.com/camoneart)! - Remove non-functional `mst claude` command
585
+
586
+ The `mst claude` command has been removed due to fundamental design issues:
587
+ - Claude Code is an interactive CLI tool that cannot run as a background process
588
+ - The "start/stop" concept is not applicable to Claude Code
589
+ - Commands appeared to work but were actually non-functional
590
+
591
+ **Breaking Change**: The `mst claude` command and its subcommands (`start`, `stop`, `list`) are no longer available.
592
+
593
+ **Migration**: Use the `claude` command directly in your worktrees. The `--claude-md` option for `mst create` remains available for CLAUDE.md generation.
594
+
595
+ ## 2.7.4
596
+
597
+ ### Patch Changes
598
+
599
+ - Fix critical bug in delete command
600
+ - #98 365842c Thanks @camoneart! - Ensure local branch is deleted when removing worktree
601
+
602
+ ## 2.7.3
603
+
604
+ ### Patch Changes
605
+
606
+ - Fix bugs and improve user experience
607
+ - #91 932a35a Thanks @camoneart! - Add confirmation prompt after fzf selection for better UX
608
+ - #92 077a70e Thanks @camoneart! - Update README files to reflect v2.7.0+ changes (removed commands, new features)
609
+ - 02571d7 Thanks @camoneart! - Improve spinner text from '初期化中...' to '準備中...' for better UX
610
+
611
+ ## 2.7.2
612
+
613
+ ### Patch Changes
614
+
615
+ - Fix repository maintenance issues and update dependencies
616
+ - Remove gitignored \_docs directory from repository (#88)
617
+ - Remove caret from @types/node version for consistency (#87)
618
+ - Update dependencies to latest versions (Issue #84) (#85)
619
+
620
+ ## 2.7.1
621
+
622
+ ### Patch Changes
623
+
624
+ - Fix multiple critical bugs affecting core functionality
625
+ - Fix exec command -a flag not working across all worktrees (Issue #72)
626
+ - Fix sync command failing with worktree filters (Issue #73)
627
+ - Fix github list command undefined property errors (Issue #74)
628
+ - Fix graph command stack overflow from circular dependencies (Issue #75)
629
+ - Fix mcp serve module resolution errors (Issue #76)
630
+
631
+ ## 2.7.0
632
+
633
+ ### Minor Changes
634
+
635
+ - ### 💥 Breaking Changes
636
+ - Worktrees are now created outside the `.git` directory by default (Issue #67)
637
+ - Old: `.git/orchestrations/feature/branch-name`
638
+ - New: `../branch-name` (sibling to main repository)
639
+ - Removed hardcoded `maestro-` prefix for worktree directories (Issue #69)
640
+ - Now configurable via `directoryPrefix` setting (default: empty string)
641
+
642
+ ### 🚀 New Features
643
+ - Add `mst push --draft-pr` option to create draft pull requests
644
+ - Add configurable `directoryPrefix` for worktree directory names
645
+
646
+ ### 🐛 Bug Fixes
647
+ - Fix gitignore auto-addition bug (Issue #62, #64)
648
+ - Add `.maestro-metadata.json` to repository .gitignore (Issue #66)
649
+ - Remove default branch prefix to allow flexible branch naming
650
+ - Remove legacy path config from .maestro.json
651
+
652
+ ### 📝 Notes
653
+ - Existing worktrees inside `.git/` will need to be manually recreated
654
+ - Update your `.maestro.json` if you have custom `path` settings
655
+ - This release follows Git's standard worktree conventions
656
+
657
+ ## 2.6.3
658
+
659
+ ### Patch Changes
660
+
661
+ - fix: improve create command package manager detection and gitignore handling
662
+ - Automatically detect project package manager (pnpm/npm/yarn) instead of hardcoding npm
663
+ - Auto-add .maestro-metadata.json to .gitignore in worktrees
664
+ - Add comprehensive documentation for 13 missing commands
665
+ - Improve CI Prettier configuration and Claude Code settings
666
+
667
+ ## 2.6.2
668
+
669
+ ### Patch Changes
670
+
671
+ - fix: improve error messages when copying optional files like .env
672
+
673
+ ## 2.6.1
674
+
675
+ ### Patch Changes
676
+
677
+ - fix: サブworktreeからのworktree作成時のパス解決エラーを修正
678
+ - createWorktreeとattachWorktreeメソッドで相対パスの代わりに絶対パスを使用
679
+ - getRepositoryRoot()を使用してリポジトリルートからの絶対パスを生成
680
+ - これによりどのworktreeから実行してもworktree作成が可能に
681
+
682
+ Fixes: サブworktree内で'mst create'実行時の'Not a directory'エラー
683
+
684
+ ## 2.6.0
685
+
686
+ ### Minor Changes
687
+
688
+ - feat: implement `mst init` command for project setup
689
+ - Add interactive project setup command with smart detection
690
+ - Auto-detect project types (React, Next.js, Vue.js, Python, Go)
691
+ - Auto-detect package managers (pnpm, npm, yarn) from lockfiles
692
+ - Support multiple execution modes (--minimal, --yes, --package-manager)
693
+ - Generate appropriate configuration based on project type
694
+ - Include comprehensive test coverage and documentation
695
+
696
+ ## 2.5.0
697
+
698
+ ### Minor Changes
699
+
700
+ - feat: add advanced worktree management features
701
+ - Add `claude` command for managing multiple Claude Code instances
702
+ - `mst claude list` - List running Claude Code instances
703
+ - `mst claude start [branch]` - Start Claude Code for a worktree
704
+ - `mst claude stop [branch]` - Stop Claude Code for a worktree
705
+ - Supports `--all` option to manage all instances at once
706
+ - Enhance `--copy-file` option to handle gitignored files
707
+ - Automatically detects and copies gitignored files (like .env)
708
+ - Shows which files are gitignored in the output
709
+ - Add automatic setup commands execution from config
710
+ - New `postCreate` config section in `.maestro.json`
711
+ - `postCreate.copyFiles` - Files to copy automatically
712
+ - `postCreate.commands` - Commands to run after creation
713
+ - Enables workflow automation like dependency installation
714
+
715
+ ## 2.4.0
716
+
717
+ ### Minor Changes
718
+
719
+ - feat: implement new command options for improved workflow
720
+ - Add --fzf option to exec and shell commands for interactive selection
721
+ - Add tmux integration options (--tmux, --tmux-v, --tmux-h) to exec, shell, and github commands
722
+ - Add --names option to list command for scripting-friendly output
723
+ - Create shared utilities for tmux and fzf operations
724
+
725
+ ## 2.3.0
726
+
727
+ ### Minor Changes
728
+
729
+ - [#36](https://github.com/camoneart/maestro/pull/36) [`2f43ca5`](https://github.com/camoneart/maestro/commit/2f43ca554aeee7d112779e77e2f814ab92e67006) Thanks [@camoneart](https://github.com/camoneart)! - Add new options to create command and implement attach command
730
+ - Add `--shell` option to create command: enter shell after creating worktree
731
+ - Add `--exec <command>` option to create command: execute command after creating worktree
732
+ - Add `--copy-file <file>` option to create command: copy files from current worktree
733
+ - Implement new `attach` command: create worktree for existing branches
734
+ - Add `--shell` and `--exec` options to attach command
735
+ - Set MAESTRO environment variables when entering shell sessions
736
+
737
+ ## 2.2.1
738
+
739
+ ### Patch Changes
740
+
741
+ - [`4280a19`](https://github.com/camoneart/maestro/commit/4280a19) Thanks [@camoneart](https://github.com/camoneart)! - fix: resolve worktree branch name matching in delete command
742
+
743
+ Fixed an issue where the `mst delete` command would fail with "ワークツリー 'refs/heads/branch-name' が見つかりません" error. The issue occurred because the delete command was passing branch names with the `refs/heads/` prefix to the GitWorktreeManager, which expects clean branch names.
744
+
745
+ ## 2.2.0
746
+
747
+ ### Minor Changes
748
+
749
+ - [`7a3c70d`](https://github.com/camoneart/maestro/commit/7a3c70d6f76aaa5c9ef103b2973622ff7235a89e) Thanks [@camoneart](https://github.com/camoneart)! - feat: Add tmux pane split functionality
750
+ - Add `--tmux-h` option for horizontal pane split (side by side)
751
+ - Add `--tmux-v` option for vertical pane split (top and bottom)
752
+ - Automatically execute Claude commands in new panes when `--claude` is used
753
+ - Set up tmux status line to show current Git branch
754
+ - Display branch names as pane titles
755
+
756
+ This feature brings a Phantom-like development experience to Maestro, allowing developers to maintain their current context while creating new worktrees in split panes within the same tmux window.
757
+
758
+ ## 2.1.1
759
+
760
+ ### Patch Changes
761
+
762
+ - [`ed0a0ff`](https://github.com/camoneart/maestro/commit/ed0a0ff2fc1b97f3e2a8f8a7f0a62a1d5937ecff) Thanks [@camoneart](https://github.com/camoneart)! - feat(list): Add relative path display for better readability
763
+ - Display worktree paths relative to repository root by default
764
+ - Add `--full-path` option to show absolute paths when needed
765
+ - Current directory shows as `.` for clarity
766
+ - Significantly improves output readability of `mst list` command
767
+
768
+ ## 2.1.0
769
+
770
+ ### Minor Changes
771
+
772
+ - Add wildcard support to delete command
773
+ - Enable pattern matching with `*` in branch names (e.g., `mst delete "feature/demo-*"`)
774
+ - Support bulk deletion of multiple worktrees matching a pattern
775
+ - Update help text to indicate wildcard support
776
+ - Useful for cleaning up multiple demo or temporary branches at once
777
+
778
+ ## 2.0.2
779
+
780
+ ### Patch Changes
781
+
782
+ - Fix command execution by adding shebang to cli.ts
783
+
784
+ ## 2.0.1
785
+
786
+ ### Patch Changes
787
+
788
+ - Fix Homebrew installation by including shell completion files in npm package
789
+
790
+ ## 2.0.0
791
+
792
+ ### Major Changes
793
+
794
+ - # 🎼 Maestro 2.0.0 - Complete Rebrand from Shadow Clone Jutsu
795
+
796
+ This is a **major release** that completely rebrands the project from "shadow-clone-jutsu" to "Maestro" with a conductor/orchestra theme.
797
+
798
+ ## 🚨 Breaking Changes
799
+
800
+ ### Package & Command Changes
801
+ - **Package name**: `shadow-clone-jutsu` → `@camoneart/maestro`
802
+ - **Command**: `scj` → `maestro` (or `mst` for short)
803
+ - **Configuration file**: `.scj.json` → `.maestro.json`
804
+ - **Default directory**: `.git/shadow-clones` → `.git/orchestrations`
805
+
806
+ ### Environment Variables
807
+ - `SHADOW_CLONE` → `MAESTRO_BRANCH`
808
+ - `SHADOW_CLONE_PATH` → `MAESTRO_PATH`
809
+
810
+ ### Terminology Changes
811
+ - 影分身 (Shadow Clone) → 演奏者 (Orchestra Member)
812
+ - 忍者 (Ninja) → 指揮者 (Conductor)
813
+ - 🥷 → 🎼
814
+
815
+ ## 📦 Migration Guide
816
+ 1. **Uninstall old package**:
817
+ ```bash
818
+ npm uninstall -g shadow-clone-jutsu
819
+ ```
820
+ 2. **Install new package**:
821
+ ```bash
822
+ npm install -g @camoneart/maestro
823
+ ```
824
+ 3. **Update configuration**:
825
+ - Rename `.scj.json` to `.maestro.json`
826
+ - Update any scripts using `scj` command to use `maestro` or `mst`
827
+ 4. **Update environment variables**:
828
+ - Replace `SHADOW_CLONE` with `MAESTRO_BRANCH`
829
+ - Replace `SHADOW_CLONE_PATH` with `MAESTRO_PATH`
830
+
831
+ ## ✨ What's New
832
+ - Complete theme migration to conductor/orchestra metaphor
833
+ - Improved command messages and user experience
834
+ - Consistent branding throughout the codebase
835
+ - Better alignment with Git worktree mental model
836
+
837
+ ## 🙏 Thank You
838
+
839
+ Thank you for using Maestro (formerly Shadow Clone Jutsu)! We believe this rebrand better represents the tool's purpose: orchestrating Git worktrees like a conductor leads an orchestra.
840
+
841
+ ***
842
+
843
+ For more details, see the [migration guide](https://github.com/camoneart/maestro/wiki/migration-guide).
844
+
845
+ All notable changes to this project will be documented in this file.
846
+
847
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
848
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
849
+
850
+ ## [Unreleased]
851
+
852
+ ### Changed
853
+
854
+ - **BREAKING**: Rebranded from "shadow-clone-jutsu" to "Maestro" with conductor/orchestra theme
855
+ - **BREAKING**: Changed package name from `shadow-clone-jutsu` to `@camoneart/maestro`
856
+ - **BREAKING**: Changed CLI command from `scj` to `maestro` (alias: `mst`), keeping `scj` for backward compatibility
857
+ - **BREAKING**: Changed configuration file from `.scj.json` to `.maestro.json` (with fallback support)
858
+ - **BREAKING**: Changed default worktree directory from `.git/shadow-clones` to `.git/orchestrations`
859
+ - Changed all ninja-themed terminology to conductor/orchestra theme:
860
+ - 影分身 → 演奏者/オーケストラメンバー
861
+ - 忍者 → 指揮者
862
+ - 🥷 → 🎼
863
+ - Internal: Improved test coverage from 78.21% to 81.23%
864
+ - Internal: Refactored create.ts command to reduce complexity from 89 to smaller, maintainable functions
865
+ - Internal: Added comprehensive error path tests for github.ts and issue.ts commands
866
+ - Internal: Fixed MCP server process.exit issue in test environment
867
+
868
+ ## 1.0.1
869
+
870
+ ### Patch Changes
871
+
872
+ - [`4fcf9d1`](https://github.com/camoneart/maestro/commit/4fcf9d1740864bc7d860cf32650cafde36f742e3) Thanks [@camoneart](https://github.com/camoneart)! - Test automatic versioning and release workflow setup
873
+
874
+ ## [1.0.0] - 2025-07-15
875
+
876
+ ### Added
877
+
878
+ - 🥷 影分身の術(Git worktree)CLIツール初回リリース
879
+ - Claude Code統合(MCP)によるAI開発支援
880
+ - GitHub統合(PR/Issue連携)
881
+ - tmux/fzf統合による効率的ワークフロー
882
+ - インタラクティブUI(chalk, inquirer, ora)
883
+ - ダッシュボードによる可視化
884
+ - スナップショット機能
885
+ - ファイル監視・自動同期
886
+ - 健全性チェック機能
887
+ - 包括的なテストスイート
888
+
889
+ ### Fixed
890
+
891
+ - TypeScript型エラーを修正
892
+ - CLI バージョン出力の問題を修正
893
+ - README.md構造とユーザビリティを改善
894
+
895
+ ## [0.1.0] - 2025-07-13
896
+
897
+ ### Added
898
+
899
+ - Initial release of shadow-clone-jutsu
900
+ - Core features:
901
+ - Git worktree management with intuitive ninja-themed interface
902
+ - Claude Code integration via MCP (Model Context Protocol)
903
+ - GitHub Issues/PR integration for automatic branch creation
904
+ - tmux/fzf integration for efficient workflow
905
+ - Interactive UI with beautiful CLI experience
906
+ - Commands implemented:
907
+ - `create`: Create new worktree with various options
908
+ - `list`: List all worktrees with metadata
909
+ - `delete`: Remove worktree safely
910
+ - `where`: Show worktree path
911
+ - `shell`: Enter worktree shell
912
+ - `exec`: Execute commands in worktree
913
+ - `sync`: Sync code/files between worktrees
914
+ - `watch`: Auto-sync file changes
915
+ - `attach`: Create worktree from existing branch
916
+ - `github`: Create worktree from GitHub PR/Issue
917
+ - `tmux`: Open worktree in tmux session
918
+ - `batch`: Create multiple worktrees at once
919
+ - `graph`: Visualize worktree dependency graph
920
+ - `template`: Manage worktree templates
921
+ - `history`: Manage Claude Code conversation history
922
+ - `suggest`: Get AI suggestions for branch names and commits
923
+ - `snapshot`: Save/restore worktree state
924
+ - `health`: Check worktree health status
925
+ - `dashboard`: Web UI for worktree management
926
+ - `config`: Manage configuration
927
+ - `mcp`: MCP server integration
928
+ - Developer experience:
929
+ - ESLint and Prettier configuration
930
+ - TypeScript support
931
+ - Vitest for testing
932
+ - E2E tests with actual Git operations
933
+ - CI/CD with GitHub Actions
934
+ - Code coverage with codecov
935
+ - Cross-platform support (macOS, Linux, Windows)
936
+ - Installation via npm, Homebrew, and Scoop
937
+
938
+ ### Security
939
+
940
+ - Added security policy (SECURITY.md)
941
+ - No hardcoded secrets or sensitive information in codebase
942
+ - All dependencies with compatible open source licenses
943
+
944
+ ### Documentation
945
+
946
+ - Comprehensive README with installation instructions and usage examples
947
+ - MIT License file
948
+ - Third-party licenses documentation
949
+ - Security vulnerability reporting guidelines