Olava-only lockdown: Anthropic and Gemini stripped from model picker
A -283/+99 commit across 22 files that commits the fork to a single-provider product. The model picker now shows only "Olava-001", the API-key entry UI is gone entirely, all defaults route to `olava-extract`, and the LLM router coerces any non-Olava model ID (from stale localStorage or DB rows) back to the default at the server layer.
The coercion happens in backend/src/lib/llm/index.ts via a new coerceToOlava() wrapper applied before every streamChatWithTools and completeText dispatch. If providerForModel() throws on an unknown ID, or returns something other than "olava", the params object is rebaked with DEFAULT_MAIN_MODEL. This is a pragmatic defense against old gemini-3-flash-preview or claude-sonnet-4-6 values lingering in the database from before the migration.
DEFAULT_MAIN_MODEL, DEFAULT_TITLE_MODEL, and DEFAULT_TABULAR_MODEL in models.ts all point to "olava-extract". The updateApiKey endpoint is removed - no callers remain because users no longer bring their own keys. Olava is configured server-side via OLAVA_BASE_URL and OLAVA_AUTH_TOKEN, and the ApiKeyMissingModal text now explains this instead of prompting for a key.
Brand sweep: Finch renamed to Olava in startup logs, system prompts, the DOCX tracked-changes author field, Workflows source column labels, search class names, sidebar title, and legal links pointed to onit.com/services-agreement/ and onit.com/privacy-cookies/.
claude.ts and gemini.ts still exist in the codebase but aren't exercised in production. Any downstream commits from this fork that reference Anthropic/Gemini message shapes may be dead paths.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?