All checks were successful
ci/woodpecker/push/api Pipeline was successful
- Add ConversationArchive Prisma model with pgvector(1536) embedding field - Migration: 20260228000000_ms22_conversation_archive - NestJS module at apps/api/src/conversation-archive/ with service, controller, DTOs, spec - POST /api/conversations/ingest — ingest session logs, auto-embed via EmbeddingService - POST /api/conversations/search — vector similarity search with agentId filter - GET /api/conversations — paginated list with agentId + date range filters - GET /api/conversations/:id — fetch full conversation including messages - Register ConversationArchiveModule in app.module.ts - 8 unit tests, all passing (vitest) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
34 lines
1.2 KiB
SQL
34 lines
1.2 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "conversation_archives" (
|
|
"id" UUID NOT NULL,
|
|
"workspace_id" UUID NOT NULL,
|
|
"session_id" TEXT NOT NULL,
|
|
"agent_id" TEXT NOT NULL,
|
|
"messages" JSONB NOT NULL,
|
|
"message_count" INTEGER NOT NULL,
|
|
"summary" TEXT NOT NULL,
|
|
"embedding" vector(1536),
|
|
"started_at" TIMESTAMPTZ NOT NULL,
|
|
"ended_at" TIMESTAMPTZ,
|
|
"metadata" JSONB NOT NULL DEFAULT '{}',
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMPTZ NOT NULL,
|
|
|
|
CONSTRAINT "conversation_archives_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "conversation_archives_workspace_id_session_id_key" ON "conversation_archives"("workspace_id", "session_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "conversation_archives_workspace_id_idx" ON "conversation_archives"("workspace_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "conversation_archives_agent_id_idx" ON "conversation_archives"("agent_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "conversation_archives_started_at_idx" ON "conversation_archives"("started_at");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "conversation_archives" ADD CONSTRAINT "conversation_archives_workspace_id_fkey" FOREIGN KEY ("workspace_id") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|