Security Advisory
**IMPORTANT**:
- The element feature currently contains a known security vulnerability that could allow unauthorized file access. We strongly recommend against using elements in production environments until a comprehensive fix is implemented in an upcoming release.
Changed
- **[breaking]**: Completely revamped audio implementation (1401, 1410):
- Replaced `AudioChunk` with `InputAudioChunk` and `OutputAudioChunk`
- Changed default audio sampling rate from 44100 to 24000
- Removed several audio configuration options (`min_decibels`, `initial_silence_timeout`, `silence_timeout`, `chunk_duration`, `max_duration`)
- Removed `RecordScreen` component
- Factored storage clients into separate modules (1363)
Added
- Realtime audio streaming and processing (1401, 1406, 1410):
- New `AudioPresence` component for visual representation
- Implemented `WavRecorder` and `WavStreamPlayer` classes
- Introduced new `on_audio_start` callback
- Added audio interruption functionality
- New audio connection signaling with `on` and `off` states
- Interactive DataFrame display with auto-fit content using MUI Data Grid (1373, 1467)
- Optional websocket connection in react-client (1379)
- Enhanced image interaction with popup view and download option (1402)
- Current URL included in message payload (1403)
- Allow empty chat input when submitting attachments (1261)
Fixes
- Various backend fixes and cleanup (1432):
- Use importlib.util.find_spec to check if a package is installed
- Use `raise... from` to wrap exceptions
- Fix error message in Discord integration
- Several minor fixups/cleanup
Development
- Implemented ruff for linting and formatting (1495)
- Added mypy daemon for faster type-checking (1495)
- Added GitHub Actions linting (1445)
- Enabled direct installation from GitHub (1423)
- Various build script improvements (1462)