Conversation
Co-Authored-By: yujonglee <yujonglee.dev@gmail.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
✅ Deploy Preview for hyprnote-storybook ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for hyprnote ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughAdds support for the Gladia speech-to-text provider by introducing provider configuration, model mapping ("Solaria 1"), and support text in the settings UI components. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes
Possibly related PRs
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
apps/desktop/src/components/settings/ai/stt/configure.tsx (1)
480-486: LGTM! Gladia provider context follows the existing pattern.The conditional branch for Gladia is implemented correctly and consistently with other providers.
Optional refactor: Consider replacing the deeply nested ternary operators with a lookup map for better readability:
function ProviderContext({ providerId }: { providerId: ProviderId }) { + const providerContent: Record<ProviderId, string> = { + hyprnote: "Hyprnote curates list of on-device models and also cloud models with high-availability and performance.", + deepgram: `Use [Deepgram](https://deepgram.com) for transcriptions. \ + If you want to use a [Dedicated](https://developers.deepgram.com/reference/custom-endpoints#deepgram-dedicated-endpoints) + or [EU](https://developers.deepgram.com/reference/custom-endpoints#eu-endpoints) endpoint, + you can do that in the **advanced** section.`, + soniox: `Use [Soniox](https://soniox.com) for transcriptions.`, + assemblyai: `Use [AssemblyAI](https://www.assemblyai.com) for transcriptions.`, + gladia: `Use [Gladia](https://www.gladia.io) for transcriptions.`, + fireworks: `Use [Fireworks AI](https://fireworks.ai) for transcriptions.`, + custom: `We only support **Deepgram compatible** endpoints for now.`, + }; + - const content = - providerId === "hyprnote" - ? "Hyprnote curates list of on-device models and also cloud models with high-availability and performance." - : providerId === "deepgram" - ? `Use [Deepgram](https://deepgram.com) for transcriptions. \ - If you want to use a [Dedicated](https://developers.deepgram.com/reference/custom-endpoints#deepgram-dedicated-endpoints) - or [EU](https://developers.deepgram.com/reference/custom-endpoints#eu-endpoints) endpoint, - you can do that in the **advanced** section.` - : providerId === "soniox" - ? `Use [Soniox](https://soniox.com) for transcriptions.` - : providerId === "assemblyai" - ? `Use [AssemblyAI](https://www.assemblyai.com) for transcriptions.` - : providerId === "gladia" - ? `Use [Gladia](https://www.gladia.io) for transcriptions.` - : providerId === "fireworks" - ? `Use [Fireworks AI](https://fireworks.ai) for transcriptions.` - : providerId === "custom" - ? `We only support **Deepgram compatible** endpoints for now.` - : ""; + const content = providerContent[providerId] ?? ""; if (!content.trim()) { return null; }
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
apps/desktop/public/assets/gladia.jpegis excluded by!**/*.jpeg
📒 Files selected for processing (2)
apps/desktop/src/components/settings/ai/stt/configure.tsx(1 hunks)apps/desktop/src/components/settings/ai/stt/shared.tsx(2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
**/*.{ts,tsx}: Avoid creating a bunch of types/interfaces if they are not shared. Especially for function props, just inline them instead.
Never do manual state management for form/mutation. Use useForm (from tanstack-form) and useQuery/useMutation (from tanstack-query) instead for 99% of cases. Avoid patterns like setError.
If there are many classNames with conditional logic, usecn(import from@hypr/utils). It is similar toclsx. Always pass an array and split by logical grouping.
Usemotion/reactinstead offramer-motion.
Files:
apps/desktop/src/components/settings/ai/stt/configure.tsxapps/desktop/src/components/settings/ai/stt/shared.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
- GitHub Check: Redirect rules - hyprnote
- GitHub Check: Header rules - hyprnote
- GitHub Check: Pages changed - hyprnote
- GitHub Check: fmt
- GitHub Check: desktop_ci (macos, depot-macos-14)
- GitHub Check: desktop_ci (linux, depot-ubuntu-22.04-8)
- GitHub Check: desktop_ci (linux, depot-ubuntu-24.04-8)
- GitHub Check: Devin
🔇 Additional comments (1)
apps/desktop/src/components/settings/ai/stt/shared.tsx (1)
39-41: Model identifier "solaria-1" is correct per Gladia's official API documentation.The implementation accurately maps "solaria-1" to "Solaria 1" and aligns with Gladia's live/real-time endpoints specification. The identifier is already correctly referenced in the provider configuration.
|
Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it. |
Summary
Adds Gladia as a new speech-to-text provider option in the settings UI. This follows the same pattern as existing providers like Soniox and AssemblyAI.
Changes:
shared.tsxwith base URLhttps://api.gladia.ioand modelsolaria-1solaria-1modelReview & Testing Checklist for Human
https://api.gladia.io) is correct per Gladia's documentationsolaria-1is the correct identifier for Gladia's APINotes
This PR only adds the UI configuration for Gladia. Backend integration in
owhisper-clientmay need to be implemented separately for Gladia to function end-to-end.Link to Devin run: https://app.devin.ai/sessions/a2996b8441c941bba163685f2e1ffed6
Requested by: yujonglee (yujonglee.dev@gmail.com) (@yujonglee)