From cca4666eb4746599a6f8a19dee096b0d76cfad5f Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Thu, 16 Apr 2026 15:28:44 +0000 Subject: [PATCH] feat: set deploy source to 'merge' during fork merge UI flow Co-Authored-By: Claude Opus 4.6 (1M context) --- .../lib/components/CompareWorkspaces.svelte | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/frontend/src/lib/components/CompareWorkspaces.svelte b/frontend/src/lib/components/CompareWorkspaces.svelte index 3ace24d1fb..2c1d3fc6bc 100644 --- a/frontend/src/lib/components/CompareWorkspaces.svelte +++ b/frontend/src/lib/components/CompareWorkspaces.svelte @@ -30,6 +30,7 @@ KafkaTriggerService, MqttTriggerService, NatsTriggerService, + OpenAPI, PostgresTriggerService, ScheduleService, ScriptService, @@ -420,20 +421,31 @@ return 0 }) let anyFailed = false - for (const itemKey of sortedItems) { - const deployable = deployableItems.find((d) => d.key === itemKey) - if (!deployable) { - sendUserToast(`Undeployable item: ${itemKey}`, true) - continue - } + // Mark these API calls as coming from a fork merge + const prevHeaders = OpenAPI.HEADERS + OpenAPI.HEADERS = { + ...((prevHeaders as Record) ?? {}), + 'X-Windmill-Deploy-Source': 'merge' + } + try { + for (const itemKey of sortedItems) { + const deployable = deployableItems.find((d) => d.key === itemKey) - const to = mergeIntoParent ? parent : current - const from = mergeIntoParent ? current : parent - await deploy(deployable.kind, deployable.path, to, from, itemKey, deployable.trigger) - if (deploymentStatus[itemKey]?.status === 'failed') { - anyFailed = true + if (!deployable) { + sendUserToast(`Undeployable item: ${itemKey}`, true) + continue + } + + const to = mergeIntoParent ? parent : current + const from = mergeIntoParent ? current : parent + await deploy(deployable.kind, deployable.path, to, from, itemKey, deployable.trigger) + if (deploymentStatus[itemKey]?.status === 'failed') { + anyFailed = true + } } + } finally { + OpenAPI.HEADERS = prevHeaders } deploying = false deselectAll()