Davemaina1 bets the whole stack on Anthropic

The fork rips out multi-vendor AI support and replaces the model picker with a three-button mode selector.

chat-uiinfrastructure

Davemaina1 has hard-wired Anthropic - the maker of Claude - as the only AI engine this fork will talk to. The Google Gemini path is fenced off at every layer, and the old model-picker dropdown (where users chose between providers) is gone. In its place sits a clean three-button choice: Quick, Deep, or Draft. The fork picks the right model for each mode behind the scenes, and Draft mode quietly layers in extra instructions tuned for drafting work.

A second commit tightens a related rough edge: Claude's "extended thinking" feature, which lets the model reason for longer on hard questions, is now restricted to the top-tier Opus model that actually supports it. Cheaper Claude variants used to error out when asked to think; that can no longer happen here.

So what Legal-tech buyers evaluating Mike-based products should know this fork has chosen single-vendor simplicity over flexibility - and that its mode-based UX is arguably friendlier than picking a model by name.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

2 commits from Davemaina1/iroh_, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
1f973e7d fix: force all chat to Claude - runtime guards + remove Gemini fallback in resolveTitleModel Davemaina1 2026-05-12 ↗ GitHub
commit body
- 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>
4fbd7517 fix: gate extended thinking to Opus models only Davemaina1 2026-05-12 ↗ GitHub
commit body
Haiku (and Sonnet) reject the thinking parameter - only claude-opus-*
supports adaptive thinking. Guard at two layers:
- chatTools.ts: derive enableThinking from selectedModel.startsWith("claude-opus")
  so the flag is false for Quick (Haiku) and true for Deep/Draft (Opus)
- claude.ts: secondary guard on both the flag and model name so a
  misconfigured caller can never send thinking to a non-Opus model;
  same guard on the stream.on("thinking") listener for consistency

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-376.md from inside the repo you want the changes in.

⬇ Download capture-thread-376.md