Skip to content

Commit 137dd13

Browse files
Michael Borckclaude
andcommitted
Merge refactor/deepen-architecture: deepen settings, session, providers, search
Three-phase architecture refactor (net -245 lines), build + lint green: Phase 1 unified the settings schema behind one module with per-request resolveSettings; Phase 2 added the prepareSession module and a single prompt builder, fixing the mid-session stale-prompt bug; Phase 3 added a shared provider streaming core and a SearchProvider seam, deleting the dead TogetherAIStream.ts. Also fixes a pre-existing react-hooks/exhaustive-deps warning in Chat.tsx. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 parents 4aca7ef + e372f75 commit 137dd13

28 files changed

Lines changed: 1279 additions & 1524 deletions

app/api/getChat/route.ts

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,21 @@ import {
22
createProvider,
33
LLMStreamPayload,
44
} from "@/utils/providers";
5-
import { getSettings } from "@/utils/settings";
5+
import { resolveSettings } from "@/utils/settings";
66

77
export async function POST(request: Request) {
88
let { messages } = await request.json();
99

1010
try {
11-
// First, try to get settings from request headers (if frontend sends them)
12-
const settingsHeader = request.headers.get('X-StudyBuddy-Settings');
13-
if (settingsHeader) {
14-
try {
15-
const frontendSettings = JSON.parse(settingsHeader);
16-
const { updateSettings } = await import("@/utils/settings");
17-
updateSettings(frontendSettings);
18-
console.log('Applied frontend settings:', frontendSettings.llmProvider);
19-
} catch (e) {
20-
console.warn('Failed to parse frontend settings:', e);
21-
}
22-
}
23-
24-
const settings = getSettings();
25-
console.log('Using settings:', {
26-
provider: settings.llmProvider,
27-
baseUrl: settings.llmBaseUrl,
28-
model: settings.llmModel,
29-
hasApiKey: !!settings.llmApiKey
30-
});
31-
32-
const provider = createProvider(); // Will use runtime settings
33-
11+
const settings = resolveSettings(request);
12+
const provider = createProvider(settings);
13+
3414
const payload: LLMStreamPayload = {
3515
model: settings.llmModel,
3616
messages,
3717
stream: true,
3818
};
39-
19+
4020
const stream = await provider.stream(payload);
4121

4222
return new Response(stream, {

0 commit comments

Comments
 (0)