fix(confidence-engine): resolve model for episode reasoning

This commit is contained in:
2026-09-01 13:24:37 +01:00
parent d22c992f60
commit 76c6096905
2 changed files with 54 additions and 1 deletions
@@ -155,4 +155,42 @@ describe("episode reasoning seam (reconsiderCompletedEpisode)", () => {
expect(TEST_EPISODE.situationGraph.nodes.length).toBe(1);
});
it("resolves configured model via assertConfig fallback when no deps model is injected", async () => {
// Set minimal env vars for assertConfig to succeed in this specific test
const prevBaseUrl = process.env.OLLAMA_BASE_URL;
const prevModel = process.env.OLLAMA_MODEL;
process.env.OLLAMA_BASE_URL = "http://localhost:11434";
process.env.OLLAMA_MODEL = "test-model";
const modelCaptured = [];
const provider = {
generateReconstruction: vi.fn().mockImplementation((prompt, model) => {
modelCaptured.push(model);
return makeProposalResponse();
}),
};
// Reset modules so assertConfig reads fresh env vars
await vi.resetModules();
const { reconsiderCompletedEpisode } = await import("@/lib/graph/orchestrator.js");
// Empty deps — matches route.js call: reconsiderCompletedEpisode(prepared)
// The fix ensures assertConfig() provides a model instead of leaving it null
const result = await reconsiderCompletedEpisode(
{ ...TEST_EPISODE, provider },
{},
);
expect(result.success).toBe(true);
expect(modelCaptured.length).toBe(1);
expect(modelCaptured[0]).not.toBeNull();
expect(typeof modelCaptured[0]).toBe("string");
// Restore env
if (prevBaseUrl == null) delete process.env.OLLAMA_BASE_URL;
else process.env.OLLAMA_BASE_URL = prevBaseUrl;
if (prevModel == null) delete process.env.OLLAMA_MODEL;
else process.env.OLLAMA_MODEL = prevModel;
});
});