Skip to content

Talk: handle redacted ElevenLabs API key on iOS/macOS#14645

Closed
oswalpalash wants to merge 3 commits into
openclaw:mainfrom
oswalpalash:fix/talk-elevenlabs-redaction
Closed

Talk: handle redacted ElevenLabs API key on iOS/macOS#14645
oswalpalash wants to merge 3 commits into
openclaw:mainfrom
oswalpalash:fix/talk-elevenlabs-redaction

Conversation

@oswalpalash

@oswalpalash oswalpalash commented Feb 12, 2026

Copy link
Copy Markdown
Contributor

Fix Talk mode TTS fallback when gateway returns redacted config values.
iOS and macOS now handle redacted talk.apiKey correctly instead of silently dropping to system voice.

Greptile Overview

Greptile Summary

This PR improves Talk-mode TTS key resolution when the gateway redacts sensitive config values.

  • iOS: adds a Keychain-backed local override for the ElevenLabs API key (GatewaySettingsStore + Settings UI), and updates TalkModeManager.reloadConfig() to treat the __OPENCLAW_REDACTED__ sentinel as “missing” and optionally use the local override.
  • macOS: adds API key normalization (empty/sentinel/${...} placeholders) and resolves the final key via env → gateway → local config file, logging when a redacted value is detected.

Overall this aligns mobile/desktop behavior so Talk mode doesn’t silently fall back to system voice when the gateway returns redacted talk.apiKey.

Confidence Score: 4/5

  • This PR is close to safe to merge, but iOS key normalization likely needs one additional fix to avoid treating placeholder strings as real API keys.
  • Changes are small and localized, and macOS adds robust normalization for redacted/sentinel/placeholder keys. The main remaining concern is iOS reloadConfig() only filters the redaction sentinel; if the gateway/config uses ${...} placeholders, iOS will pass that through to ElevenLabs calls and fail consistently.
  • apps/ios/Sources/Voice/TalkModeManager.swift

@greptile-apps greptile-apps 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.

4 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment thread apps/ios/Sources/Voice/TalkModeManager.swift Outdated
@mbelinky

Copy link
Copy Markdown
Contributor

Merging into new alpha code path, thank you @oswalpalash.

Ported into ios-new-alpha-core with attribution preserved (cherry-pick):

@mbelinky mbelinky closed this Feb 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants