feat: update Gemini model support with latest Google models#134
Merged
jamiepine merged 8 commits intospacedriveapp:mainfrom Feb 22, 2026
Merged
feat: update Gemini model support with latest Google models#134jamiepine merged 8 commits intospacedriveapp:mainfrom
jamiepine merged 8 commits intospacedriveapp:mainfrom
Conversation
- Upgrade routing defaults: use gemini-2.5-pro for channel/branch (quality tasks) and gemini-2.5-flash for worker/compactor/cortex (speed tasks) - Add fallback chain: gemini-2.5-pro → gemini-2.5-flash → gemini-2.5-flash-lite - Add native Gemini API voice transcription models alongside existing OpenRouter paths Closes spacedriveapp#133
- browser.rs: replace `url::Url` with `reqwest::Url` since the `url` crate is not a direct dependency (reqwest re-exports it) - server.rs: use `State<Arc<ApiState>>` extractor for the auth middleware, required by axum 0.8's `from_fn_with_state`
…MODEL env vars Add environment variable support for custom Anthropic API endpoints and authentication tokens, enabling use with API proxies (LiteLLM, Azure AI Gateway, corporate proxies). New environment variables: - ANTHROPIC_BASE_URL: override the Anthropic API endpoint - ANTHROPIC_AUTH_TOKEN: alternative to ANTHROPIC_API_KEY for proxy auth - SPACEBOT_MODEL: override all process types with a single model Also fixes a bug where build_anthropic_request() hardcoded the API URL instead of using the provider's configured base_url, making custom base URLs via TOML config ineffective. Closes spacedriveapp#132
The VOLUME keyword is banned on Railway deployments. The /data directory is still configured via SPACEBOT_DIR env var — volumes should be mounted via the hosting platform's configuration instead.
Railway requires --mount=type=cache,id=<cache-id> format.
Railway requires cache mount IDs prefixed with a hardcoded service UUID (--mount=type=cache,id=s/<service-id>-<path>), which is incompatible with a generic open-source Dockerfile. Remove all cache mounts since they are a build-speed optimization, not a correctness requirement.
jamiepine
approved these changes
Feb 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
gemini-2.5-profor channel/branch (quality tasks),gemini-2.5-flashfor worker/compactor/cortex (speed tasks)gemini-2.5-pro→gemini-2.5-flash→gemini-2.5-flash-liteDetails
Google has released several new Gemini models. This PR brings Spacebot's Gemini integration up to date:
Routing (
src/llm/routing.rs)Previously, the Gemini provider used
gemini-2.5-flashfor all process types with no fallbacks. Now follows the same pattern as other providers (OpenAI, Mistral, etc.) with proper tiering:gemini-2.5-flashgemini-2.5-progemini-2.5-flashgemini-2.5-flashpro → flash → flash-liteVoice Transcription (
src/api/models.rs)Added native Gemini API model paths for voice transcription. Previously only OpenRouter paths were listed:
Model Catalog
The
models.devcatalog integration already handles automatic discovery of new Gemini models via the"gemini" | "google"→"gemini"provider mapping, so no changes needed there.Test plan
/api/models?capability=voice_transcriptionCloses #133