From 37245a8e28ebaa0ccba68b4ab2c93c733dfaaf17 Mon Sep 17 00:00:00 2001 From: robbond Date: Sat, 5 Sep 2026 08:18:04 +0100 Subject: [PATCH] fix(confidence-engine): expose reconstruction failure evidence --- app/api/cases/start/route.js | 1 + tests/app/api/cases-start-route.test.js | 5 ++++- tests/graph/orchestrator.test.js | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/api/cases/start/route.js b/app/api/cases/start/route.js index ac8ad6b..278dbed 100644 --- a/app/api/cases/start/route.js +++ b/app/api/cases/start/route.js @@ -23,6 +23,7 @@ export async function POST(request) { validationErrors: result.validationErrors, diagnostics: result.diagnostics, analysisErrors: result.analysisErrors, + rawResponse: result.rawResponse ?? undefined, }, { status }, ); diff --git a/tests/app/api/cases-start-route.test.js b/tests/app/api/cases-start-route.test.js index 76937d7..2a639df 100644 --- a/tests/app/api/cases-start-route.test.js +++ b/tests/app/api/cases-start-route.test.js @@ -82,6 +82,7 @@ describe("app/api/cases/start route", () => { error: "Provider unavailable", diagnostics: { modelName: "llama3" }, statusCode: 502, + rawResponse: '{"reconstruction":{"summary":""}}', }); const { POST } = await import("@/app/api/cases/start/route.js"); @@ -94,7 +95,9 @@ describe("app/api/cases/start route", () => { ); expect(response.status).toBe(502); - await expect(response.json()).resolves.not.toHaveProperty("stack"); + const body = await response.json(); + expect(body).toHaveProperty("rawResponse"); + expect(body.rawResponse).toBe('{"reconstruction":{"summary":""}}'); }); it("returns structured 500 on malformed JSON", async () => { diff --git a/tests/graph/orchestrator.test.js b/tests/graph/orchestrator.test.js index afef03c..feab265 100644 --- a/tests/graph/orchestrator.test.js +++ b/tests/graph/orchestrator.test.js @@ -531,6 +531,7 @@ describe("lib/graph/orchestrator startCase", () => { analysisErrors: ["socket hang up"], statusCode: 502, }); + expect(result).toHaveProperty("rawResponse"); }); it("returns null selectedQuestion when neither analysis nor graph path yields a question", async () => {