diff --git a/apps/web/components/select-spaces-modal.tsx b/apps/web/components/select-spaces-modal.tsx
index 7198d435d..8f8e85be6 100644
--- a/apps/web/components/select-spaces-modal.tsx
+++ b/apps/web/components/select-spaces-modal.tsx
@@ -21,7 +21,9 @@ import {
Loader,
Pencil,
Check,
+ ExternalLink,
} from "lucide-react"
+import { Tooltip, TooltipContent, TooltipTrigger } from "@ui/components/tooltip"
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"
import { toast } from "sonner"
import { DEFAULT_PROJECT_ID } from "@lib/constants"
@@ -90,6 +92,14 @@ type Category = {
count: number
}
+const CONSOLE_PLAYGROUND_URL = "https://console.supermemory.ai/playground"
+
+function openContainerTagInPlayground(containerTag: string) {
+ const url = new URL(CONSOLE_PLAYGROUND_URL)
+ url.searchParams.set("containerTag", containerTag)
+ window.open(url.toString(), "_blank", "noopener,noreferrer")
+}
+
export function SelectSpacesModal({
isOpen,
onClose,
@@ -590,6 +600,7 @@ export function SelectSpacesModal({
const isOwnSpace = isOwnConversationSpace(project, user?.id)
const canEdit = !isDefault && !plugin && !isOwnSpace
const canBulkDelete = enableDelete && !isDefault
+ const canOpenPlayground = enableDelete
const isEditing = editingProject?.containerTag === project.containerTag
const isBulkDeleteSelected = bulkDeleteTags.has(project.containerTag)
const trimmedEditName = editingProject?.name.trim() ?? ""
@@ -755,6 +766,27 @@ export function SelectSpacesModal({
)}
+ {canOpenPlayground && !isEditing && !isBulkDeleteMode && (
+
+
+
+
+
+ Open in Playground
+
+
+ )}
{enableDelete &&
!isDefault &&
!isEditing &&
@@ -771,7 +803,7 @@ export function SelectSpacesModal({
})
}}
aria-label="Delete space"
- className="shrink-0 opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded-full hover:bg-red-500/15 cursor-pointer focus:outline-none"
+ className="-ml-2 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded-full hover:bg-red-500/15 cursor-pointer focus:outline-none"
>