From 9fd2dfd7a060e4fb4030515b5de01bd25967ee31 Mon Sep 17 00:00:00 2001 From: sudacode Date: Tue, 11 Aug 2026 22:31:56 -0700 Subject: [PATCH] fix(cli): preserve stats cleanup lookback validation - Parse the full inline lookback-days value before validation --- src/cli/args.test.ts | 2 ++ src/cli/args.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cli/args.test.ts b/src/cli/args.test.ts index e8fb551f..bb0ce052 100644 --- a/src/cli/args.test.ts +++ b/src/cli/args.test.ts @@ -420,6 +420,8 @@ test('hasExplicitCommand and shouldStartApp preserve command intent', () => { ]).statsCleanupLookbackDays, 1, ); + assert.equal(parseArgs(['--stats-cleanup-lookback-days=30']).statsCleanupLookbackDays, 30); + assert.throws(() => parseArgs(['--stats-cleanup-lookback-days=30=oops']), /at least one day/); const jellyfinLibraries = parseArgs(['--jellyfin-libraries']); assert.equal(jellyfinLibraries.jellyfinLibraries, true); diff --git a/src/cli/args.ts b/src/cli/args.ts index 29e4cba2..a16fa8d9 100644 --- a/src/cli/args.ts +++ b/src/cli/args.ts @@ -384,7 +384,9 @@ export function parseArgs(argv: string[]): CliArgs { else if (arg === '--stats-cleanup-duplicate-lines') args.statsCleanupDuplicateLines = true; else if (arg === '--stats-cleanup-dry-run') args.statsCleanupDryRun = true; else if (arg.startsWith('--stats-cleanup-lookback-days=')) { - args.statsCleanupLookbackDays = parseStatsCleanupLookbackDays(arg.split('=', 2)[1]); + args.statsCleanupLookbackDays = parseStatsCleanupLookbackDays( + arg.slice('--stats-cleanup-lookback-days='.length), + ); } else if (arg === '--stats-cleanup-lookback-days') { args.statsCleanupLookbackDays = parseStatsCleanupLookbackDays(readValue(argv[i + 1])); } else if (arg.startsWith('--stats-response-path=')) {