openclaw/src
stain lu 6ea3cddf0d
fix: register bundled TTS providers and route overrides correctly (#62846) (thanks @stainlu)
* fix(microsoft,elevenlabs): add enabledByDefault so speech providers register at runtime

* fix(tts): route generic directive tokens to the explicitly declared provider

Addresses the P2 Codex review on #62846 that flagged auto-enabling
ElevenLabs as a product regression for MiniMax users. Both providers
claim the generic `speed` token, and parseTtsDirectives walked
providers in autoSelectOrder with first-match-wins, so inputs like
`[[tts:provider=minimax speed=1.2]]` silently routed speed to
providerOverrides.elevenlabs once elevenlabs participated in every
parse pass.

The parser now pre-scans for `provider=` (honoring legacy last-wins
semantics) and routes generic tokens with the declared provider tried
first, falling back to autoSelectOrder when it doesn't handle the key.
Token order inside the directive no longer matters: `speed=1.2` before
or after `provider=minimax` both resolve to MiniMax.

Adds a regression test suite covering the exact ElevenLabs/MiniMax
speed collision plus fallback, mixed-token, last-wins, and
allowProvider-disabled cases. parseTtsDirectives had no prior test
coverage.

* fix(tts): prefer active provider for generic directives

* fix: register bundled TTS providers safely (#62846) (thanks @stainlu)

* fix: use exported TTS SDK seam (#62846) (thanks @stainlu)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-16 15:26:38 +05:30
..
acp Add /trace toggle and fix Active Memory diagnostics 2026-04-12 13:20:22 -05:00
agents fix: align host tilde paths with OS home (#62804) (thanks @stainlu) 2026-04-16 14:37:55 +05:30
auto-reply test: fix upstream type drift 2026-04-15 19:31:10 +01:00
bindings
bootstrap
canvas-host fix: narrow a2ui bundle hash inputs 2026-04-15 00:46:40 +01:00
channels fix(plugins): stabilize bundled setup runtimes (#67200) 2026-04-15 12:35:18 -04:00
chat feat(ui): render assistant directives and add embed tag (#64104) 2026-04-11 07:32:53 -05:00
cli QA: fix private runtime source loading (#67428) 2026-04-15 21:59:16 -04:00
commands fix(agents): preserve cli session metadata before transcript persist (#67490) 2026-04-16 09:30:31 +05:30
compat
config fix(context-window): Tighten context limits and bound memory excerpts (#67277) 2026-04-15 13:06:02 -05:00
context-engine fix(context-engine): gracefully degrade to legacy engine on third-party plugin resolution failure (#66930) 2026-04-15 14:59:29 +08:00
cron fix(cron): suppress trailing NO_REPLY in announce delivery path [AI-assisted] (#65004) 2026-04-15 09:31:35 -07:00
daemon test(perf): speed up slow launchd and sessions specs 2026-04-14 23:34:09 +01:00
docs
flows fix(onboard): normalize channel setup metadata (#66706) 2026-04-14 19:11:52 +01:00
gateway models.authStatus: normalize provider ids + tighten env-backed escape hatch (#67253) 2026-04-15 15:29:26 -07:00
hooks fix(hooks): honor configured ollama slug timeout (#66455) 2026-04-14 10:28:09 +01:00
i18n
image-generation fix(cycles): bulk extract leaf type surfaces 2026-04-11 13:26:50 +01:00
infra QA: fix private dist freshness check 2026-04-16 03:44:40 -04:00
interactive
link-understanding fix(cycles): bulk extract leaf type surfaces 2026-04-11 13:26:50 +01:00
logging fix(discord): raise carbon slow listener threshold 2026-04-15 06:40:14 -07:00
markdown
mcp test: refresh cron and mcp typed fixtures 2026-04-13 20:49:39 -07:00
media fix(context-window): Tighten context limits and bound memory excerpts (#67277) 2026-04-15 13:06:02 -05:00
media-generation test: dedupe media provider tests 2026-04-11 13:55:07 +01:00
media-understanding fix: type media private-network request flag 2026-04-15 04:58:11 +01:00
memory-host-sdk fix(dreaming): default storage.mode to "separate" so phase blocks stop polluting daily memory files (#66412) 2026-04-15 13:49:18 -07:00
music-generation fix(cycles): bulk extract leaf type surfaces 2026-04-11 13:26:50 +01:00
node-host fix(security): remove busybox/toybox from interpreter-like safe bins [AI-assisted] (#65713) 2026-04-13 12:03:15 +05:30
pairing perf(cron): use read-only allow-from store seam 2026-04-13 17:47:05 +01:00
plugin-sdk BlueBubbles/catchup: per-message retry cap for wedged messages (#66870) (#67426) 2026-04-15 22:23:27 -07:00
plugins QA: fix private runtime source loading (#67428) 2026-04-15 21:59:16 -04:00
process test(process): share shimmed windows success assertions 2026-04-12 09:37:06 +01:00
proxy-capture feat(msteams): add federated credential support (certificate + managed identity) (#53615) 2026-04-11 13:29:22 -05:00
realtime-transcription fix(cycles): bulk extract leaf type surfaces 2026-04-11 13:26:50 +01:00
realtime-voice fix(cycles): bulk extract leaf type surfaces 2026-04-11 13:26:50 +01:00
routing perf(cron): use narrow bound-account lookup 2026-04-13 17:57:47 +01:00
scripts fix: bound live video generation smoke 2026-04-14 14:59:01 +01:00
secrets test(perf): speed up slow cron infra and secrets specs 2026-04-15 10:22:43 +01:00
security perf(cron): lazy-load external content runtime 2026-04-13 18:34:04 +01:00
sessions fix(trace command): Improve trace raw diagnostics and trace command UX (#66089) 2026-04-13 14:26:57 -05:00
shared fix: strip standalone <function> tool call tags from visible text (#67318) (thanks @joelnishanth) 2026-04-16 09:53:35 +05:30
status fix: extract shared session status runtime (#65807) 2026-04-13 11:51:26 +02:00
tasks fix(tasks): avoid leaking scheduled sweep failures 2026-04-13 16:26:55 +01:00
terminal fix(terminal): tolerate undefined path in formatDocsLink (#67076, #67074) (#67086) 2026-04-15 23:40:52 +05:30
test-helpers
test-utils fix(cycles): bulk extract leaf type surfaces 2026-04-11 13:26:50 +01:00
tts fix: register bundled TTS providers and route overrides correctly (#62846) (thanks @stainlu) 2026-04-16 15:26:38 +05:30
tui fix(active-memory): Move active memory recall into the hidden prompt prefix (#66144) 2026-04-13 16:05:43 -05:00
types fix(qr): lazy load terminal runtime modules 2026-04-13 15:07:50 +01:00
utils perf(channels): split hot-path message channel normalization 2026-04-13 18:22:12 +01:00
video-generation fix: bound live video generation smoke 2026-04-14 14:59:01 +01:00
web fix(cycles): bulk extract leaf type surfaces 2026-04-11 13:26:50 +01:00
web-fetch fix(cycles): split residual shared type seams 2026-04-11 02:46:40 +01:00
web-search fix(cycles): add remaining seam files 2026-04-11 10:43:22 +01:00
wizard perf(tests): trim hot wizard and infra setup work 2026-04-14 22:42:32 +01:00
browser-lifecycle-cleanup.test.ts
browser-lifecycle-cleanup.ts
channel-web.ts
docker-build-cache.test.ts fix(ci): align docker smoke cache tests and reuse built dist 2026-04-15 12:12:58 +01:00
docker-image-digests.test.ts
docker-setup.e2e.test.ts
dockerfile.test.ts fix(docker): verify matrix-sdk-crypto native addon without hardcoded pnpm path (#65608) (#67143) 2026-04-15 11:37:14 -04:00
entry.respawn.test.ts
entry.respawn.ts
entry.test.ts
entry.ts
entry.version-fast-path.test.ts
extensionAPI.ts
global-state.ts
globals.ts
index.test.ts
index.ts
install-sh-version.test.ts
library.test.ts
library.ts
logger.test.ts
logger.ts
logging.ts
param-key.ts Fix Matrix media alias normalization 2026-04-14 12:36:13 -04:00
plugin-activation-boundary.test.ts test: finish import performance cleanup 2026-04-11 13:55:08 +01:00
poll-params.test.ts
poll-params.ts
polls.test.ts
polls.ts
runtime.ts
ui-app-settings.agents-files-refresh.test.ts
utils.test.ts
utils.ts
version.test.ts
version.ts