From 026ab6b88294cc89af7c0b87f26d4c969b175492 Mon Sep 17 00:00:00 2001 From: Arnab Saha Date: Thu, 7 May 2026 22:06:36 -0700 Subject: [PATCH] feat(doctor): expose --post-upgrade and --json CLI flags --- src/cli/program/register.maintenance.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cli/program/register.maintenance.ts b/src/cli/program/register.maintenance.ts index 0cd049f5605..cf7e72a9f15 100644 --- a/src/cli/program/register.maintenance.ts +++ b/src/cli/program/register.maintenance.ts @@ -27,7 +27,12 @@ export function registerMaintenanceCommands(program: Command) { ) .option("--deep", "Scan system services for extra gateway installs", false) .option("--lint", "Run read-only health checks and report findings", false) - .option("--json", "With --lint: emit JSON findings instead of human output", false) + .option( + "--post-upgrade", + "Emit plugin-compat findings only (machine-readable with --json)", + false, + ) + .option("--json", "With --lint or --post-upgrade: emit machine-readable JSON output", false) .option( "--severity-min ", "With --lint: drop findings below this severity (info|warning|error)", @@ -84,6 +89,8 @@ export function registerMaintenanceCommands(program: Command) { generateGatewayToken: Boolean(opts.generateGatewayToken), allowExec: Boolean(opts.allowExec), deep: Boolean(opts.deep), + postUpgrade: Boolean(opts.postUpgrade), + json: Boolean(opts.json), }); defaultRuntime.exit(0); }); @@ -168,12 +175,13 @@ export function registerMaintenanceCommands(program: Command) { function hasLintOnlyDoctorOptions(opts: { readonly json?: boolean; + readonly postUpgrade?: boolean; readonly severityMin?: unknown; readonly skip?: unknown; readonly only?: unknown; }): boolean { return ( - opts.json === true || + (opts.json === true && opts.postUpgrade !== true) || typeof opts.severityMin === "string" || (Array.isArray(opts.skip) && opts.skip.length > 0) || (Array.isArray(opts.only) && opts.only.length > 0)