Skip to content

fix(rime): remove Arcana model support - #2253

Open
naszzz wants to merge 3 commits into
livekit:mainfrom
naszzz:rime-arcana-migration
Open

fix(rime): remove Arcana model support#2253
naszzz wants to merge 3 commits into
livekit:mainfrom
naszzz:rime-arcana-migration

Conversation

@naszzz

@naszzz naszzz commented Aug 10, 2026

Copy link
Copy Markdown

Summary

  • Remove Arcana from the Rime plugin runtime paths, public model types, examples, and tests.
  • Change the no-argument Rime TTS model to Coda while keeping the existing Luna speaker.
  • Keep Lyra for callers that explicitly select Coda without a speaker.
  • Apply repetition_penalty, temperature, top_p, max_tokens, and other supported request controls to Coda.
  • Add a release changeset with the migration deadline.

⚠️ Rime's public cloud cutoff is August 15, 2026 at 12:00 UTC. Set modelId to coda when you upgrade. Luna is available on Coda, so the no-argument path keeps its established speaker for voice continuity.

Migration notice: https://docs.rime.ai/docs/arcana-sunset

@naszzz
naszzz requested a review from a team as a code owner August 10, 2026 19:29
@changeset-bot

changeset-bot Bot commented Aug 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 1e6af9c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 39 packages
Name Type
@livekit/agents Major
@livekit/agents-plugin-rime Major
@livekit/agents-plugin-anam Major
@livekit/agents-plugin-anthropic Major
@livekit/agents-plugin-assemblyai Major
@livekit/agents-plugin-azure Major
@livekit/agents-plugin-baseten Major
@livekit/agents-plugin-bey Major
@livekit/agents-plugin-cartesia Major
@livekit/agents-plugin-cerebras Major
@livekit/agents-plugin-deepgram Major
@livekit/agents-plugin-did Major
@livekit/agents-plugin-elevenlabs Major
@livekit/agents-plugin-fishaudio Major
@livekit/agents-plugin-google Major
@livekit/agents-plugin-hedra Major
@livekit/agents-plugin-hume Major
@livekit/agents-plugin-inworld Major
@livekit/agents-plugin-krisp Major
@livekit/agents-plugin-lemonslice Major
@livekit/agents-plugin-liveavatar Major
@livekit/agents-plugin-livekit Major
@livekit/agents-plugin-minimax Major
@livekit/agents-plugin-mistral Major
@livekit/agents-plugin-mistralai Major
@livekit/agents-plugin-neuphonic Major
@livekit/agents-plugin-openai Major
@livekit/agents-plugin-perplexity Major
@livekit/agents-plugin-phonic Major
@livekit/agents-plugin-protoface Major
@livekit/agents-plugin-resemble Major
@livekit/agents-plugin-runway Major
@livekit/agents-plugin-sarvam Major
@livekit/agents-plugin-silero Major
@livekit/agents-plugin-soniox Major
@livekit/agents-plugin-tavus Major
@livekit/agents-plugins-test Major
@livekit/agents-plugin-trugen Major
@livekit/agents-plugin-xai Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@naszzz
naszzz force-pushed the rime-arcana-migration branch from c40bc26 to 1e6af9c Compare August 12, 2026 03:00
@naszzz naszzz changed the title fix(rime): migrate Arcana defaults to Coda fix(rime): remove Arcana model support Aug 12, 2026

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View 4 additional findings in Devin Review.

Open in Devin Review

Comment thread plugins/rime/src/tts.ts
Comment on lines +92 to 97
if (opts.modelId === 'coda') {
if (opts.repetition_penalty !== undefined) params.repetition_penalty = opts.repetition_penalty;
if (opts.temperature !== undefined) params.temperature = opts.temperature;
if (opts.top_p !== undefined) params.top_p = opts.top_p;
if (opts.max_tokens !== undefined) params.max_tokens = opts.max_tokens;
if (opts.timeScaleFactor !== undefined) params.timeScaleFactor = opts.timeScaleFactor;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Voice tuning settings are silently ignored when the older Rime voice model is still selected

Tuning values such as speed, randomness and length limits are dropped from the request (modelParams at plugins/rime/src/tts.ts:92-109) whenever the older arcana model name is passed, so speech is generated with default settings instead of the configured ones and no error is raised.
Impact: Users who still specify the old Rime model get audio that ignores their configured voice tuning, with no warning.

Parameter branch no longer matches the legacy model id

modelId is typed TTSModels | string (plugins/rime/src/tts.ts:56), so 'arcana' is still accepted at runtime even though it was removed from the TTSModels union (plugins/rime/src/models.ts:6). Previously modelParams had an opts.modelId === 'arcana' branch that forwarded repetition_penalty, temperature, top_p, max_tokens and timeScaleFactor. After this change only 'coda' and *mist* are matched, so an arcana request falls through and emits only lang. Those keys are also explicitly excluded from the passthrough loop in fetchPayload (plugins/rime/src/tts.ts:139-144), so they cannot reach the payload by any other route. The result is a silently under-configured request rather than an explicit error, which contradicts the stated intent of keeping the legacy runtime path working during the compatibility window. Either restore the legacy branch or reject the legacy model id with a clear error.

Prompt for agents
In plugins/rime/src/tts.ts, modelParams() previously had a dedicated branch for modelId === 'arcana' that forwarded repetition_penalty, temperature, top_p, max_tokens and timeScaleFactor. That branch was removed and replaced by a 'coda' branch, but modelId is typed `TTSModels | string`, so callers can still pass 'arcana' at runtime. Because those keys are also on the exclusion list in fetchPayload(), an 'arcana' request now silently loses all of its tuning parameters. Decide on an explicit behavior: either keep forwarding the same parameter set for 'arcana' during the compatibility window, or fail fast in resolveOptions() with a clear error telling the caller to switch to 'coda'.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Intentional under the revised scope. This PR now removes Arcana runtime support and directs users to Coda.

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