feat(confidence-engine): use server investigation persistence

This commit is contained in:
2026-09-08 19:21:05 +01:00
parent 6dd447e56a
commit d6df1d210e
15 changed files with 425 additions and 114 deletions
@@ -2,6 +2,7 @@ import {
createServerSupabaseClient,
getAuthenticatedUser,
} from "@/lib/supabase/server.js";
import { restartSnapshot } from "./restart-investigation.js";
const SCHEMA = "confidence_engine";
const TABLE = "investigations";
@@ -50,17 +51,26 @@ export async function loadInvestigation(id) {
export async function listInvestigations() {
const context = await getAuthenticatedPersistenceContext();
if (!context) return null;
if (!context) return [];
const { data, error } = await context.supabase
.schema(SCHEMA)
.from(TABLE)
.select("id, created_at, updated_at")
.select("id, snapshot, created_at, updated_at")
.order("updated_at", { ascending: false });
throwIfDatabaseError(error);
return (data ?? []).map((record) => ({
id: record.id,
createdAt: record.created_at,
updatedAt: record.updated_at,
scenario: record.snapshot?.scenario ?? null,
updatedAt: record.snapshot?.updatedAt ?? record.updated_at,
investigationRevision: record.snapshot?.investigationRevision ?? 0,
reportExists: !!record.snapshot?.investigationReport,
reportGeneratedFromRevision: record.snapshot?.investigationReport?.generatedFromRevision ?? null,
}));
}
export async function restartInvestigation(id) {
const snapshot = await loadInvestigation(id);
if (!snapshot) return null;
return saveInvestigation(restartSnapshot(snapshot), id);
}