fix: force all chat to Claude - runtime guards + remove Gemini fallback in resolveTitleModel

↗ view on GitHub · Davemaina1 · 2026-05-12 · 1f973e7d

- gemini.ts: throw [Iroh] guard at top of streamGemini and completeGeminiText; add @ts-nocheck since dead code is preserved for later removal
- llm/index.ts: toClaudeParams uses QUICK_MODEL explicitly and console.warns on coercion; completeText same
- chatTools.ts: runLLMStream guards selectedModel with startsWith("claude") check + QUICK_MODEL fallback, warns if coerced; imports QUICK_MODEL directly
- models.ts: add QUICK_MODEL/DEEP_MODEL/DRAFT_MODEL constants, modeToModel(), update defaults to Claude
- userSettings.ts: resolveTitleModel always returns QUICK_MODEL - drop Gemini branch entirely
- chat.ts / projectChat.ts: read mode from request body, compute model via modeToModel(), inject DRAFT_SYSTEM_PROMPT_EXTRA for draft mode, remove getUserApiKeys calls
- Frontend: replace ModelToggle dropdown with ModeToggle 3-button segment (Quick/Deep/Draft); useSelectedMode hook; mode field on MikeMessage; account/models page disabled with Iroh notice

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Repository Davemaina1/iroh_
Author Davemaina1 <dmain7015@gmail.com>
Authored
Parents 2d369731
Stats 14 files changed , +164 , -83
Part of Claude-only provider lock-in (no Gemini, Opus-gated thinking)

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-1f973e7d.md from inside the repo you want the change in.

⬇ Download capture-commit-1f973e7d.md