claude-issue-solver 1.30.1 → 1.31.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.
@@ -59,12 +59,20 @@ function closeWindowsWithPath(folderPath, issueNumber, prNumber) {
59
59
  (0, child_process_1.execSync)(`osascript -e '
60
60
  tell application "iTerm"
61
61
  repeat with w in windows
62
+ try
63
+ set windowName to name of w
64
+ if windowName contains "${folderName}" or windowName contains "${issuePattern}" or windowName contains "${reviewPattern}" then
65
+ close w
66
+ end if
67
+ end try
62
68
  repeat with t in tabs of w
63
69
  repeat with s in sessions of t
64
- set sessionName to name of s
65
- if sessionName contains "${folderName}" or sessionName contains "${issuePattern}" or sessionName contains "${reviewPattern}" then
66
- close s
67
- end if
70
+ try
71
+ set sessionName to name of s
72
+ if sessionName contains "${folderName}" or sessionName contains "${issuePattern}" or sessionName contains "${reviewPattern}" then
73
+ close s
74
+ end if
75
+ end try
68
76
  end repeat
69
77
  end repeat
70
78
  end repeat
@@ -56,12 +56,20 @@ function closeWindowsWithPath(folderPath, issueNumber, prNumber) {
56
56
  (0, child_process_1.execSync)(`osascript -e '
57
57
  tell application "iTerm"
58
58
  repeat with w in windows
59
+ try
60
+ set windowName to name of w
61
+ if windowName contains "${folderName}" or windowName contains "${issuePattern}" or windowName contains "${reviewPattern}" then
62
+ close w
63
+ end if
64
+ end try
59
65
  repeat with t in tabs of w
60
66
  repeat with s in sessions of t
61
- set sessionName to name of s
62
- if sessionName contains "${folderName}" or sessionName contains "${issuePattern}" or sessionName contains "${reviewPattern}" then
63
- close s
64
- end if
67
+ try
68
+ set sessionName to name of s
69
+ if sessionName contains "${folderName}" or sessionName contains "${issuePattern}" or sessionName contains "${reviewPattern}" then
70
+ close s
71
+ end if
72
+ end try
65
73
  end repeat
66
74
  end repeat
67
75
  end repeat
@@ -288,7 +288,40 @@ echo ""
288
288
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
289
289
  echo "Review session ended."
290
290
  echo ""
291
- echo "View PR: gh pr view ${prNumber} --web"
291
+
292
+ # Check if PR was approved
293
+ REVIEW_STATUS=$(gh pr view ${prNumber} --json reviewDecision --jq '.reviewDecision' 2>/dev/null)
294
+
295
+ if [ "$REVIEW_STATUS" = "APPROVED" ]; then
296
+ echo "✅ PR #${prNumber} is approved!"
297
+ echo ""
298
+ read -p "Would you like to merge and clean up? [y/N] " -n 1 -r
299
+ echo ""
300
+ if [[ \\$REPLY =~ ^[Yy]$ ]]; then
301
+ echo ""
302
+ echo "📤 Merging PR #${prNumber}..."
303
+ if gh pr merge ${prNumber} --squash --delete-branch; then
304
+ echo ""
305
+ echo "✅ PR merged successfully!"
306
+ echo ""
307
+ echo "Cleaning up worktree..."
308
+ cd "${projectRoot}"
309
+ git worktree remove "${worktreePath}" --force 2>/dev/null || rm -rf "${worktreePath}"
310
+ git worktree prune 2>/dev/null
311
+ git branch -D "${branchName}" 2>/dev/null
312
+ echo "✅ Cleanup complete!"
313
+ else
314
+ echo ""
315
+ echo "⚠️ Merge failed. You can try manually: gh pr merge ${prNumber} --squash"
316
+ fi
317
+ else
318
+ echo ""
319
+ echo "View PR: gh pr view ${prNumber} --web"
320
+ echo "To merge later: cis merge"
321
+ fi
322
+ else
323
+ echo "View PR: gh pr view ${prNumber} --web"
324
+ fi
292
325
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
293
326
  echo ""
294
327
 
@@ -595,7 +628,40 @@ echo ""
595
628
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
596
629
  echo "Review session ended."
597
630
  echo ""
598
- echo "View PR: gh pr view ${pr.number} --web"
631
+
632
+ # Check if PR was approved
633
+ REVIEW_STATUS=$(gh pr view ${pr.number} --json reviewDecision --jq '.reviewDecision' 2>/dev/null)
634
+
635
+ if [ "$REVIEW_STATUS" = "APPROVED" ]; then
636
+ echo "✅ PR #${pr.number} is approved!"
637
+ echo ""
638
+ read -p "Would you like to merge and clean up? [y/N] " -n 1 -r
639
+ echo ""
640
+ if [[ \\$REPLY =~ ^[Yy]$ ]]; then
641
+ echo ""
642
+ echo "📤 Merging PR #${pr.number}..."
643
+ if gh pr merge ${pr.number} --squash --delete-branch; then
644
+ echo ""
645
+ echo "✅ PR merged successfully!"
646
+ echo ""
647
+ echo "Cleaning up worktree..."
648
+ cd "${projectRoot}"
649
+ git worktree remove "${worktreePath}" --force 2>/dev/null || rm -rf "${worktreePath}"
650
+ git worktree prune 2>/dev/null
651
+ git branch -D "${branchName}" 2>/dev/null
652
+ echo "✅ Cleanup complete!"
653
+ else
654
+ echo ""
655
+ echo "⚠️ Merge failed. You can try manually: gh pr merge ${pr.number} --squash"
656
+ fi
657
+ else
658
+ echo ""
659
+ echo "View PR: gh pr view ${pr.number} --web"
660
+ echo "To merge later: cis merge"
661
+ fi
662
+ else
663
+ echo "View PR: gh pr view ${pr.number} --web"
664
+ fi
599
665
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
600
666
  echo ""
601
667
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-issue-solver",
3
- "version": "1.30.1",
3
+ "version": "1.31.0",
4
4
  "description": "Automatically solve GitHub issues using Claude Code",
5
5
  "main": "dist/index.js",
6
6
  "bin": {