diff --git a/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts b/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts index e54cb355468..fdc8fb0e9d3 100644 --- a/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts +++ b/extensions/msteams/src/monitor-handler/message-handler.authz.test.ts @@ -651,6 +651,7 @@ describe("msteams monitor handler authz", () => { expect(dispatched?.ctxPayload).toMatchObject({ BodyForAgent: "[Thread history]\nAlice: Allowed context\n[/Thread history]\n\nCurrent message", + GroupSpace: "team123", }); expect( String((dispatched?.ctxPayload as { BodyForAgent?: string }).BodyForAgent), diff --git a/extensions/msteams/src/monitor-handler/message-handler.ts b/extensions/msteams/src/monitor-handler/message-handler.ts index b50ad9ae076..e304059314e 100644 --- a/extensions/msteams/src/monitor-handler/message-handler.ts +++ b/extensions/msteams/src/monitor-handler/message-handler.ts @@ -773,6 +773,7 @@ export function createMSTeamsMessageHandler(deps: MSTeamsMessageHandlerDeps) { ChatType: isDirectMessage ? "direct" : isChannel ? "channel" : "group", ConversationLabel: envelopeFrom, GroupSubject: !isDirectMessage ? conversationType : undefined, + GroupSpace: teamId, SenderName: senderName, SenderId: senderId, Provider: "msteams" as const, diff --git a/extensions/slack/src/monitor/message-handler/prepare.test.ts b/extensions/slack/src/monitor/message-handler/prepare.test.ts index e03a92fba2f..56f60f38060 100644 --- a/extensions/slack/src/monitor/message-handler/prepare.test.ts +++ b/extensions/slack/src/monitor/message-handler/prepare.test.ts @@ -196,6 +196,7 @@ describe("slack prepareSlackMessage inbound contract", () => { expect(prepared).toBeTruthy(); expectInboundContextContract(prepared!.ctxPayload as any); + expect(prepared!.ctxPayload.GroupSpace).toBe("T1"); }); it("does not enable Slack status reactions when the message timestamp is missing", async () => { diff --git a/extensions/slack/src/monitor/message-handler/prepare.ts b/extensions/slack/src/monitor/message-handler/prepare.ts index 43dfaf44464..d753dd2dde8 100644 --- a/extensions/slack/src/monitor/message-handler/prepare.ts +++ b/extensions/slack/src/monitor/message-handler/prepare.ts @@ -736,6 +736,7 @@ export async function prepareSlackMessage(params: { ChatType: isDirectMessage ? "direct" : "channel", ConversationLabel: envelopeFrom, GroupSubject: isRoomish ? roomLabel : undefined, + GroupSpace: ctx.teamId || undefined, GroupSystemPrompt: groupSystemPrompt, UntrustedContext: untrustedChannelMetadata ? [untrustedChannelMetadata] : undefined, SenderName: senderName, diff --git a/extensions/slack/src/monitor/slash.test.ts b/extensions/slack/src/monitor/slash.test.ts index ce70282f791..b4f8eb77ee0 100644 --- a/extensions/slack/src/monitor/slash.test.ts +++ b/extensions/slack/src/monitor/slash.test.ts @@ -983,9 +983,10 @@ describe("slack slash command session metadata", () => { expect(recordSessionMetaFromInboundMock).toHaveBeenCalledTimes(1); const call = recordSessionMetaFromInboundMock.mock.calls[0]?.[0] as { sessionKey?: string; - ctx?: { OriginatingChannel?: string }; + ctx?: { GroupSpace?: string; OriginatingChannel?: string }; }; expect(call.ctx?.OriginatingChannel).toBe("slack"); + expect(call.ctx?.GroupSpace).toBe("T1"); expect(call.sessionKey).toBeDefined(); }); diff --git a/extensions/slack/src/monitor/slash.ts b/extensions/slack/src/monitor/slash.ts index b6f5e2966b6..e29689f6e8b 100644 --- a/extensions/slack/src/monitor/slash.ts +++ b/extensions/slack/src/monitor/slash.ts @@ -577,6 +577,7 @@ export async function registerSlackMonitorSlashCommands(params: { : `slack:group:${command.channel_id}`, }) ?? (isDirectMessage ? senderName : roomLabel), GroupSubject: isRoomish ? roomLabel : undefined, + GroupSpace: ctx.teamId || undefined, GroupSystemPrompt: groupSystemPrompt, UntrustedContext: untrustedChannelMetadata ? [untrustedChannelMetadata] : undefined, SenderName: senderName,