diff --git a/src/notifications/channels/discord.js b/src/notifications/channels/discord.js index 5d875ddc..847c1daf 100644 --- a/src/notifications/channels/discord.js +++ b/src/notifications/channels/discord.js @@ -21,7 +21,8 @@ export function convertSlackToDiscord(slackPayload) { if (block.type === 'section' && block.text) { descriptionLines.push(block.text.text); } - if (block.type === 'fields' && block.fields) { + // Fields ride on a section block; 'fields' is tolerated for older payloads. + if ((block.type === 'section' || block.type === 'fields') && block.fields) { for (const f of block.fields) { const raw = f.text || ''; const parts = raw.split('\n'); diff --git a/src/notifications/channels/teams.js b/src/notifications/channels/teams.js index 28b86a5e..0b6bc4b9 100644 --- a/src/notifications/channels/teams.js +++ b/src/notifications/channels/teams.js @@ -24,7 +24,8 @@ export function convertSlackToTeams(slackPayload) { facts: [] }); } - if (block.type === 'fields' && block.fields) { + // Fields ride on a section block; 'fields' is tolerated for older payloads. + if ((block.type === 'section' || block.type === 'fields') && block.fields) { const currentSection = sections[sections.length - 1] || { facts: [] }; if (!sections.includes(currentSection)) { sections.push(currentSection); diff --git a/src/notifications/channels/text.js b/src/notifications/channels/text.js index adad2663..2814c08f 100644 --- a/src/notifications/channels/text.js +++ b/src/notifications/channels/text.js @@ -23,7 +23,8 @@ export function slackPayloadToText(slackPayload) { if (block.type === 'section' && block.text?.text) { lines.push(stripMrkdwn(block.text.text)); } - if (block.type === 'fields' && Array.isArray(block.fields)) { + // Fields ride on a section block; 'fields' is tolerated for older payloads. + if ((block.type === 'section' || block.type === 'fields') && Array.isArray(block.fields)) { for (const field of block.fields) { const parts = String(field.text ?? '').split('\n'); const name = stripMrkdwn(parts[0]); diff --git a/src/notifications/index.js b/src/notifications/index.js index 14e3a2ea..1c20acef 100644 --- a/src/notifications/index.js +++ b/src/notifications/index.js @@ -89,7 +89,8 @@ export function formatSlackStageMessage(runId, stageId, status, details = {}) { }, }, { - type: 'fields', + // Block Kit has no 'fields' block type — fields live on a section block. + type: 'section', fields, }, ]; @@ -146,7 +147,8 @@ export function formatSlackTaskReportMessage(runId, taskId, trace) { }, }, { - type: 'fields', + // Block Kit has no 'fields' block type — fields live on a section block. + type: 'section', fields: [ { type: 'mrkdwn', text: `*Run ID:*\n${runId}` }, { type: 'mrkdwn', text: `*Task:*\n${taskId}` },