From ec0db073d2654854ded0cfa96c1610d14a1cfb41 Mon Sep 17 00:00:00 2001 From: Sam Chau Date: Tue, 20 Jan 2026 00:23:12 +1030 Subject: [PATCH] feat: add dev mode override for manual upgrade runs --- src/routes/arr/[id]/upgrades/+page.server.ts | 13 +++++--- src/routes/arr/[id]/upgrades/+page.svelte | 32 ++++++++++++++++++++ 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/routes/arr/[id]/upgrades/+page.server.ts b/src/routes/arr/[id]/upgrades/+page.server.ts index b3476ef..df7815f 100644 --- a/src/routes/arr/[id]/upgrades/+page.server.ts +++ b/src/routes/arr/[id]/upgrades/+page.server.ts @@ -102,7 +102,7 @@ export const actions: Actions = { } }, - run: async ({ params }) => { + run: async ({ params, request }) => { const id = parseInt(params.id || '', 10); if (isNaN(id)) { @@ -133,8 +133,13 @@ export const actions: Actions = { return fail(400, { error: `Upgrade not yet supported for ${instance.type}` }); } - // Only allow manual runs in dry run mode - if (!config.dryRun) { + // Check for dev mode override + const formData = await request.formData(); + const devOverride = formData.get('devOverride') === 'true'; + const isDev = import.meta.env.DEV; + + // Only allow manual runs in dry run mode (or dev mode with override) + if (!config.dryRun && !(isDev && devOverride)) { return fail(400, { error: 'Manual runs only allowed in Dry Run mode. Enable Dry Run first.' }); @@ -143,7 +148,7 @@ export const actions: Actions = { try { await logger.debug(`Manual upgrade run triggered for "${instance.name}"`, { source: 'upgrades', - meta: { instanceId: id, dryRun: config.dryRun } + meta: { instanceId: id, dryRun: config.dryRun, devOverride } }); const result = await processUpgradeConfig(config, instance, true); diff --git a/src/routes/arr/[id]/upgrades/+page.svelte b/src/routes/arr/[id]/upgrades/+page.svelte index 03d0f4c..68a666c 100644 --- a/src/routes/arr/[id]/upgrades/+page.svelte +++ b/src/routes/arr/[id]/upgrades/+page.svelte @@ -34,6 +34,9 @@ // Track if config exists $: isNewConfig = !data.config; + // Dev mode check + const isDev = import.meta.env.DEV; + let showInfoModal = false; let saving = false; let running = false; @@ -108,6 +111,19 @@ } }} /> + {:else if !isNewConfig && isDev} +