The SDK shipped three major versions in quick succession, fundamentally reshaping the API surface. In late March, @elevenlabs/client and @elevenlabs/react introduced breaking changes: the Input class disappeared in favor of methods like getInputByteFrequencyData() and setMicMuted() on the conversation object, while useConversation now requires a ConversationProvider ancestor and exposes granular hooks (useConversationControls, useConversationStatus, etc.) instead of a monolithic return shape. @elevenlabs/react-native underwent a complete rewrite, ditching its custom LiveKit-based provider to re-export the React package's API, with side-effects on import to polyfill WebRTC and configure native audio. After stabilization in early April, the SDK focused on multimodal and feature refinement: sendMultimodalMessage surfaced in hook controls, tool response mocking landed in the client, and the widget gained intelligent language auto-selection from localStorage and browser preferences. A late-April fix addressed Node.js ESM compatibility by switching to explicit .js file extensions in imports.
March delivered two major API overhauls. Early in the month, guardrail detection arrived via onGuardrailTriggered callback and type discriminants for TextConversation and VoiceConversation, letting developers distinguish conversation modes at compile time. Mid-month, v1.0.0 releases rewrote the React and React Native packages: useConversation now requires ConversationProvider context, the Input class was removed in favor of conversation methods like getInputByteFrequencyData() and setMicMuted(), and @elevenlabs/react now re-exports all of @elevenlabs/client to unify the surface. By month-end, tool response mocking shipped in the client, enabling agents to validate integrations without live backend calls.