fix(cli): fast-path bare channels help (#77659)

* fix(cli): fast-path bare channels help

* fix(cli): normalize channels add argv gating

* fix(cli): restore channel add completion flags
This commit is contained in:
Vincent Koc
2026-05-05 16:02:39 -07:00
committed by GitHub
parent 1e1903487f
commit fdddb413ef
16 changed files with 319 additions and 48 deletions

View File

@@ -56,16 +56,24 @@ const testProgramContext: ProgramContext = {
describe("configureProgramHelp", () => {
let originalArgv: string[];
let originalSuppressHelpBanner: string | undefined;
beforeEach(() => {
vi.clearAllMocks();
originalArgv = [...process.argv];
originalSuppressHelpBanner = process.env.OPENCLAW_SUPPRESS_HELP_BANNER;
hasEmittedCliBannerMock.mockReturnValue(false);
resolveCommitHashMock.mockReturnValue("abc1234");
delete process.env.OPENCLAW_SUPPRESS_HELP_BANNER;
});
afterEach(() => {
process.argv = originalArgv;
if (originalSuppressHelpBanner === undefined) {
delete process.env.OPENCLAW_SUPPRESS_HELP_BANNER;
} else {
process.env.OPENCLAW_SUPPRESS_HELP_BANNER = originalSuppressHelpBanner;
}
});
function makeProgramWithCommands() {
@@ -131,6 +139,17 @@ describe("configureProgramHelp", () => {
expect(help).toContain("https://docs.openclaw.ai/cli");
});
it("suppresses banner formatting when parent default help requests it", () => {
process.argv = ["node", "openclaw", "channels"];
process.env.OPENCLAW_SUPPRESS_HELP_BANNER = "1";
const program = makeProgramWithCommands();
configureProgramHelp(program, testProgramContext);
const help = captureHelpOutput(program);
expect(help).not.toContain("BANNER-LINE");
expect(formatCliBannerLineMock).not.toHaveBeenCalled();
});
it("prints version and exits immediately when version flags are present", () => {
process.argv = ["node", "openclaw", "--version"];
expectVersionExit({ expectedVersion: "OpenClaw 9.9.9-test (abc1234)" });