mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-30 21:16:31 +00:00
fix(cli): respect subcommand version options (#87398)
* fix(cli): respect subcommand version options * test: stabilize model directive auth status
This commit is contained in:
@@ -117,6 +117,10 @@ vi.mock("../../agents/model-auth.js", () => {
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("../../agents/provider-auth-aliases.js", () => ({
|
||||
resolveProviderIdForAuth: (provider: string) => provider,
|
||||
}));
|
||||
|
||||
import { resolveAgentDir, resolveSessionAgentId } from "../../agents/agent-scope.js";
|
||||
import {
|
||||
clearRuntimeAuthProfileStoreSnapshots,
|
||||
@@ -657,7 +661,7 @@ describe("/model chat UX", () => {
|
||||
expect(reply?.text).not.toContain("[openai] endpoint: default auth: missing");
|
||||
expect(reply?.text).toContain("via codex runtime / openai-codex");
|
||||
expect(reply?.text).toContain("openai-codex:patrick@example.test=OAuth");
|
||||
});
|
||||
}, 240_000);
|
||||
|
||||
it("keeps direct provider auth labels when OpenAI API key auth exists", async () => {
|
||||
setAuthProfiles({
|
||||
|
||||
@@ -165,4 +165,22 @@ describe("configureProgramHelp", () => {
|
||||
resolveCommitHashMock.mockReturnValue(null);
|
||||
expectVersionExit({ expectedVersion: "OpenClaw 9.9.9-test" });
|
||||
});
|
||||
|
||||
it("does not treat subcommand --version options as root version requests", () => {
|
||||
process.argv = ["node", "openclaw", "skills", "verify", "discrawl", "--version", "1.0.0"];
|
||||
const logSpy = vi.spyOn(console, "log").mockImplementation(() => {});
|
||||
const exitSpy = vi.spyOn(process, "exit").mockImplementation(((code?: number) => {
|
||||
throw new Error(`exit:${code ?? ""}`);
|
||||
}) as typeof process.exit);
|
||||
|
||||
try {
|
||||
const program = makeProgramWithCommands();
|
||||
expect(() => configureProgramHelp(program, testProgramContext)).not.toThrow();
|
||||
expect(logSpy).not.toHaveBeenCalled();
|
||||
expect(exitSpy).not.toHaveBeenCalled();
|
||||
} finally {
|
||||
logSpy.mockRestore();
|
||||
exitSpy.mockRestore();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@ import { resolveCommitHash } from "../../infra/git-commit.js";
|
||||
import { formatDocsLink } from "../../terminal/links.js";
|
||||
import { isRich, theme } from "../../terminal/theme.js";
|
||||
import { escapeRegExp } from "../../utils.js";
|
||||
import { hasFlag, hasRootVersionAlias } from "../argv.js";
|
||||
import { isRootVersionInvocation } from "../argv.js";
|
||||
import { formatCliBannerLine, hasEmittedCliBanner } from "../banner.js";
|
||||
import { replaceCliName, resolveCliName } from "../cli-name.js";
|
||||
import { CLI_LOG_LEVEL_VALUES, parseCliLogLevelOption } from "../log-level-option.js";
|
||||
@@ -117,11 +117,7 @@ export function configureProgramHelp(
|
||||
outputError: (str, write) => write(formatCliParseErrorOutput(str, { argv: process.argv })),
|
||||
});
|
||||
|
||||
if (
|
||||
hasFlag(process.argv, "-V") ||
|
||||
hasFlag(process.argv, "--version") ||
|
||||
hasRootVersionAlias(process.argv)
|
||||
) {
|
||||
if (isRootVersionInvocation(process.argv)) {
|
||||
const commit = resolveCommitHash({ moduleUrl: import.meta.url });
|
||||
console.log(
|
||||
commit ? `OpenClaw ${ctx.programVersion} (${commit})` : `OpenClaw ${ctx.programVersion}`,
|
||||
|
||||
Reference in New Issue
Block a user