livekit-agents@1.4.2
livekit/agentslivekit-agents@1.4.2Feb 17, 2026by theomonnom
AI Summary
Stability-focused release with significant reliability improvements. Multiple memory leaks in the process pool have been fixed, IPC pipeline reliability improved, and edge-case hangs resolved. New RecordingOptions API provides granular control over session recording.
Key Highlights
- Fix multiple memory leaks in process pool (job counter, pending assignments, socket, orphaned executors)
- Improve IPC pipeline reliability
- Fix STT/TTS fallback behavior (skip main stream during recovery, no resampler sharing)
- Fix ChatContext.truncate dropping developer messages
- Workers automatically reject jobs when draining or full
- New granular RecordingOptions API
New Features
- New RecordingOptions API with granular control (audio, traces, logs, transcript)
- Sarvam v3 STT and TTS models
- Neuphonic jwt_token auth option
- Google STT voice activity timeout
- Inworld TTS auto mode
- Browser plugin with navigation RPCs
Full Release Notes
Stability-focused release with significant reliability improvements. Fixes multiple memory leaks in the process pool — job counter leaks on cancellation, pending assignment leaks on timeout, socket leaks on startup failure, and orphaned executors on send failure. IPC pipeline reliability has been improved, and several edge-case hangs have been resolved (participant never joining, Ctrl+C propagation to child processes). STT/TTS fallback behavior is now more robust: STT fallback correctly skips the main stream during recovery, and TTS fallback no longer shares resamplers across streams. Other fixes include ChatContext.truncate no longer dropping developer messages, correct cgroups v2 CPU quota parsing, proper on_session_end callback ordering, and log uploads even when sessions fail to start. Workers now automatically reject jobs when draining or full, and the proc pool correctly spawns processes under high load.
### New `RecordingOptions` API
The `record` parameter on `AgentSession.start()` now accepts granular options in addition to `bool`. All keys default to `True` when omitted.
```python
# record everything (default)
await session.start(agent, record=True)
# record nothing
await session.start(agent, record=False)
# granular: record audio but disable traces, logs, and transcript
await session.start(agent, record={"audio": True, "traces": False, "logs": False, "transcript": False})
```
## What's Changed
* fix multichannel input on speaking rate by @theomonnom in https://github.com/livekit/agents/pull/4740
* livekit-agents 1.4.1 by @theomonnom in https://github.com/livekit/agents/pull/4742
* fix ruff & type checks by @theomonnom in https://github.com/livekit/agents/pull/4743
* rename camb plugin to cambai by @tinalenguyen in https://github.com/livekit/agents/pull/4744
* fix ruff by @davidzhao in https://github.com/livekit/agents/pull/4749
* (liveavatar): change avatar mode from CUSTOM to LITE by @tinalenguyen in https://github.com/livekit/agents/pull/4748
* sarvam v3:stt and tts models by @dhruvladia-sarvam in https://github.com/livekit/agents/pull/4603
* export ToolContext by @theomonnom in https://github.com/livekit/agents/pull/4750
* fix: correct typo 'occured' to 'occurred' by @thecaptain789 in https://github.com/livekit/agents/pull/4751
* fix: correct typo 'dont't' to 'don't' by @thecaptain789 in https://github.com/livekit/agents/pull/4752
* Add jwt_token auth option for Neuphonic by @alexshelkov in https://github.com/livekit/agents/pull/4734
* fix get_event_loop on py3.14 by @theomonnom in https://github.com/livekit/agents/pull/4757
* feat: add missing OpenTelemetry GenAI attributes (gen_ai.provider.name, gen_ai.operation.name) by @Mr-Neutr0n in https://github.com/livekit/agents/pull/4759
* add input_details to SpeechHandle by @longcw in https://github.com/livekit/agents/pull/4701
* suppress tee aclose exception by @chenghao-mou in https://github.com/livekit/agents/pull/4766
* fix 3.14 syntax warning by @chenghao-mou in https://github.com/livekit/agents/pull/4763
* update issue template community link by @tinalenguyen in https://github.com/livekit/agents/pull/4772
* remove browser plugin by @theomonnom in https://github.com/livekit/agents/pull/4760
* write_int signed by @theomonnom in https://github.com/livekit/agents/pull/4776
* add lemonslice to video avatars section in README by @tinalenguyen in https://github.com/livekit/agents/pull/4778
* Added TruGen Avatar Plugin. by @hari-trugen in https://github.com/livekit/agents/pull/4430
* Bump cryptography from 46.0.4 to 46.0.5 by @dependabot[bot] in https://github.com/livekit/agents/pull/4788
* Updated Speechmatics STT integration by @sam-s10s in https://github.com/livekit/agents/pull/4703
* Bump pillow from 12.1.0 to 12.1.1 by @dependabot[bot] in https://github.com/livekit/agents/pull/4791
* automatically reject jobs if the worker is draining/full by @theomonnom in https://github.com/livekit/agents/pull/4794
* add instruction on error-handling by @chenghao-mou in https://github.com/livekit/agents/pull/4790
* replace asyncio with inspect for iscoroutinefunction by @chenghao-mou in https://github.com/livekit/agents/pull/4789
* Add Hindi to the list of languages supported by the turn detector plu… by @darryncampbell in https://github.com/livekit/agents/pull/4797
* generate_reply accepts ChatMessage as user_input by @longcw in https://github.com/livekit/agents/pull/4808
* await interruption in _default_text_input_cb by @longcw in https://github.com/livekit/agents/pull/4807
* Add google stt voice activity timeout by @AhmadIbrahiim in https://github.com/livekit/agents/pull/4361
* fix: Update AvatarSession to use FormData format for expression model… by @CathyL0 in https://github.com/livekit/agents/pull/4799
* Inworld tts auto mode by @ianbbqzy in https://github.com/livekit/agents/pull/4655
* [inworld] add User-Agent and X-Request-Id for better traceability by @ianbbqzy in https://github.com/livekit/agents/pull/4784
* [inworld] support async timestamps mode by @ianbbqzy in https://github.com/livekit/agents/pull/4793
* ensure proc pool spawns processes for waiting jobs under high load by @theomonnom in https://github.com/livekit/agents/pull/4820
* (openai responses): update field names and image inputs by @tinalenguyen in https://github.com/livekit/agents/pull/4819
* chore(assemblyai): improve latency by default by @davidzhao in https://github.com/livekit/agents/pull/4827
* fix: a few defensive fixes to guard for exceptions by @davidzhao in https://github.com/livekit/agents/pull/4828
* Improve error handling and developer experience by @theomonnom in https://github.com/livekit/agents/pull/4826
* fix _jobs_waiting_for_process counter leak on cancellation by @theomonnom in https://github.com/livekit/agents/pull/4821
* fix cgroups v2 CPU quota parsing by @davidzhao in https://github.com/livekit/agents/pull/4844
* improve IPC pipeline reliability by @theomonnom in https://github.com/livekit/agents/pull/4825
* fix socket leak in supervised_proc._start() on failure by @theomonnom in https://github.com/livekit/agents/pull/4823
* fix: ChatContext.truncate dropping "developer" message by @davidzhao in https://github.com/livekit/agents/pull/4845
* fix: do not share resampler in tts fallback adapter by @davidzhao in https://github.com/livekit/agents/pull/4840
* fix _pending_assignments memory leak on assignment timeout by @theomonnom in https://github.com/livekit/agents/pull/4822
* fix launch_job send failure leaving executor orphaned by @theomonnom in https://github.com/livekit/agents/pull/4824
* fix(stt): correct log key mislabeled as "tts" in STT retry logs by @SezginKahraman in https://github.com/livekit/agents/pull/4830
* allow flexible recording options by @davidzhao in https://github.com/livekit/agents/pull/4758
* fix: clean up inference tasks after completion by @davidzhao in https://github.com/livekit/agents/pull/4841
* fix: prevent leak when channel task has been cancelled by @davidzhao in https://github.com/livekit/agents/pull/4848
* fix: call speech_handle.add_done_callback even when task is done by @davidzhao in https://github.com/livekit/agents/pull/4851
* upload logs to server even when session fails to start by @davidzhao in https://github.com/livekit/agents/pull/4846
* ensure exception is seen by all peers of tee by @davidzhao in https://github.com/livekit/agents/pull/4853
* add livekit-plugins-browser by @theomonnom in https://github.com/livekit/agents/pull/4859
* fix: ruff and mypy issues in livekit-plugins-browser by @theomonnom in https://github.com/livekit/agents/pull/4860
* fix: correct samples_per_channel in speaking rate stream by @theomonnom in https://github.com/livekit/agents/pull/4863
* fix: run on_session_end callback before internal session cleanup by @theomonnom in https://github.com/livekit/agents/pull/4862
* fix: STT fallback does not skip main_stream when recovering streams fail by @davidzhao in https://github.com/livekit/agents/pull/4835
* bump livekit sdk to 1.1.1 by @theomonnom in https://github.com/livekit/agents/pull/4865
* fix: prevent hang if participant never joins by @davidzhao in https://github.com/livekit/agents/pull/4864
* fix: prevent KeyboardInterrupt in child processes on Ctrl+C by @theomonnom in https://github.com/livekit/agents/pull/4866
* bump livekit sdk to 1.1.2 by @theomonnom in https://github.com/livekit/agents/pull/4867
* livekit-agents 1.4.2 by @theomonnom in https://github.com/livekit/agents/pull/4868
* browser plugin: add navigation RPCs + bump to 0.1.2 by @theomonnom in https://github.com/livekit/agents/pull/4870
## New Contributors
* @thecaptain789 made their first contribution in https://github.com/livekit/agents/pull/4751
* @Mr-Neutr0n made their first contribution in https://github.com/livekit/agents/pull/4759
* @hari-trugen made their first contribution in https://github.com/livekit/agents/pull/4430
* @dependabot[bot] made their first contribution in https://github.com/livekit/agents/pull/4788
* @darryncampbell made their first contribution in https://github.com/livekit/agents/pull/4797
* @AhmadIbrahiim made their first contribution in https://github.com/livekit/agents/pull/4361
* @ianbbqzy made their first contribution in https://github.com/livekit/agents/pull/4655
* @SezginKahraman made their first contribution in https://github.com/livekit/agents/pull/4830
**Full Changelog**: https://github.com/livekit/agents/compare/livekit-agents@1.4.0...livekit-agents@1.4.2