From 7b1691dd82eafae3e06db429ffa2eeb80177be35 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Wed, 12 Nov 2025 21:21:15 -0800 Subject: [PATCH 1/5] fix(slack): send message tool --- apps/sim/blocks/blocks/slack.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/sim/blocks/blocks/slack.ts b/apps/sim/blocks/blocks/slack.ts index 461f9c6fde..ce3a2f78b4 100644 --- a/apps/sim/blocks/blocks/slack.ts +++ b/apps/sim/blocks/blocks/slack.ts @@ -316,6 +316,7 @@ export const SlackBlock: BlockConfig = { operation, channel, manualChannel, + text, title, content, limit, @@ -359,10 +360,10 @@ export const SlackBlock: BlockConfig = { // Handle operation-specific params switch (operation) { case 'send': { - if (!rest.text) { + if (!text || text.trim() === '') { throw new Error('Message text is required for send operation') } - baseParams.text = rest.text + baseParams.text = text // Add thread_ts if provided if (threadTs) { baseParams.thread_ts = threadTs From 1c0d0d1e41fecc9ad52fade37e620c099065e312 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Wed, 12 Nov 2025 21:23:34 -0800 Subject: [PATCH 2/5] add logging --- apps/sim/blocks/blocks/slack.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/sim/blocks/blocks/slack.ts b/apps/sim/blocks/blocks/slack.ts index ce3a2f78b4..6f8c78a1d1 100644 --- a/apps/sim/blocks/blocks/slack.ts +++ b/apps/sim/blocks/blocks/slack.ts @@ -309,6 +309,14 @@ export const SlackBlock: BlockConfig = { } }, params: (params) => { + console.log('[Slack Block Params Transformer] Received params:', { + allKeys: Object.keys(params), + operation: params.operation, + text: params.text, + textType: typeof params.text, + textLength: params.text?.length, + }) + const { credential, authMethod, From 669e7c9a94cd72fc00c326e78f07ffe67f890a42 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Wed, 12 Nov 2025 21:32:35 -0800 Subject: [PATCH 3/5] add more logs --- apps/sim/serializer/index.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/apps/sim/serializer/index.ts b/apps/sim/serializer/index.ts index 8ffa36c2f5..9323ca0f2a 100644 --- a/apps/sim/serializer/index.ts +++ b/apps/sim/serializer/index.ts @@ -362,6 +362,17 @@ export class Serializer { const isAdvancedMode = block.advancedMode ?? false const isStarterBlock = block.type === 'starter' + // Debug logging for Slack blocks + if (block.type === 'slack') { + console.log('[Serializer] Extracting params for Slack block:', { + blockId: block.id, + blockName: block.name, + subBlockKeys: Object.keys(block.subBlocks), + textSubBlock: block.subBlocks['text'], + textValue: block.subBlocks['text']?.value, + }) + } + // First collect all current values from subBlocks, filtering by mode Object.entries(block.subBlocks).forEach(([id, subBlock]) => { // Find the corresponding subblock config to check its mode @@ -379,6 +390,15 @@ export class Serializer { (shouldIncludeField(subBlockConfig, isAdvancedMode) || hasStarterInputFormatValues) ) { params[id] = subBlock.value + + // Debug for Slack text field + if (block.type === 'slack' && id === 'text') { + console.log('[Serializer] Including text param:', { + id, + value: subBlock.value, + included: true, + }) + } } }) From 5e37c81a07cdbcb58a2ef0c67b0afa66b94894e1 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Wed, 12 Nov 2025 21:36:46 -0800 Subject: [PATCH 4/5] add more logs --- apps/sim/blocks/blocks/slack.ts | 6 +++++ .../handlers/generic/generic-handler.ts | 23 +++++++++++++++++++ apps/sim/serializer/index.ts | 18 +++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/apps/sim/blocks/blocks/slack.ts b/apps/sim/blocks/blocks/slack.ts index 6f8c78a1d1..ffbe11b8c0 100644 --- a/apps/sim/blocks/blocks/slack.ts +++ b/apps/sim/blocks/blocks/slack.ts @@ -441,6 +441,12 @@ export const SlackBlock: BlockConfig = { break } + console.log('[Slack Block Params Transformer] Returning baseParams:', { + operation, + baseParamsKeys: Object.keys(baseParams), + text: baseParams.text, + }) + return baseParams }, }, diff --git a/apps/sim/executor/handlers/generic/generic-handler.ts b/apps/sim/executor/handlers/generic/generic-handler.ts index eacf260cd9..141bb042b5 100644 --- a/apps/sim/executor/handlers/generic/generic-handler.ts +++ b/apps/sim/executor/handlers/generic/generic-handler.ts @@ -34,8 +34,31 @@ export class GenericBlockHandler implements BlockHandler { const blockConfig = getBlock(blockType) if (blockConfig?.tools?.config?.params) { try { + if (blockType === 'slack') { + console.log('[GenericHandler] Before params transformer:', { + blockType, + inputsText: inputs.text, + inputsKeys: Object.keys(inputs), + }) + } + const transformedParams = blockConfig.tools.config.params(inputs) + + if (blockType === 'slack') { + console.log('[GenericHandler] After params transformer:', { + transformedParamsText: transformedParams.text, + transformedKeys: Object.keys(transformedParams), + }) + } + finalInputs = { ...inputs, ...transformedParams } + + if (blockType === 'slack') { + console.log('[GenericHandler] After merge:', { + finalInputsText: finalInputs.text, + finalInputsKeys: Object.keys(finalInputs), + }) + } } catch (error) { logger.warn(`Failed to apply parameter transformation for block type ${blockType}:`, { error: error instanceof Error ? error.message : String(error), diff --git a/apps/sim/serializer/index.ts b/apps/sim/serializer/index.ts index 9323ca0f2a..552931a9a1 100644 --- a/apps/sim/serializer/index.ts +++ b/apps/sim/serializer/index.ts @@ -415,6 +415,15 @@ export class Serializer { } }) + // Debug: Log params before canonical consolidation + if (block.type === 'slack') { + console.log('[Serializer] Params after extraction (before canonical):', { + blockId: block.id, + text: params.text, + allKeys: Object.keys(params), + }) + } + // Finally, consolidate canonical parameters (e.g., selector and manual ID into a single param) const canonicalGroups: Record = {} blockConfig.subBlocks.forEach((sb) => { @@ -454,6 +463,15 @@ export class Serializer { else delete params[canonicalKey] }) + // Debug: Log params after canonical consolidation + if (block.type === 'slack') { + console.log('[Serializer] Params after canonical consolidation:', { + blockId: block.id, + text: params.text, + allKeys: Object.keys(params), + }) + } + return params } From 64f8c344a31dd3edf36cc5a8f4cd3292c0610dd0 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Wed, 12 Nov 2025 21:41:32 -0800 Subject: [PATCH 5/5] fix canonical param --- apps/sim/blocks/blocks/slack.ts | 15 -------- .../handlers/generic/generic-handler.ts | 23 ----------- apps/sim/serializer/index.ts | 38 ------------------- 3 files changed, 76 deletions(-) diff --git a/apps/sim/blocks/blocks/slack.ts b/apps/sim/blocks/blocks/slack.ts index ffbe11b8c0..c0ff5dadfc 100644 --- a/apps/sim/blocks/blocks/slack.ts +++ b/apps/sim/blocks/blocks/slack.ts @@ -229,7 +229,6 @@ export const SlackBlock: BlockConfig = { id: 'updateText', title: 'New Message Text', type: 'long-input', - canonicalParamId: 'text', placeholder: 'Enter new message text (supports Slack mrkdwn)', condition: { field: 'operation', @@ -309,14 +308,6 @@ export const SlackBlock: BlockConfig = { } }, params: (params) => { - console.log('[Slack Block Params Transformer] Received params:', { - allKeys: Object.keys(params), - operation: params.operation, - text: params.text, - textType: typeof params.text, - textLength: params.text?.length, - }) - const { credential, authMethod, @@ -441,12 +432,6 @@ export const SlackBlock: BlockConfig = { break } - console.log('[Slack Block Params Transformer] Returning baseParams:', { - operation, - baseParamsKeys: Object.keys(baseParams), - text: baseParams.text, - }) - return baseParams }, }, diff --git a/apps/sim/executor/handlers/generic/generic-handler.ts b/apps/sim/executor/handlers/generic/generic-handler.ts index 141bb042b5..eacf260cd9 100644 --- a/apps/sim/executor/handlers/generic/generic-handler.ts +++ b/apps/sim/executor/handlers/generic/generic-handler.ts @@ -34,31 +34,8 @@ export class GenericBlockHandler implements BlockHandler { const blockConfig = getBlock(blockType) if (blockConfig?.tools?.config?.params) { try { - if (blockType === 'slack') { - console.log('[GenericHandler] Before params transformer:', { - blockType, - inputsText: inputs.text, - inputsKeys: Object.keys(inputs), - }) - } - const transformedParams = blockConfig.tools.config.params(inputs) - - if (blockType === 'slack') { - console.log('[GenericHandler] After params transformer:', { - transformedParamsText: transformedParams.text, - transformedKeys: Object.keys(transformedParams), - }) - } - finalInputs = { ...inputs, ...transformedParams } - - if (blockType === 'slack') { - console.log('[GenericHandler] After merge:', { - finalInputsText: finalInputs.text, - finalInputsKeys: Object.keys(finalInputs), - }) - } } catch (error) { logger.warn(`Failed to apply parameter transformation for block type ${blockType}:`, { error: error instanceof Error ? error.message : String(error), diff --git a/apps/sim/serializer/index.ts b/apps/sim/serializer/index.ts index 552931a9a1..8ffa36c2f5 100644 --- a/apps/sim/serializer/index.ts +++ b/apps/sim/serializer/index.ts @@ -362,17 +362,6 @@ export class Serializer { const isAdvancedMode = block.advancedMode ?? false const isStarterBlock = block.type === 'starter' - // Debug logging for Slack blocks - if (block.type === 'slack') { - console.log('[Serializer] Extracting params for Slack block:', { - blockId: block.id, - blockName: block.name, - subBlockKeys: Object.keys(block.subBlocks), - textSubBlock: block.subBlocks['text'], - textValue: block.subBlocks['text']?.value, - }) - } - // First collect all current values from subBlocks, filtering by mode Object.entries(block.subBlocks).forEach(([id, subBlock]) => { // Find the corresponding subblock config to check its mode @@ -390,15 +379,6 @@ export class Serializer { (shouldIncludeField(subBlockConfig, isAdvancedMode) || hasStarterInputFormatValues) ) { params[id] = subBlock.value - - // Debug for Slack text field - if (block.type === 'slack' && id === 'text') { - console.log('[Serializer] Including text param:', { - id, - value: subBlock.value, - included: true, - }) - } } }) @@ -415,15 +395,6 @@ export class Serializer { } }) - // Debug: Log params before canonical consolidation - if (block.type === 'slack') { - console.log('[Serializer] Params after extraction (before canonical):', { - blockId: block.id, - text: params.text, - allKeys: Object.keys(params), - }) - } - // Finally, consolidate canonical parameters (e.g., selector and manual ID into a single param) const canonicalGroups: Record = {} blockConfig.subBlocks.forEach((sb) => { @@ -463,15 +434,6 @@ export class Serializer { else delete params[canonicalKey] }) - // Debug: Log params after canonical consolidation - if (block.type === 'slack') { - console.log('[Serializer] Params after canonical consolidation:', { - blockId: block.id, - text: params.text, - allKeys: Object.keys(params), - }) - } - return params }