Skip to content

Conversation

@yujonglee
Copy link
Contributor

@yujonglee yujonglee commented Dec 4, 2025

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:

  • Added Gladia to the PROVIDERS array in shared.tsx with base URL https://api.gladia.io and model solaria-1
  • Added display name mapping for the solaria-1 model
  • Added Gladia description in the provider configuration panel
  • Added Gladia logo to assets

Review & Testing Checklist for Human

  • Verify the Gladia API base URL (https://api.gladia.io) is correct per Gladia's documentation
  • Verify the model name solaria-1 is the correct identifier for Gladia's API
  • Confirm the logo displays correctly in the provider selection dropdown
  • Test that the Gladia provider card expands and accepts API key input

Notes

This PR only adds the UI configuration for Gladia. Backend integration in owhisper-client may 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 ([email protected]) (@yujonglee)

@devin-ai-integration
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@netlify
Copy link

netlify bot commented Dec 4, 2025

Deploy Preview for hyprnote-storybook ready!

Name Link
🔨 Latest commit 10fdb3b
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/69319495f7731e0008e93d85
😎 Deploy Preview https://deploy-preview-2119--hyprnote-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Dec 4, 2025

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit 10fdb3b
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/69319495f19aff000883a727
😎 Deploy Preview https://deploy-preview-2119--hyprnote.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 4, 2025

📝 Walkthrough

Walkthrough

Adds 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

Cohort / File(s) Summary
Gladia STT provider configuration
apps/desktop/src/components/settings/ai/stt/shared.tsx
Added new Gladia provider entry to PROVIDERS with id "gladia", displayName "Gladia", baseUrl "https://api.gladia.io", and model ["solaria-1"]; added displayModelId mapping to return "Solaria 1" for model "solaria-1"
Gladia provider UI support text
apps/desktop/src/components/settings/ai/stt/configure.tsx
Added conditional case in ProviderContext content mapping for providerId === "gladia" returning a Gladia transcription provider link

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Verify Gladia provider configuration (baseUrl, model ID, icon asset) is correct
  • Confirm displayModelId mapping aligns with expected model identifier
  • Check ProviderContext link and support text content for accuracy

Possibly related PRs

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat: add Gladia as STT provider' directly and clearly summarizes the main change: adding Gladia as a speech-to-text provider option.
Description check ✅ Passed The description is well-related to the changeset, explaining what was added (Gladia provider support), which files were modified, and providing context about testing and backend integration needs.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch devin/1764856513-add-gladia-stt

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 571e632 and 10fdb3b.

⛔ Files ignored due to path filters (1)
  • apps/desktop/public/assets/gladia.jpeg is 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, use cn (import from @hypr/utils). It is similar to clsx. Always pass an array and split by logical grouping.
Use motion/react instead of framer-motion.

Files:

  • apps/desktop/src/components/settings/ai/stt/configure.tsx
  • apps/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-ai-integration
Copy link
Contributor

Devin is archived and cannot be woken up. Please unarchive Devin if you want to continue using it.

@yujonglee yujonglee merged commit ccd6ebd into main Dec 4, 2025
16 of 17 checks passed
@yujonglee yujonglee deleted the devin/1764856513-add-gladia-stt branch December 4, 2025 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants