feat(ai): citations column on ai_messages (contract request 5)

New packages/feature-ai/migrations/0001_ai_message_citations.sql adds
ai_messages.citations_json and folds v1 'sources' rows into the assistant
row before them. The feature writes and reads the column directly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas Winther
2026-10-30 20:28:23 +01:00
co-authored by Claude Opus 5.5
parent fbfe16534a
commit d34a5c1f0c
9 changed files with 94 additions and 22 deletions
+2 -1
View File
@@ -7,6 +7,7 @@ import { createCourseRepository } from "@stc/course-format";
import { connect, migrate } from "@stc/db";
import indexHtml from "../../../apps/web/index.html";
import { aiFeature } from "../src/feature";
import { migrationsDirs } from "../src/migrations";
const config = loadConfig();
const who = process.env.STC_AI_DEV_USER ?? "owner";
@@ -32,7 +33,7 @@ const fake: AiProvider = {
};
const db = await connect(config.databaseUrl);
await migrate(db);
await migrate(db, { "feature-ai": migrationsDirs });
const courses = await createCourseRepository(config.courseDirs);
const ctx = { config, db, courses, auth } as ServerContext;
const feature = aiFeature(ctx, process.env.STC_AI_DEV_FAKE ? { providerFactory: () => fake } : {});