diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 80600ae5..c1398b7d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -29,5 +29,9 @@ jobs:
- name: Run TypeScript type checking
run: bunx turbo run check-types --filter='@supermemory/ai-sdk' --filter='@supermemory/memory-graph'
+ - name: Run web unit tests
+ working-directory: apps/web
+ run: bun test
+
- name: Run Biome CI (format & lint on changed files)
run: bunx biome ci --changed --since=origin/main --no-errors-on-unmatched
diff --git a/apps/web/components/connect-ai-modal.tsx b/apps/web/components/connect-ai-modal.tsx
index 4e467567..a9889342 100644
--- a/apps/web/components/connect-ai-modal.tsx
+++ b/apps/web/components/connect-ai-modal.tsx
@@ -36,6 +36,7 @@ import {
} from "@/lib/mcp-client-setup"
import { ClaudeDesktopManualTimeline } from "@/components/mcp-modal/claude-desktop-manual-timeline"
import {
+ buildCursorMcpDeeplink,
buildMcpUrlRemoteJson,
CHATGPT_REMOTE_MCP_URL,
CLAUDE_DESKTOP_MCP_SNIPPET,
@@ -277,10 +278,6 @@ export function ConnectAIModal({
return JSON.stringify(config, null, 2)
}
- function getCursorDeeplink() {
- return "cursor://anysphere.cursor-deeplink/mcp/install?name=supermemory&config=eyJ1cmwiOiJodHRwczovL2FwaS5zdXBlcm1lbW9yeS5haS9tY3AifQ%3D%3D"
- }
-
const copyToClipboard = () => {
navigator.clipboard.writeText(getMcpServerUrl())
analytics.mcpInstallCmdCopied()
@@ -469,7 +466,7 @@ export function ConnectAIModal({
mcp.json yourself.