Repository navigation
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This branch has not been deployed
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.
Pull Request
Description
Adds Runcrate as a preset model provider in the add-platform picker. Runcrate serves an OpenAI-compatible inference API at
https://api.runcrate.ai/v1(/chat/completionswith streaming and tools,/models), so the entry uses the existingcustomplatform with that base URL and needs no new code paths.Users pick "Runcrate" in the list, paste a key from the API keys page (keys look like
rc_live_...) and fetch models. Model ids arevendor/model, for exampledeepseek-ai/DeepSeek-V4.1-Flash,zai-org/GLM-5.3-FlashorQwen/Qwen3.8-Flash; the full list is on the model pricing page.The change mirrors the shape of #4275: one entry appended to
MODEL_PLATFORMS, a logo bundled underrenderer/assets/logos/(the backend logo service has no asset for it, so it is imported locally), and unit tests for the entry.Files:
packages/desktop/src/renderer/utils/model/modelPlatforms.ts: newRuncrateentry (platform: 'custom',base_url: 'https://api.runcrate.ai/v1').packages/desktop/src/renderer/assets/logos/runcrate.svg: 24x24 logo.tests/unit/renderer/modelPlatforms.test.ts: tests that the entry points at the OpenAI-compatible endpoint and is returned bygetPresetProviders()with a logo.Related Issues
Type of Change
fix: Bug fix (non-breaking change which fixes an issue)feat: New feature (non-breaking change which adds functionality)perf: Performance improvementrefactor: Code restructuring (no behavior change)docs: Documentation updateAtomic PR Checklist (Rule 1)
<type>(<scope>): <subject>(English)Local Checks (Rule 3)
bun run format: formatting passes (bunx oxfmt --checkon the touched files: all use the correct format)bun run lint: no lint errors (bunx oxlinton the touched files: 0 warnings, 0 errors)bunx tsc --noEmit: no type errors (exit 0)bunx vitest run: tests pass (bunx vitest run tests/unit/renderer/modelPlatforms.test.ts: 5 passed)i18nKey, like the other preset providers)Runtime Verification
The desktop app was not launched. Instead, the request path the app uses for a
customplatform was run directly:ClientFactory.createRotatingClientwithplatform: 'custom'andbase_url: 'https://api.runcrate.ai/v1', thencreateChatCompletionandmodels.list(), from a throwaway script withbun runon macOS:deepseek-ai/DeepSeek-V4.1-Flash: chat completion returned,finish_reason=stop, text"pong"zai-org/GLM-5.3-Flash: chat completion returned,finish_reason=stop, text"pong"models.list(): 197 modelsScreenshots
None.
Additional Context
This PR was prepared with AI assistance: an AI coding agent wrote the change and ran the checks above. The commit carries no AI signature.
Disclosure: I work on Runcrate.