Skip to content

Conversation

@HavenDV
Copy link
Contributor

@HavenDV HavenDV commented Sep 13, 2025

Summary by CodeRabbit

  • New Features

    • GET /api/voices now supports filtering by multiple voice providers in a single request using an array-based query parameter.
    • Note: requests should pass providers as an array instead of a single string.
  • Documentation

    • Updated parameter description to reflect plural “providers” and clarified allowed provider values (lmnt, cartesia, google, eleven_labs, inworld).

@coderabbitai
Copy link

coderabbitai bot commented Sep 13, 2025

Walkthrough

Updated the OpenAPI spec for GET /api/voices: the query parameter changed from a single string "provider" to an array "providers" of strings, preserving the same allowed values and adjusting descriptions accordingly.

Changes

Cohort / File(s) Summary of Changes
OpenAPI spec update
src/libs/Ultravox/openapi.yaml
Modified GET /api/voices query parameter: provider (string with enum, minLength: 1) → providers (array of strings with items.enum). Updated description to plural and moved per-item description into items.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant C as Client
    participant API as Ultravox API
    participant VS as Voices Service
    note over C,API: New behavior: multiple provider filters via providers[]
    C->>API: GET /api/voices?providers=google&providers=lmnt
    API->>VS: Fetch voices filtered by {google, lmnt}
    VS-->>API: Filtered voice list
    API-->>C: 200 OK with voices[]
    alt Invalid provider value
        API-->>C: 400 Bad Request (schema validation)
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I twitched my ears at specs so neat,
One string split into many feet—
Providers hop in tidy arrays,
A chorus of voices in burrowed bays.
I stamp, approve, with carrot flair, 🥕
Filters multiplied, handled with care.

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The current title "feat:@coderabbitai" is a short, tag-like string that does not describe the changes introduced in this PR. The changeset updates the OpenAPI spec by changing the GET /api/voices provider query parameter from a single string to an array ("providers"), but the title gives no indication of that main change. Because it is non-descriptive and generic, the title is inconclusive under the repository's title guidelines. Please rename the PR to a concise, descriptive title such as "feat(api): support multiple providers for GET /api/voices" or "docs(openapi): change provider query to array for GET /api/voices"; the title should state the main intent and the area touched so reviewers and changelogs are clear. Update the title before merging to improve traceability and reviewability.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch bot/update-openapi_202509130051

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 51071a3 and 1c3b7d3.

⛔ Files ignored due to path filters (7)
  • src/libs/Ultravox/Generated/Ultravox..JsonSerializerContext.g.cs is excluded by !**/generated/**
  • src/libs/Ultravox/Generated/Ultravox.IVoicesClient.VoicesList.g.cs is excluded by !**/generated/**
  • src/libs/Ultravox/Generated/Ultravox.JsonConverters.VoicesListProviderItem.g.cs is excluded by !**/generated/**
  • src/libs/Ultravox/Generated/Ultravox.JsonConverters.VoicesListProviderItemNullable.g.cs is excluded by !**/generated/**
  • src/libs/Ultravox/Generated/Ultravox.JsonSerializerContextTypes.g.cs is excluded by !**/generated/**
  • src/libs/Ultravox/Generated/Ultravox.Models.VoicesListProviderItem.g.cs is excluded by !**/generated/**
  • src/libs/Ultravox/Generated/Ultravox.VoicesClient.VoicesList.g.cs is excluded by !**/generated/**
📒 Files selected for processing (1)
  • src/libs/Ultravox/openapi.yaml (1 hunks)
🔇 Additional comments (1)
src/libs/Ultravox/openapi.yaml (1)

2196-2210: Keep the query param name "provider" (don’t rename); make array serialization explicit.

  • Evidence: generated client uses "provider" and serializes arrays with explode:true (src/libs/Ultravox/Generated/Ultravox.VoicesClient.VoicesList.g.cs line ~79). Renaming to "providers" would be a breaking change.
  • Action: update src/libs/Ultravox/openapi.yaml (the /api/voices query param at ~lines 2196–2210) to keep name: provider and explicitly set style: form, explode: true; add schema.minItems: 1 and an example (e.g. [lmnt, google]) to prevent empty arrays.

Likely an incorrect or invalid review comment.

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


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.

@github-actions github-actions bot merged commit 088ac11 into main Sep 13, 2025
3 of 4 checks passed
@github-actions github-actions bot deleted the bot/update-openapi_202509130051 branch September 13, 2025 00:52
@coderabbitai coderabbitai bot changed the title feat:@coderabbitai feat:Update OpenAPI for GET /api/voices: provider to providers array Sep 13, 2025
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