@@ -80,15 +80,20 @@ const create = (name: string) =>
8080const select = ( spaceId : string | null ) =>
8181 selectMemorySpace . execute ( { principal : principal ( ) , input : { ...input , spaceId } } )
8282const list = ( ) => listMemorySpaces . execute ( { principal : principal ( ) , input } )
83- async function scope ( chatId : string , workspaceId ?: string , userId = ids . owner ) {
83+ async function scope (
84+ chatId : string ,
85+ workspaceId ?: string ,
86+ userId = ids . owner ,
87+ organizationId = ids . org
88+ ) {
8489 const options = { audience : MEMORY_SCOPE_AUDIENCE , ttlMs : 60_000 }
8590 const caller = workspaceId
8691 ? createTrustedCopilotPrincipal (
8792 { userId, workspaceId, chatId, delegationId : generateId ( ) } ,
8893 options
8994 )
9095 : createTrustedOrganizationCopilotPrincipal (
91- { userId, organizationId : ids . org , chatId, delegationId : generateId ( ) } ,
96+ { userId, organizationId, chatId, delegationId : generateId ( ) } ,
9297 options
9398 )
9499 return readMemoryScope . execute ( {
@@ -637,6 +642,29 @@ describe('a workspace chat moved into its owner’s personal organization', () =
637642 } )
638643 } )
639644
645+ it ( 'shares that personal graph with an organization chat in the same personal organization' , async ( ) => {
646+ const workspaceChatId = await workspaceChat ( ids . personalWorkspace )
647+ const organizationChat = await createOrganizationChatRecord (
648+ { userId : ids . personalOwner , organizationId : personalOrganizationId } ,
649+ 'agent'
650+ )
651+
652+ const workspaceGraph = await scope ( workspaceChatId , ids . personalWorkspace , ids . personalOwner )
653+ expect (
654+ await scope ( organizationChat . id , undefined , ids . personalOwner , personalOrganizationId )
655+ ) . toEqual ( {
656+ enabled : true ,
657+ userId : ids . personalOwner ,
658+ organizationId : workspaceGraph . organizationId ,
659+ workspaceId : null ,
660+ } )
661+ const teamChat = await createOrganizationChatRecord (
662+ { userId : ids . other , organizationId : ids . org } ,
663+ 'agent'
664+ )
665+ expect ( ( await scope ( teamChat . id , undefined , ids . other ) ) . organizationId ) . toBe ( ids . org )
666+ } )
667+
640668 it ( 'keeps the default graph when a chosen space has no organization to own it' , async ( ) => {
641669 const chatId = await workspaceChat ( ids . unownedWorkspace , generateId ( ) )
642670
0 commit comments