diff --git a/packages/connector-slack/src/blockkit.test.ts b/packages/connector-slack/src/blockkit.test.ts index 6b77989..4c28024 100644 --- a/packages/connector-slack/src/blockkit.test.ts +++ b/packages/connector-slack/src/blockkit.test.ts @@ -58,7 +58,8 @@ describe('consentCard delegated path (summary only, empty details)', () => { const header = blocks.find((b) => b.type === 'header') as | { text: { text: string } } | undefined; - expect(header?.text.text).toContain('peek wants to act'); + // Neutral header (serves act, delegated-act, AND egress); the summary carries specifics. + expect(header?.text.text).toBe('peek wants your approval'); const section = blocks.find((b) => b.type === 'section') as | { text: { text: string } } | undefined; diff --git a/packages/connector-slack/src/blockkit.ts b/packages/connector-slack/src/blockkit.ts index 247cd10..d576421 100644 --- a/packages/connector-slack/src/blockkit.ts +++ b/packages/connector-slack/src/blockkit.ts @@ -98,7 +98,10 @@ export function consentCard( const value = APPROVE_BUTTON_VALUE(correlationId, conversationId); const header: KnownBlock = { type: 'header', - text: { type: 'plain_text', text: 'peek wants to act on your browser' }, + // Neutral header: one consent card serves acting on the browser, delegated + // acts, AND data egress (share_session). The summary sentence below always + // carries the specific request, so the header stays action-agnostic. + text: { type: 'plain_text', text: 'peek wants your approval' }, }; const context: KnownBlock = { type: 'context',