diff --git a/app/api/nodes/route.ts b/app/api/nodes/route.ts index 7ba26ec..ddbd857 100644 --- a/app/api/nodes/route.ts +++ b/app/api/nodes/route.ts @@ -1,6 +1,7 @@ import { NextRequest, NextResponse } from 'next/server'; import { cookies } from 'next/headers'; import { RichText, Agent } from '@atproto/api'; +import { RecordId } from 'surrealdb'; import { connectToDB } from '@/lib/db'; import { generateEmbedding } from '@/lib/ai'; import { verifySurrealJwt } from '@/lib/auth/jwt'; @@ -43,7 +44,8 @@ export async function POST(request: NextRequest) { const createdAt = new Date().toISOString(); // Generate a unique node ID upfront (we'll use this for the detail page link) - const nodeId = `node:${crypto.randomUUID()}`; + const nodeUuid = crypto.randomUUID(); + const nodeId = `node:${nodeUuid}`; const detailUrl = `${process.env.NEXT_PUBLIC_APP_URL || 'https://ponderants.app'}/galaxy/${encodeURIComponent(nodeId)}`; // --- Step 1: Write to Source of Truth (ATproto) --- @@ -235,7 +237,9 @@ export async function POST(request: NextRequest) { nodeData.embedding = embedding; } - const newNode = await db.create(nodeId, nodeData); + // Use RecordId object to specify table and ID separately + // SurrealDB client expects RecordId object, not 'table:id' string + const newNode = await db.create(new RecordId('node', nodeUuid), nodeData); // Handle linking if (links && links.length > 0) {