Integrate Langchain usage patch and update UI metrics: Apply Langchain usage patch in agent.py, adjust pipeline stage layout in index.html, and enhance metric descriptions in main.js for improved clarity and functionality.
Add LLM connection settings and enhance error handling: Introduce new parameters for LLM connection timeout, retry attempts, and stall timeout in .env.example and settings.py. Update agent.py to log errors and session closures, and implement a watchdog for LLM stall detection in MetricsCollector.
Update PocketTTS configuration and logging: Change sample rate handling to enforce native 24kHz, adjust idle process count in .env.example, and enhance audio diagnostics in main.js for better tracking of remote audio track events.
Remove session metadata handling from agent and UI: Eliminate the on_data_received function in agent.py and the session metadata publishing logic in main.js to streamline session management and improve code clarity.
Refactor Streamlit app and UI for session management: Replace token generation with session bootstrap URL, update client rendering logic, and enhance error handling for session initialization. Improve metrics logging in agent and metrics collector for better tracking of session metadata.
Add agent state change handling and improve metrics collection: Introduce AgentStateChangedEvent to track agent state transitions. Update MetricsCollector to record timestamps for first assistant audio when entering the speaking state. Enhance test coverage for new functionality in agent state management.
Enhance VAD configuration and add fallback participant ID support: Update VAD_MIN_SPEECH_DURATION and VAD_MIN_SILENCE_DURATION for faster response times. Introduce fallback participant ID logic in MetricsCollector to handle cases where participant metadata is absent, ensuring accurate trace reporting.
Add fallback session ID support in MetricsCollector: Introduce a mechanism to generate a console-prefixed fallback session ID when metadata is absent. Update session handling logic to utilize the fallback ID and enhance test coverage for fallback scenarios.
Update Langfuse tracing configuration and enhance metrics collection: Increase trace finalize timeout in .env.example and settings.py. Add support for speech created events in MetricsCollector to capture assistant text. Refactor metrics handling to include additional latency metrics and improve test coverage for speech handling scenarios.
Enhance Langfuse tracing functionality: Add new configuration options for trace timeouts and maximum pending tasks in .env.example and settings.py. Update MetricsCollector to handle assistant text finalization and improve trace task management. Refactor agent logic to ensure accurate trace status reporting and enhance test coverage for tracing behavior.
Add Langfuse tracing support and enhance agent dispatch logic: Introduce optional Langfuse tracing configuration in .env.example and settings.py. Update agent and metrics collector to handle Langfuse traces per user turn. Refactor agent dispatch logic to ensure proper agent management and session metadata handling in the Streamlit app. Enhance UI to display session and trace information.
Enhance Pocket TTS configuration and update documentation: Add new Pocket TTS settings to .env.example, including voice and sample rate options. Update README to reflect new features and improvements in Pocket TTS, including streaming synthesis capabilities and error handling. Refactor Pocket TTS class to streamline voice loading and improve error management during initialization.
Refactor .gitignore and enhance Pocket TTS and Moonshine STT: Simplify .gitignore by removing unnecessary entries and adding environment-specific files. Update Pocket TTS to use a configurable sample rate and replace UUID with shortuuid for request IDs. Modify Moonshine STT to use NotGivenOr for language parameter and update stream class inheritance for better clarity.
Implement speech-to-text provider selection and configuration: Update environment settings to support both Moonshine and NVIDIA STT providers, refactor STT initialization logic in the agent, and enhance footer generation in the Streamlit app for improved user experience. Update dependencies and settings management for better flexibility in model selection.
Enhance metrics tracking and visualization: Integrate live and average metrics display in the UI, update JavaScript for metrics handling, and improve audio synthesis logging in Pocket TTS. Adjust Streamlit app for better component height and scrolling.
Enhance LiveKit integration: Add audio input and VAD configurations, update settings, and improve Streamlit app for better agent dispatch and error handling.