Add local Ollama/Qwen support through the OpenAI-compatible provider
From the PR description
Summary
- add OpenAI-compatible local runtime support for self-hosted endpoints like Ollama
- add Qwen model options in Mike's model picker and document the Docker-plus-native-Ollama setup
- make the OpenAI-compatible path stream local model output incrementally so Mike surfaces answers instead of appearing blank while Ollama is still generating
What changed
- made the OpenAI adapter configurable via
OPENAI_COMPAT_BASE_URL,OPENAI_COMPAT_MODEL, andOPENAI_COMPAT_ENDPOINT_MODE - added support for chat-completions style OpenAI-compatible backends used by Ollama and vLLM
- treated env-configured OpenAI-compatible runtimes as available even without a hosted OpenAI API key
- added Qwen 3 8B and 14B options to the model picker
- documented the local Docker app stack plus native Ollama workflow for testing Mike locally
Validation
npm run build --prefix backend- local Docker stack rebuilt with the Ollama-compatible env path
- verified local Supabase keys were wired into the Docker env files for the local dev stack
Notes
- frontend lint still reports existing repo-wide issues unrelated to this branch
- this branch is intentionally scoped to local inference enablement first; broader benchmark work can build on top
Screenshot

Our analysis
Add OpenAI-compatible local inference for Ollama and Qwen — read the full analysis →
Think the analysis missed something the PR description covers?
Commits in this PR (2)
| SHA | Subject | Author | Date | |
|---|---|---|---|---|
39cdf1ca | chore: local setup - swap R2 for Supabase Storage, install frontend deps | Punyaslok Dutta | 2026-05-09 | ↗ GitHub |
commit body- storage.ts: replaced @aws-sdk/client-s3 + R2 with Supabase Storage (upload, download, delete, signed URLs all via @supabase/supabase-js) - .env.example: removed R2 vars, added STORAGE_BUCKET=mike - frontend/package-lock.json: updated after npm install --legacy-peer-deps Local setup recap: - Backend :3001, frontend :3000 - Supabase project: gbdfkvaigunfvrgurkwk (ap-northeast-1 Tokyo) - Storage bucket: mike (private, Supabase Storage) - DB schema applied via 000_one_shot_schema.sql - AI provider: Gemini - Secrets in .env / .env.local - gitignored, not committed Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | ||||
4e73a45d | Merge remote-tracking branch 'origin/main' | Punyaslok Dutta | 2026-05-09 | ↗ GitHub |
Capture this PR into my fork
Download a Markdown prompt that tells Claude how to port every
commit in this PR into your working tree. Run it via
claude -p < capture-pull-122.md from
inside the repo you want the changes in.