fix(plugins): retry claude plugin install|update without -y on an old CLI
An older Claude Code has no -y on `plugin install|update` and exits with "error: unknown option '-y'", so the dashboard's Update now chain failed at its plugin_update step (and so did Update all, the plugin buttons and the superpowers auto-install). Those versions also predate the confirmation prompt -y answers, so every wrapper now retries the same argv without it when, and only when, the CLI rejects the flag. /agenthub-update, which the failure message points users to, falls back the same way.
This commit is contained in:
@@ -83,6 +83,21 @@ function resolveClaude() {
|
||||
}
|
||||
|
||||
function run(cmd, args, timeout) {
|
||||
try {
|
||||
return runOnce(cmd, args, timeout);
|
||||
} catch (err) {
|
||||
// An older Claude Code rejects `-y` ("unknown option") and never prompts,
|
||||
// so the same command without the flag is the right retry.
|
||||
if (!args.includes("-y") || !/unknown option '-y'/.test(String(err.stderr || ""))) throw err;
|
||||
return runOnce(
|
||||
cmd,
|
||||
args.filter((a) => a !== "-y"),
|
||||
timeout
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function runOnce(cmd, args, timeout) {
|
||||
log(`$ ${cmd} ${args.join(" ")}`);
|
||||
const out = execFileSync(cmd, args, {
|
||||
encoding: "utf8",
|
||||
|
||||
@@ -102,6 +102,21 @@ function findNewRoot(exclude) {
|
||||
}
|
||||
|
||||
function run(cmd, args, timeout) {
|
||||
try {
|
||||
return runOnce(cmd, args, timeout);
|
||||
} catch (err) {
|
||||
// An older Claude Code rejects `-y` ("unknown option") and never prompts,
|
||||
// so the same command without the flag is the right retry.
|
||||
if (!args.includes("-y") || !/unknown option '-y'/.test(String(err.stderr || ""))) throw err;
|
||||
return runOnce(
|
||||
cmd,
|
||||
args.filter((a) => a !== "-y"),
|
||||
timeout
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function runOnce(cmd, args, timeout) {
|
||||
log(`$ ${cmd} ${args.join(" ")}`);
|
||||
const out = execFileSync(cmd, args, {
|
||||
encoding: "utf8",
|
||||
|
||||
Reference in New Issue
Block a user