From 3161516dcac3c22eecdbcd06f269415b3bbdee29 Mon Sep 17 00:00:00 2001 From: Elaine YIN Date: Mon, 6 Apr 2026 16:37:24 -0700 Subject: [PATCH] fix(commands): use ?? instead of || for numeric flag defaults || treats 0 as falsy, silently replacing explicit zero values with defaults. --max-tokens 0 became 4096, --speed 0 vanished entirely. Affects 5 commands. Co-Authored-By: Claude Opus 4.6 --- src/commands/image/generate.ts | 2 +- src/commands/music/generate.ts | 4 ++-- src/commands/speech/synthesize.ts | 12 ++++++------ src/commands/text/chat.ts | 2 +- src/commands/video/generate.ts | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/commands/image/generate.ts b/src/commands/image/generate.ts index 6cd528f..1e8cdb2 100644 --- a/src/commands/image/generate.ts +++ b/src/commands/image/generate.ts @@ -50,7 +50,7 @@ export default defineCommand({ model: 'image-01', prompt, aspect_ratio: (flags.aspectRatio as string) || undefined, - n: (flags.n as number) || 1, + n: (flags.n as number) ?? 1, }; if (flags.subjectRef) { diff --git a/src/commands/music/generate.ts b/src/commands/music/generate.ts index dabe67d..b055915 100644 --- a/src/commands/music/generate.ts +++ b/src/commands/music/generate.ts @@ -123,8 +123,8 @@ export default defineCommand({ lyrics, audio_setting: { format: (flags.format as string) || 'mp3', - sample_rate: (flags.sampleRate as number) || 44100, - bitrate: (flags.bitrate as number) || 256000, + sample_rate: (flags.sampleRate as number) ?? 44100, + bitrate: (flags.bitrate as number) ?? 256000, }, output_format: outFormat, stream: flags.stream === true, diff --git a/src/commands/speech/synthesize.ts b/src/commands/speech/synthesize.ts index c788087..b12685a 100644 --- a/src/commands/speech/synthesize.ts +++ b/src/commands/speech/synthesize.ts @@ -65,15 +65,15 @@ export default defineCommand({ text, voice_setting: { voice_id: voice, - speed: (flags.speed as number) || undefined, - vol: (flags.volume as number) || undefined, - pitch: (flags.pitch as number) || undefined, + speed: (flags.speed as number) ?? undefined, + vol: (flags.volume as number) ?? undefined, + pitch: (flags.pitch as number) ?? undefined, }, audio_setting: { format: (flags.format as string) || 'mp3', - sample_rate: (flags.sampleRate as number) || 32000, - bitrate: (flags.bitrate as number) || 128000, - channel: (flags.channels as number) || 1, + sample_rate: (flags.sampleRate as number) ?? 32000, + bitrate: (flags.bitrate as number) ?? 128000, + channel: (flags.channels as number) ?? 1, }, output_format: outFormat, stream: flags.stream === true, diff --git a/src/commands/text/chat.ts b/src/commands/text/chat.ts index a9942da..10b9459 100644 --- a/src/commands/text/chat.ts +++ b/src/commands/text/chat.ts @@ -123,7 +123,7 @@ export default defineCommand({ const body: ChatRequest = { model, messages, - max_tokens: (flags.maxTokens as number) || 4096, + max_tokens: (flags.maxTokens as number) ?? 4096, stream: shouldStream, }; diff --git a/src/commands/video/generate.ts b/src/commands/video/generate.ts index 198d067..81119ed 100644 --- a/src/commands/video/generate.ts +++ b/src/commands/video/generate.ts @@ -100,7 +100,7 @@ export default defineCommand({ } // Default: poll until completion - const pollInterval = (flags.pollInterval as number) || 5; + const pollInterval = (flags.pollInterval as number) ?? 5; const taskUrl = videoTaskEndpoint(config.baseUrl, taskId); const result = await poll(config, {