Skip to content

Commit 1d702eb

Browse files
committed
fix(home): add workspace scoping to folder resolver, fix folderId type and dedup
1 parent 09e4a7b commit 1d702eb

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

apps/sim/app/workspace/[workspaceId]/home/components/user-input/user-input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ export function UserInput({
175175
if (ctx.kind === 'knowledge' && ctx.knowledgeId) keys.add(`knowledgebase:${ctx.knowledgeId}`)
176176
if (ctx.kind === 'table' && ctx.tableId) keys.add(`table:${ctx.tableId}`)
177177
if (ctx.kind === 'file' && ctx.fileId) keys.add(`file:${ctx.fileId}`)
178-
if (ctx.kind === 'folder' && 'folderId' in ctx) keys.add(`folder:${ctx.folderId}`)
178+
if (ctx.kind === 'folder' && ctx.folderId) keys.add(`folder:${ctx.folderId}`)
179179
}
180180
return keys
181181
}, [contextManagement.selectedContexts])

apps/sim/hooks/queries/tasks.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export interface TaskStoredMessageContext {
4848
knowledgeId?: string
4949
tableId?: string
5050
fileId?: string
51+
folderId?: string
5152
}
5253

5354
export interface TaskStoredMessage {

apps/sim/lib/copilot/process-contents.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,8 @@ export async function processContextsServer(
179179
if (!result) return null
180180
return { type: 'file', tag: ctx.label ? `@${ctx.label}` : '@', content: result.content }
181181
}
182-
if (ctx.kind === 'folder' && 'folderId' in ctx && ctx.folderId) {
183-
const result = await resolveFolderResource(ctx.folderId)
182+
if (ctx.kind === 'folder' && 'folderId' in ctx && ctx.folderId && currentWorkspaceId) {
183+
const result = await resolveFolderResource(ctx.folderId, currentWorkspaceId)
184184
if (!result) return null
185185
return { type: 'folder', tag: ctx.label ? `@${ctx.label}` : '@', content: result.content }
186186
}
@@ -783,7 +783,7 @@ export async function resolveActiveResourceContext(
783783
return await resolveFileResource(resourceId, workspaceId)
784784
}
785785
case 'folder': {
786-
return await resolveFolderResource(resourceId)
786+
return await resolveFolderResource(resourceId, workspaceId)
787787
}
788788
default:
789789
return null
@@ -822,20 +822,23 @@ async function resolveFileResource(
822822
}
823823
}
824824

825-
async function resolveFolderResource(folderId: string): Promise<AgentContext | null> {
825+
async function resolveFolderResource(
826+
folderId: string,
827+
workspaceId: string
828+
): Promise<AgentContext | null> {
826829
try {
827830
const { workflowFolder, workflow } = await import('@sim/db/schema')
828831
const [folder] = await db
829832
.select({ id: workflowFolder.id, name: workflowFolder.name })
830833
.from(workflowFolder)
831-
.where(eq(workflowFolder.id, folderId))
834+
.where(and(eq(workflowFolder.id, folderId), eq(workflowFolder.workspaceId, workspaceId)))
832835
.limit(1)
833836
if (!folder) return null
834837

835838
const workflows = await db
836839
.select({ id: workflow.id, name: workflow.name })
837840
.from(workflow)
838-
.where(eq(workflow.folderId, folderId))
841+
.where(and(eq(workflow.folderId, folderId), eq(workflow.workspaceId, workspaceId)))
839842

840843
const workflowList = workflows.map((w) => `- ${w.name} (id: ${w.id})`).join('\n')
841844
const content = `Folder: ${folder.name} (id: ${folder.id})\nWorkflows:\n${workflowList || '(empty)'}`

0 commit comments

Comments
 (0)