# What's Changed

## 🏞️ Highlights

- 🗨️ Prompts Library
- 🌿 Multi-response Streaming
- 🔖 Conversation Bookmarks
- 🤲 Initial Digital Accessibility Improvements
- 🚀 Significant Performance Improvements across the board

## ✨ New Features

### 🗨️ Prompts Library:
* Create, Share, and Use Prompts for Chat:
  * Includes Variables, Admin controls, and Slash commands for Prompts
  * by [@danny-avila](https://github.com/danny-avila) in [#3131](https://github.com/danny-avila/LibreChat/pull/3131), [#3138](https://github.com/danny-avila/LibreChat/pull/3138), [#3219](https://github.com/danny-avila/LibreChat/pull/3219)

### 🌿 Multi-response Streaming:
* Allows the ability to generate 2 responses at once with supported models/endpoints
  * Activated by keyboard command ("+") or the ("+") button next to presets
  * by [@danny-avila](https://github.com/danny-avila) in [#3191](https://github.com/danny-avila/LibreChat/pull/3191)

### 🔖 Conversation Bookmarks
* Create Bookmarks to easily filter and organize your conversations
* by [@ohneda](https://github.com/ohneda), [@berry-13](https://github.com/berry-13), & [@danny-avila](https://github.com/danny-avila) in [#3344](https://github.com/danny-avila/LibreChat/pull/3344), [#3479](https://github.com/danny-avila/LibreChat/pull/3479), [#3590](https://github.com/danny-avila/LibreChat/pull/3590)

### Other Features:
* ⚙️ Adjust Rate of Message Stream (helps stabilize performance for chat requests) by [@danny-avila](https://github.com/danny-avila) in [#3244](https://github.com/danny-avila/LibreChat/pull/3244)
* 🔑 Infinite lifespan expiry option for user provided API keys, by [@berry-13](https://github.com/berry-13) in [#3252](https://github.com/danny-avila/LibreChat/pull/3252)
* ⚡ Native Static File Caching by [@mawburn](https://github.com/mawburn) in [#3455](https://github.com/danny-avila/LibreChat/pull/3455)

## ⚙️ Other Changes

### Models and Endpoints:
* 🧠 `claude-3-5-sonnet` support (longer output token length) by [@danny-avila](https://github.com/danny-avila) in [#3135](https://github.com/danny-avila/LibreChat/pull/3135)
* 🚀 `gpt-4o-mini` by [@berry-13](https://github.com/berry-13) in [#3384](https://github.com/danny-avila/LibreChat/pull/3384)
* 🪙 Update Token Transaction Pricing for `gpt-4o-2024-08-06` and AWS Models (coming soon) by [@danny-avila](https://github.com/danny-avila) in [#3594](https://github.com/danny-avila/LibreChat/pull/3594)

### 🛡️ Authentication and Security:
* 🚀 LDAP: Add Flexible Configuration Options by [@ohneda](https://github.com/ohneda) in [#3124](https://github.com/danny-avila/LibreChat/pull/3124)
* 💊 OpenID proxy support for downloading profile pictures via proxy by [@berry-13](https://github.com/berry-13) in [#3263](https://github.com/danny-avila/LibreChat/pull/3263)
* 🛂 Allow LDAP login via username by [@danny-avila](https://github.com/danny-avila) & [@lidonius1122](https://github.com/lidonius1122) in [#3463](https://github.com/danny-avila/LibreChat/pull/3463), [#3472](https://github.com/danny-avila/LibreChat/pull/3472)
* 🔒 Add option to disable TLS for LDAP authentication by [@ravi-katiyar](https://github.com/ravi-katiyar) in [#3247](https://github.com/danny-avila/LibreChat/pull/3247)
* 🔐 Enhance Message & Image Access Security by [@danny-avila](https://github.com/danny-avila) in [#3363](https://github.com/danny-avila/LibreChat/pull/3363), [#3365](https://github.com/danny-avila/LibreChat/pull/3365)
* 🛡️ Optimize and Improve Anonymity of SharedLinks by [@danny-avila](https://github.com/danny-avila) in [#3543](https://github.com/danny-avila/LibreChat/pull/3543)
* 🛂 Added Security for Conversation Access by [@danny-avila](https://github.com/danny-avila) in [#3588](https://github.com/danny-avila/LibreChat/pull/3588)

### 🚀 Optimizations:

* 🔧 Reduce Complexity of Initial Load Effect & Message Styling by [@danny-avila](https://github.com/danny-avila) in [#3213](https://github.com/danny-avila/LibreChat/pull/3213)
* 🚤 Optimize Chat Request Lifecycle Speeds by [@danny-avila](https://github.com/danny-avila) in [#3222](https://github.com/danny-avila/LibreChat/pull/3222), [#3230](https://github.com/danny-avila/LibreChat/pull/3230)
* 🕸️ Migrate from `crypto` to Web Crypto API by [@mawburn](https://github.com/mawburn) & [@danny-avila](https://github.com/danny-avila) in [#3357](https://github.com/danny-avila/LibreChat/pull/3357), [#3556](https://github.com/danny-avila/LibreChat/pull/3556)
* ⏬ Optimize Automatic & Manual Scroll Handling with Intersection Observer by [@danny-avila](https://github.com/danny-avila) in [#3564](https://github.com/danny-avila/LibreChat/pull/3564)
* 🌡️ Periodic Health Check to prevent UI Inactivity Connection Errors by [@danny-avila](https://github.com/danny-avila) in [#3589](https://github.com/danny-avila/LibreChat/pull/3589)

### Speech and Audio:
* 🎤 Custom speech config, browser TTS/STT features, and dynamic speech tab settings by [@berry-13](https://github.com/berry-13) in [#2921](https://github.com/danny-avila/LibreChat/pull/2921), [#3282](https://github.com/danny-avila/LibreChat/pull/3282)
* 🗣️ Add Azure OpenAI TTS service by [@berry-13](https://github.com/berry-13) in [#2985](https://github.com/danny-avila/LibreChat/pull/2985)
* 🗣️ Refactor OpenAI STT service by [@berry-13](https://github.com/berry-13) in [#3431](https://github.com/danny-avila/LibreChat/pull/3431)
* 🌩️ Cloud-based browser voices by [@berry-13](https://github.com/berry-13) in [#3297](https://github.com/danny-avila/LibreChat/pull/3297)
* ✨ Auto-send text slider by [@berry-13](https://github.com/berry-13) in [#3312](https://github.com/danny-avila/LibreChat/pull/3312)
* 🗣️ Edge TTS engine by [@berry-13](https://github.com/berry-13) in [#3358](https://github.com/danny-avila/LibreChat/pull/3358)

### UI/UX Enhancements:
* 🕑 Add Suspense to Server Connection Error Messages by [@danny-avila](https://github.com/danny-avila) in [#3074](https://github.com/danny-avila/LibreChat/pull/3074)
* 🔄 Chat direction (LTR-RTL) support by [@berry-13](https://github.com/berry-13) in [#3260](https://github.com/danny-avila/LibreChat/pull/3260)
* 👤 Zoom and rotate User avatar by [@berry-13](https://github.com/berry-13) in [#3264](https://github.com/danny-avila/LibreChat/pull/3264)
* ⬆️ Enable Scrolling Chat Message by PageDown and PageUp keys by [@ohneda](https://github.com/ohneda) in [#3350](https://github.com/danny-avila/LibreChat/pull/3350)
* 🤲 Initial Digital Accessibility Improvements (more to come) by [@danny-avila](https://github.com/danny-avila) in [#3536](https://github.com/danny-avila/LibreChat/pull/3536)
* 🅰️ Select Message Font Size by [@krakenftw](https://github.com/krakenftw) & [@danny-avila](https://github.com/danny-avila) in [#3568](https://github.com/danny-avila/LibreChat/pull/3568)
* 🎛️ Improve Text Commands, Add keyboard command toggles, & Only Trigger for the 1st Character by [@danny-avila](https://github.com/danny-avila) in [#3152](https://github.com/danny-avila/LibreChat/pull/3152), [#3566](https://github.com/danny-avila/LibreChat/pull/3566)

## 🎨 Styling

* General Improvements, mainly buttons, dialogs, menus, etc., by [@berry-13](https://github.com/berry-13) & [@danny-avila](https://github.com/danny-avila) in [#3088](https://github.com/danny-avila/LibreChat/pull/3088), [#3100](https://github.com/danny-avila/LibreChat/pull/3100), [#3205](https://github.com/danny-avila/LibreChat/pull/3205) 
* Update Assistants builder form by [@berry-13](https://github.com/berry-13) in [#3397](https://github.com/danny-avila/LibreChat/pull/3397)
* Enhance UI/UX for Font Size, Mentions, and Prompts by [@danny-avila](https://github.com/danny-avila) in [#3575](https://github.com/danny-avila/LibreChat/pull/3575), [#3576](https://github.com/danny-avila/LibreChat/pull/3576)

## 🌍 Internationalization:
* Improve Traditional Chinese translations by [@PeterDaveHello](https://github.com/PeterDaveHello) in [#3143](https://github.com/danny-avila/LibreChat/pull/3143), [#3144](https://github.com/danny-avila/LibreChat/pull/3144), [#3311](https://github.com/danny-avila/LibreChat/pull/3311)
* Update Turkish translations by [@eniyiweb](https://github.com/eniyiweb) in [#3232](https://github.com/danny-avila/LibreChat/pull/3232)
* Update French translations by [@GaelMartins0](https://github.com/GaelMartins0) in [#3240](https://github.com/danny-avila/LibreChat/pull/3240)
* Added Finnish translations by [@ylioja](https://github.com/ylioja) in [#3316](https://github.com/danny-avila/LibreChat/pull/3316)
* Improve German translations by [@marlonka](https://github.com/marlonka) in [#3516](https://github.com/danny-avila/LibreChat/pull/3516)
* Improve Japanese translations by [@ohneda](https://github.com/ohneda) in [#3119](https://github.com/danny-avila/LibreChat/pull/3119)

## 📝 Documentation:
* 🔊 General documentation updates by [@berry-13](https://github.com/berry-13) in [#3093](https://github.com/danny-avila/LibreChat/pull/3093), [#3274](https://github.com/danny-avila/LibreChat/pull/3274), [#3281](https://github.com/danny-avila/LibreChat/pull/3281), [#3287](https://github.com/danny-avila/LibreChat/pull/3287), [#3242](https://github.com/danny-avila/LibreChat/pull/3242)
* 📝 Update `.env.example` with RAG API variables by [@aoaim](https://github.com/aoaim) in [#3461](https://github.com/danny-avila/LibreChat/pull/3461)
* 📝 Example docker override file for RAG API service to communicate with Ollama service on Linux by [@hulkds](https://github.com/hulkds) in [#3356](https://github.com/danny-avila/LibreChat/pull/3356)
* 🚅 Added an Example of Nginx gzip Settings by [@ohneda](https://github.com/ohneda) in [#3173](https://github.com/danny-avila/LibreChat/pull/3173)
* 🪖 Helm Chart Example by [@iamNoah1](https://github.com/iamNoah1) & [@danny-avila](https://github.com/danny-avila) in [#3539](https://github.com/danny-avila/LibreChat/pull/3539)

## 🔧 Fixes

* ✉️ Email address URL encoding issue in Email verification link by [@berry-13](https://github.com/berry-13) in [#3085](https://github.com/danny-avila/LibreChat/pull/3085)
* 🔧 useTextArea: Incorrect New Line while Composing Japanese Text by [@ohneda](https://github.com/ohneda) in [#3103](https://github.com/danny-avila/LibreChat/pull/3103)
* 🔧 Shared Links: Handling Shared Link Errors by [@ohneda](https://github.com/ohneda) in [#3118](https://github.com/danny-avila/LibreChat/pull/3118)
* 🌐 Assistants API Actions: Correct URL Formation for Subdomains in `createURL` by [@danny-avila](https://github.com/danny-avila) in [#3149](https://github.com/danny-avila/LibreChat/pull/3149)
* 🧹 Remove unnecessary try/catch when creating users by [@danny-avila](https://github.com/danny-avila) in [#3153](https://github.com/danny-avila/LibreChat/pull/3153)
* 🧹 Code cleanup: comments, typos, by [@eltociear](https://github.com/eltociear) & [@rehas](https://github.com/rehas) in [#3105](https://github.com/danny-avila/LibreChat/pull/3105), [#3160](https://github.com/danny-avila/LibreChat/pull/3160)
* 📋 Prevent RTF Paste to Clipboard, Only Plain Text by [@danny-avila](https://github.com/danny-avila) in [#3179](https://github.com/danny-avila/LibreChat/pull/3179)
* 📂 Add version selection for Assistants Endpoint uploads by [@danny-avila](https://github.com/danny-avila) in [#3236](https://github.com/danny-avila/LibreChat/pull/3236)
* 🛠️ Tool Filtering in PluginsClient by [@danny-avila](https://github.com/danny-avila) in [#3266](https://github.com/danny-avila/LibreChat/pull/3266)
* ⚒️ Speech: openaiProvider issue by [@berry-13](https://github.com/berry-13) in [#3283](https://github.com/danny-avila/LibreChat/pull/3283)
* 🗣️ Update API endpoint for fetching audio in StreamAudio by [@danny-avila](https://github.com/danny-avila) in [#3307](https://github.com/danny-avila/LibreChat/pull/3307)
* 🗨️ Reset prompt groups query when changing filters by [@meroo36](https://github.com/meroo36) in [#3294](https://github.com/danny-avila/LibreChat/pull/3294)
* 🪙 Address Streaming Response Token Issue by [@danny-avila](https://github.com/danny-avila) in [#3323](https://github.com/danny-avila/LibreChat/pull/3323)
* 🔧 Make assistant tool filtering compatible with plugin filtering by [@bnord01](https://github.com/bnord01) in [#3325](https://github.com/danny-avila/LibreChat/pull/3325)
* 🌿 Message Route Error handling Improvements by [@danny-avila](https://github.com/danny-avila) in [#3378](https://github.com/danny-avila/LibreChat/pull/3378), [#3379](https://github.com/danny-avila/LibreChat/pull/3379)
* ⚙️ Plugin Message Handling Errors by [@danny-avila](https://github.com/danny-avila) in [#3392](https://github.com/danny-avila/LibreChat/pull/3392)
* ⌚ Wait for Initial Message to Save before Response Processing & Ensure Latest Message State is Correct by [@danny-avila](https://github.com/danny-avila) in [#3399](https://github.com/danny-avila/LibreChat/pull/3399)
* 🔧 STT/TTS external checks by [@berry-13](https://github.com/berry-13) in [#3409](https://github.com/danny-avila/LibreChat/pull/3409), [#3410](https://github.com/danny-avila/LibreChat/pull/3410)
* 🗣️ Elevenlabs TTS and STT by [@berry-13](https://github.com/berry-13) in [#3482](https://github.com/danny-avila/LibreChat/pull/3482)
* 💫 Catch constant conditions in recoil state usage by [@GerkinDev](https://github.com/GerkinDev) in [#3513](https://github.com/danny-avila/LibreChat/pull/3513)
* 🛠️ Apply safety settings to Gemini API by [@lidonius1122](https://github.com/lidonius1122) in [#3533](https://github.com/danny-avila/LibreChat/pull/3533)
* 🖼️ Correct image extraction for Plugin image tools by [@jung0han](https://github.com/jung0han) & [@danny-avila](https://github.com/danny-avila) in [#3538](https://github.com/danny-avila/LibreChat/pull/3538)
* 🔧 API Key Handling for GoogleSearch and TavilySearch Tools by [@jung0han](https://github.com/jung0han) in [#3541](https://github.com/danny-avila/LibreChat/pull/3541)
* 📜 Better OpenAI Assistants Annotation Processing by [@danny-avila](https://github.com/danny-avila) in [#3565](https://github.com/danny-avila/LibreChat/pull/3565)

### 👀 What's Next

**v0.7.5:** https://github.com/danny-avila/LibreChat/milestone/7

### New Contributors
* [@kurtseifried](https://github.com/kurtseifried) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3107
* [@PedroGruvhagen](https://github.com/PedroGruvhagen) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3142
* [@mungewrath](https://github.com/mungewrath) made their first contribution in https://github.com/danny-avila/LibreChat/pull/2983
* [@rehas](https://github.com/rehas) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3160
* [@KiGamji](https://github.com/KiGamji) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3154
* [@GhaithAlHallak8](https://github.com/GhaithAlHallak8) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3195
* [@GaelMartins0](https://github.com/GaelMartins0) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3240
* [@meroo36](https://github.com/meroo36) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3294
* [@ylioja](https://github.com/ylioja) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3316
* [@bnord01](https://github.com/bnord01) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3325
* [@ravi](https://github.com/ravi)-katiyar made their first contribution in https://github.com/danny-avila/LibreChat/pull/3247
* [@jacobcolyvan](https://github.com/jacobcolyvan) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3459
* [@lidonius1122](https://github.com/lidonius1122) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3472
* [@GerkinDev](https://github.com/GerkinDev) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3513
* [@xueshanf](https://github.com/xueshanf) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3528
* [@aoaim](https://github.com/aoaim) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3461
* [@hulkds](https://github.com/hulkds) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3356
* [@jung0han](https://github.com/jung0han) made their first contribution in https://github.com/danny-avila/LibreChat/pull/3541

**Full Changelog**: https://github.com/danny-avila/LibreChat/compare/v0.7.3...v0.7.4
