Edu-Carone-SA puts DeepSeek in sole charge of Mike's AI

This fork makes a decisive cost-and-simplicity bet by replacing its multi-provider model choice with DeepSeek alone.

infrastructurechat-ui

Edu-Carone-SA first added DeepSeek's Pro and Flash models, then removed Anthropic, Google and OpenAI options from the product's model selection and settings. DeepSeek is now the only production AI provider in this fork.

The transition also exposed and fixed operational gaps: the team corrected database permissions and provider validation, refreshed outdated defaults, and added stronger handling for background errors. Users can also check whether a saved provider key is working before relying on it.

This is a clear product fork, not a neutral technical upgrade: it trades provider choice and model-specific strengths for a single-provider operating model.

So what Legal teams watching AI spend or seeking a simpler stack should look closer; teams that need model choice should treat this as a deliberate divergence.

View this fork on GitHub →

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

Commits in this thread

4 commits from Edu-Carone-SA/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
d769a4ff feat(llm): add DeepSeek V4 Pro/Flash as LLM provider (#9) EduardoCarone 2026-07-11 ↗ GitHub
commit body
- New Chat Completions adapter (deepseek.ts) with streaming, tool calls,
  and thinking/reasoning support via DeepSeek API
- Add deepseek-v4-pro (main tier) and deepseek-v4-flash (mid/low tier)
- Add DEEPSEEK_API_KEY to env schema, userApiKeys, userSettings
- Frontend: model picker, API keys page, model availability, user profile
- Tests: env, logger, env-isolation updated for new provider
- Docs: ENVIRONMENT-VARIABLES.md updated

DeepSeek API is OpenAI-compatible but uses Chat Completions API
(/v1/chat/completions) not Responses API (/v1/responses), so a separate
adapter is required.

Co-authored-by: Januário <januario@Januarios-Mac-mini.local>
6f61fcde fix(llm): fix service_role grants, deepseek constraint, async errors, model picker (#10) EduardoCarone 2026-07-11 ↗ GitHub
commit body
- GRANT service_role TO authenticator (PostgREST SET ROLE fix)
- GRANT ALL privileges to service_role on public schema
- Add 'deepseek' to user_api_keys provider CHECK constraint
- Install express-async-errors + centralized error handler
- Model picker shows only DeepSeek models (remove Claude/Gemini/OpenAI)
- Default models changed to deepseek-v4-pro/flash
- Frontend fallbacks updated to DeepSeek models

Fixes: MIKE-DIAG-LLM-KEYS-01 root causes 1-6

Co-authored-by: Januário <januario@Januarios-Mac-mini.local>
2cc67cce docs(sprint): document MIKE-FIX-LLM-PRODUCTION-01 results (#11) EduardoCarone 2026-07-11 ↗ GitHub
Co-authored-by: Januário <januario@Januarios-Mac-mini.local>
5359c00e MIKE-FIX-LLM: make DeepSeek the only production model and fix API key flow (#12) EduardoCarone 2026-07-11 ↗ GitHub
commit body
* docs(sprint): document MIKE-FIX-LLM-PRODUCTION-01 results

* fix(llm): resilient api key status, health check, settings UI, tests

- getUserApiKeyStatus returns partial status on DB failure (no throw)
- getUserApiKeySuffix for masked key display
- POST /user/api-keys/:provider/health endpoint
- Settings UI: managed/personal/not-configured states
- Test key button with health status display
- 11 new tests (async error handling + api key resilience)
- Remove non-DeepSeek providers from Settings page

Total: 238 tests (153 backend + 85 frontend)

---------

Co-authored-by: Januário <januario@Januarios-Mac-mini.local>

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-969.md from inside the repo you want the changes in.

⬇ Download capture-thread-969.md