# What's Changed

## 🏞️ Highlights

<a href="https://trendshift.io/repositories/4685" target="_blank">
  <img
    src="https://trendshift.io/api/badge/repositories/4685"
    alt="danny-avila%2FLibreChat | Trendshift"
    width="250"
    height="55"
  />
</a>

- **LibreChat hit a major milestone and was featured on GitHub trending several days in a row!**
- Thank you all who checked out this project, there are still more features to come and in active development!

- **[Customizing endpoints is now possible (that follow OpenAI specs):](https://docs.librechat.ai/install/configuration/custom_config.html)**

![fd0d2307-008f-4e1d-b75b-4f141070ce71](https://user-images.githubusercontent.com/110412045/298197340-f8c71b96-c729-454a-a485-99fc2c4ef6ae.png)

- **You can enable an experimental mode in Settings to switch Endpoints mid-conversation:**

![image](https://github.com/danny-avila/LibreChat/assets/110412045/b6c4c7a4-c96c-4d37-b080-ac669a408228)

## :sparkles: New Features

- 👮feat: moderation text by [@Berry-13](https://github.com/Berry-13) in [#1388](https://github.com/danny-avila/LibreChat/pull/1388)
- 🔥🚀 feat: CDN (Firebase) & feat: account section by [@Berry-13](https://github.com/Berry-13) in [#1438](https://github.com/danny-avila/LibreChat/pull/1438)
- 🚫🔍 feat: disallow search indexing by [@Berry-13](https://github.com/Berry-13) in [#1409](https://github.com/danny-avila/LibreChat/pull/1409)
- 🐳 : Improving Docker Build by [@ineiti](https://github.com/ineiti) in [#1415](https://github.com/danny-avila/LibreChat/pull/1415)
- 📃 feat: add `list-balances`, `remove-user`, and improve User scripts by [@ineiti](https://github.com/ineiti) in [#1418](https://github.com/danny-avila/LibreChat/pull/1418)
- 📱feat: allow PWA by [@Berry-13](https://github.com/Berry-13) in [#1440](https://github.com/danny-avila/LibreChat/pull/1440)
- 💫 feat: Config File & Custom Endpoints by [@danny-avila](https://github.com/danny-avila) in [#1474](https://github.com/danny-avila/LibreChat/pull/1474)
- 🧪 feat: Experimental: Enable Switching Endpoints Mid-Conversation by [@danny-avila](https://github.com/danny-avila) in [#1483](https://github.com/danny-avila/LibreChat/pull/1483)
- ✨ feat(saveImageFromUrl): Dynamic Extension Handling by [@danny-avila](https://github.com/danny-avila) in [#1514](https://github.com/danny-avila/LibreChat/pull/1514)
- 🚀 Feat: Streamline File Strategies & GPT-4-Vision Settings by [@danny-avila](https://github.com/danny-avila) in [#1535](https://github.com/danny-avila/LibreChat/pull/1535)
- ✏️ feat: LaTeX parsing for Messages by [@danny-avila](https://github.com/danny-avila) in [#1585](https://github.com/danny-avila/LibreChat/pull/1585)
- 🖼️ feat(DALL-E): Azure OpenAI Support & New Config Variables by [@danny-avila](https://github.com/danny-avila) in [#1586](https://github.com/danny-avila/LibreChat/pull/1586)
- 🎯 feat(config): Custom Endpoint Request Headers by [@danny-avila](https://github.com/danny-avila) in [#1588](https://github.com/danny-avila/LibreChat/pull/1588)
- 🚀 feat: Add `OPENAI_ORGANIZATION` for all OpenAI Requests by [@danny-avila](https://github.com/danny-avila) in [#1590](https://github.com/danny-avila/LibreChat/pull/1590)
- 🖌️ feat: Optional Display Username in Messages, Send/Stop Button Style, Localization by @itzraiss & @danny-avila in [#1592](https://github.com/danny-avila/LibreChat/pull/1592)
- 🪶 feat: Add Support for Azure OpenAI Base URL by [@danny-avila](https://github.com/danny-avila) in [#1596](https://github.com/danny-avila/LibreChat/pull/1596)

## :gear: Other Changes

- 🔖 Chore: Update pull_request_template.md with Hard Link by [@danny-avila](https://github.com/danny-avila) in [#1417](https://github.com/danny-avila/LibreChat/pull/1417)
- 🎨 style: Add Dynamic Height to Endpoint/Model Menus by [@danny-avila](https://github.com/danny-avila) in [#1480](https://github.com/danny-avila/LibreChat/pull/1480)
- 🧹 chore: remove 'MEILI_HTTP_ADDR' by [@fuegovic](https://github.com/fuegovic) in [#1475](https://github.com/danny-avila/LibreChat/pull/1475)
- 🗨️ refactor: Open New Tab for Ctrl+Click or Button Combo in NewChat by [@danny-avila](https://github.com/danny-avila) in [#1484](https://github.com/danny-avila/LibreChat/pull/1484)
- 🐋 refactor: Mount Config File in Docker and Add to .dockerignore by [@danny-avila](https://github.com/danny-avila) in [#1493](https://github.com/danny-avila/LibreChat/pull/1493)
- 🐳 : Further Docker build Cleanup & Docs Update by [@danny-avila](https://github.com/danny-avila) in [#1502](https://github.com/danny-avila/LibreChat/pull/1502)
- 🔄 refactor(config): Move `connectWithTimeout` Outside of Helpers Module by [@danny-avila](https://github.com/danny-avila) in [#1513](https://github.com/danny-avila/LibreChat/pull/1513)
- 🎨: Updated Plugins Search Bar by @itzraiss in [#1549](https://github.com/danny-avila/LibreChat/pull/1549)
- 🪙 refactor: Update tokens.js for Added Context Buffer from Max by [@danny-avila](https://github.com/danny-avila) in [#1573](https://github.com/danny-avila/LibreChat/pull/1573)
- 📜 refactor: Enhance Auto Scroll Speed and UseEffect Cleanup by [@danny-avila](https://github.com/danny-avila) in [#1591](https://github.com/danny-avila/LibreChat/pull/1591)

## 🔧 Fixes

- 🐛 fix: Prevent Unnecessary Cloning of Symbols in Log Object by [@danny-avila](https://github.com/danny-avila) in [#1455](https://github.com/danny-avila/LibreChat/pull/1455)
- 🧹fix: Handle Abort Message Edge Cases by [@danny-avila](https://github.com/danny-avila) in [#1462](https://github.com/danny-avila/LibreChat/pull/1462)
- 🛠️ fix: Minor Fixes in `Message`, `Ask/EditController`, `OpenAIClient`, and `countTokens` by [@danny-avila](https://github.com/danny-avila) in [#1463](https://github.com/danny-avila/LibreChat/pull/1463)
- 🔧 fix(OpenAIClient): do not invoke abortCompletion on completion error by [@danny-avila](https://github.com/danny-avila) in [#1473](https://github.com/danny-avila/LibreChat/pull/1473)
- 🔧 fix: langchain packages mismatch, mount config file for `deploy-compose.yaml`, silence config not found error by [@danny-avila](https://github.com/danny-avila) in [#1481](https://github.com/danny-avila/LibreChat/pull/1481)
- 🛠️ fix: Error Message Parsing and ChatOpenAI credentials by [@danny-avila](https://github.com/danny-avila) in [#1482](https://github.com/danny-avila/LibreChat/pull/1482)
- 🔧 fix: Improve Endpoint Handling and Address Edge Cases by [@danny-avila](https://github.com/danny-avila) in [#1486](https://github.com/danny-avila/LibreChat/pull/1486)
- ⬆️ fix(SendButton): correct dark theme background when `enabled` by [@danny-avila](https://github.com/danny-avila) in [#1503](https://github.com/danny-avila/LibreChat/pull/1503)
- 🛠️ fix: Custom Endpoint issues, Improve SSE Response Handling by [@danny-avila](https://github.com/danny-avila) in [#1510](https://github.com/danny-avila/LibreChat/pull/1510)
- 🐛 fix: Load `dotenv` at Top of Call Stack by [@danny-avila](https://github.com/danny-avila) in [#1512](https://github.com/danny-avila/LibreChat/pull/1512)
- 🔧 fix: Error Handling Improvements by [@danny-avila](https://github.com/danny-avila) in [#1518](https://github.com/danny-avila/LibreChat/pull/1518)
- fix(getUserPluginAuthValue): throws error if no user matches by [@danny-avila](https://github.com/danny-avila) in [#1522](https://github.com/danny-avila/LibreChat/pull/1522)
- 🐛 fix: Remove `resendImages`, `imageDetail` from `modelOptions` for Custom Endpoints by [@danny-avila](https://github.com/danny-avila) in [#1537](https://github.com/danny-avila/LibreChat/pull/1537)
- 🏗️ fix(config): Resolve Paths Correctly for Helper Scripts on Linux and Windows by [@danny-avila](https://github.com/danny-avila) in [#1542](https://github.com/danny-avila/LibreChat/pull/1542)
- 📕 fix: Update `document` Title based on `appTitle` and on "New Chat" by [@danny-avila](https://github.com/danny-avila) in [#1553](https://github.com/danny-avila/LibreChat/pull/1553)

## :memo: Documentation

- 🧹📚 docs: refactor and clean up by [@fuegovic](https://github.com/fuegovic) in [#1392](https://github.com/danny-avila/LibreChat/pull/1392)
- 🪪mkdocs: social cards by [@fuegovic](https://github.com/fuegovic) in [#1428](https://github.com/danny-avila/LibreChat/pull/1428)
- doc update: firebase.md by [@fuegovic](https://github.com/fuegovic) in [#1456](https://github.com/danny-avila/LibreChat/pull/1456)
- docs: update pull_request_template.md by [@fuegovic](https://github.com/fuegovic) in [#1466](https://github.com/danny-avila/LibreChat/pull/1466)
- docs: update the license to 2024. by [@Berry-13](https://github.com/Berry-13) in [#1501](https://github.com/danny-avila/LibreChat/pull/1501)
- 🚆 docs: Add Sealos 1-Click Deployment by [@yangchuansheng](https://github.com/yangchuansheng) in [#1578](https://github.com/danny-avila/LibreChat/pull/1578)
- 🚆docs: Railway support by [@Berry-13](https://github.com/Berry-13) in [#1529](https://github.com/danny-avila/LibreChat/pull/1529)
- 📑 docs: Update Mistral AI API example about `dropParams` by [@danny-avila](https://github.com/danny-avila) in [#1538](https://github.com/danny-avila/LibreChat/pull/1538)
- 🚆docs: update invalid env variables in hetzner ubuntu example by [@nicam](https://github.com/nicam) in [#1539](https://github.com/danny-avila/LibreChat/pull/1539)
- 📔 docs: Update Render hosting Guide by [@tmendenhall](https://github.com/tmendenhall) in [#1528](https://github.com/danny-avila/LibreChat/pull/1528)
- 📑 docs: fix mistral ai api example `safe_mode` --> `safe_prompt` by [@danny-avila](https://github.com/danny-avila) in [#1541](https://github.com/danny-avila/LibreChat/pull/1541)
- 🧹 docs: update docker_override.md by [@eltociear](https://github.com/eltociear) in [#1546](https://github.com/danny-avila/LibreChat/pull/1546)
- 🐳 docs: Update dotenv.md by [@ganeshkrishnan1](https://github.com/ganeshkrishnan1) in [#1564](https://github.com/danny-avila/LibreChat/pull/1564)

## 🌐 Internationalization

- French translations were updated by [@fuegovic](https://github.com/fuegovic) (PRs [#1444](https://github.com/danny-avila/LibreChat/pull/1444), [#1472](https://github.com/danny-avila/LibreChat/pull/1472), [#1595](https://github.com/danny-avila/LibreChat/pull/1595))
- Russian by [@LedyBacer](https://github.com/LedyBacer) (#1413) and [@machinsoft](https://github.com/machinsoft) (#1457, #1517)
- Italian by [@Berry-13](https://github.com/Berry-13) (#1414, #1594)
- Portuguese by @itzraiss (#1461, #1505, #1523, #1593, #1549)
- Indonesian by @wahitftry (#1563)
- Chinese by @snekkenull (#1527)

## ⚠️ Breaking Changes

- **DALL-E Update**: user-provided keys for DALL-E are now specific to each DALL-E version, i.e.: `DALLE3_API_KEY` and `DALLE2_API_KEY`
- Note: `DALLE_API_KEY` will work for both DALL-E-3 and DALL-E-2 when the admin provides the credential; in other words, this may only affect your users if DALLE_API_KEY is not set in the `.env` file. In this case, they will simply have to "uninstall" the plugin, and provide their API key again.
- Unused legacy code will soon be removed from the repo (mainly on the client side)

## 👀 Upcoming Features

- Assistants API integration and General File support continue to be in active development, ETA: end of January
- Prompt-engineering-focused features such as adding/removing messages at any point.
- Better, more customizable, and easier System-wide Configuration for Endpoints/Models/Presets
- [Our full Roadmap](https://github.com/users/danny-avila/projects/2)

## New Contributors

- [@LedyBacer](https://github.com/LedyBacer) made their first contribution in [#1413](https://github.com/danny-avila/LibreChat/pull/1413)
- [@ineiti](https://github.com/ineiti) made their first contribution in [#1418](https://github.com/danny-avila/LibreChat/pull/1418)
- [@nicam](https://github.com/nicam) made their first contribution in [#1539](https://github.com/danny-avila/LibreChat/pull/1539)
- [@tmendenhall](https://github.com/tmendenhall) made their first contribution in [#1528](https://github.com/danny-avila/LibreChat/pull/1528)
- [@eltociear](https://github.com/eltociear) made their first contribution in [#1546](https://github.com/danny-avila/LibreChat/pull/1546)
- [@ganeshkrishnan1](https://github.com/ganeshkrishnan1) made their first contribution in [#1564](https://github.com/danny-avila/LibreChat/pull/1564)
- [@wahitftry](https://github.com/wahitftry) made their first contribution in [#1563](https://github.com/danny-avila/LibreChat/pull/1563)
- [@yangchuansheng](https://github.com/yangchuansheng) made their first contribution in [#1578](https://github.com/danny-avila/LibreChat/pull/1578)

**Full Changelog**: [Compare v0.6.5...v0.6.6](https://github.com/danny-avila/LibreChat/compare/v0.6.5...v0.6.6)
