fix(cli): exit 0 when invoking parent commands without a subcommand (#73077)

Several `openclaw <parent>` commands (channels, plugins, approvals, devices,
cron, mcp) were exiting with code 1 when invoked bare, while printing the
same help-style content that `<parent> --help` produces (which exits 0).
This broke `&&` chains and surfaced a misleading
`ELIFECYCLE Command failed with exit code 1.` line under pnpm.

Add a small `applyParentDefaultHelpAction(cmd)` helper in
`src/cli/program/parent-default-help.ts` that attaches a default action
which prints the parent's own help and sets `process.exitCode = 0`. The
helper is a no-op when the parent already has its own action (e.g.
`agents` defaulting to `agents list`), so existing intentional defaults
are preserved.

Apply it to the six core parents listed in #73077.
This commit is contained in:
hclsys
2026-04-28 08:38:42 +08:00
committed by Peter Steinberger
parent 482c74b724
commit ba80695bba
10 changed files with 90 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ import { getTerminalTableWidth, renderTable } from "../terminal/table.js";
import { theme } from "../terminal/theme.js";
import { shortenHomeInString, shortenHomePath } from "../utils.js";
import { formatPluginLine } from "./plugins-list-format.js";
import { applyParentDefaultHelpAction } from "./program/parent-default-help.js";
export type PluginsListOptions = {
json?: boolean;
@@ -925,4 +926,6 @@ export function registerPluginsCli(program: Command) {
defaultRuntime.log(`${theme.command(plugin.name)}${suffix}${desc}`);
}
});
applyParentDefaultHelpAction(plugins);
}