claude-issue-solver 1.41.0 → 1.42.1

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.
@@ -1,2 +1,6 @@
1
1
  import { SolveOptions } from './solve';
2
- export declare function selectCommand(options?: SolveOptions): Promise<void>;
2
+ export interface SelectOptions extends SolveOptions {
3
+ limit?: number;
4
+ all?: boolean;
5
+ }
6
+ export declare function selectCommand(options?: SelectOptions): Promise<void>;
@@ -12,11 +12,18 @@ const solve_1 = require("./solve");
12
12
  async function selectCommand(options = {}) {
13
13
  const projectName = (0, git_1.getProjectName)();
14
14
  console.log(chalk_1.default.bold(`\nOpen issues for ${projectName}:\n`));
15
- const issues = (0, github_1.listIssues)();
15
+ const limit = options.all ? 0 : (options.limit ?? 50);
16
+ const issues = (0, github_1.listIssues)(limit);
16
17
  if (issues.length === 0) {
17
18
  console.log(chalk_1.default.yellow('No open issues found.'));
18
19
  return;
19
20
  }
21
+ // Show hint if we hit the default limit and user didn't explicitly set options
22
+ const defaultLimit = 50;
23
+ const hitLimit = !options.all && !options.limit && issues.length === defaultLimit;
24
+ if (hitLimit) {
25
+ console.log(chalk_1.default.dim(` Showing first ${defaultLimit} issues. Use --limit <n> or --all to see more.\n`));
26
+ }
20
27
  const issuesWithPRs = (0, github_1.getIssuesWithOpenPRs)();
21
28
  const choices = issues.map((issue) => {
22
29
  const hasPR = issuesWithPRs.has(issue.number);
package/dist/index.js CHANGED
@@ -53,6 +53,8 @@ program.hook('preAction', (thisCommand) => {
53
53
  program
54
54
  .argument('[issue]', 'Issue number to solve')
55
55
  .option('-c, --auto-close', 'Close terminal and clean up worktree after PR is created')
56
+ .option('-n, --limit <number>', 'Maximum number of issues to show', (val) => parseInt(val, 10))
57
+ .option('--all', 'Show all issues (no limit)')
56
58
  .action(async (issue, options) => {
57
59
  if (issue) {
58
60
  const issueNumber = parseInt(issue, 10);
@@ -75,19 +75,27 @@ function openInNewTerminal(script) {
75
75
  const platform = os.platform();
76
76
  if (platform === 'darwin') {
77
77
  // macOS - try iTerm2 first, then Terminal
78
+ // Use /bin/bash explicitly to bypass interactive shell issues (e.g., oh-my-zsh update prompts)
79
+ // Send 'n' first to dismiss any oh-my-zsh update prompt, then run the script
80
+ const escapedScript = script.replace(/"/g, '\\"');
81
+ const bashCommand = `/bin/bash "${escapedScript}"`;
82
+ // For iTerm: send 'n' to dismiss any prompt, wait briefly, then run the command
78
83
  const iTermScript = `
79
84
  tell application "iTerm"
80
85
  activate
81
86
  set newWindow to (create window with default profile)
82
87
  tell current session of newWindow
83
- write text "${script.replace(/"/g, '\\"')}"
88
+ write text "n"
89
+ delay 0.3
90
+ write text "${bashCommand.replace(/"/g, '\\"')}"
84
91
  end tell
85
92
  end tell
86
93
  `;
94
+ // For Terminal: combine dismissing prompt and running command
87
95
  const terminalScript = `
88
96
  tell application "Terminal"
89
97
  activate
90
- do script "${script.replace(/"/g, '\\"')}"
98
+ do script "n; ${bashCommand.replace(/"/g, '\\"')}"
91
99
  end tell
92
100
  `;
93
101
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-issue-solver",
3
- "version": "1.41.0",
3
+ "version": "1.42.1",
4
4
  "description": "Automatically solve GitHub issues using Claude Code",
5
5
  "main": "dist/index.js",
6
6
  "bin": {