* refactor(useDebouncedInput): make object as input arg and accept setter
* refactor(ChatForm/Textarea): consolidate textarea/form logic to one component, use react-hook-form, programmatically click send button instead of passing submitMessage, forwardRef and memoize SendButton
* refactor(Textarea): use Controller field value to avoid manual update of ref
* chore: remove forms provider
* chore: memoize AttachFile
* refactor(ChatForm/SendButton): only re-render SendButton when there is text input
* chore: make iconURL bigger
* chore: optimize Root/Nav
* refactor(SendButton): memoize disabled prop based on text
* chore: memoize Nav and ChatForm
* chore: remove textarea ref text on submission
* feat(EditMessage): Make Esc exit the edit mode and dismiss changes when editing a message
* style(MenuItem): Display the ☑️ icon only on the selected model
* feat: make assistants endpoint appendable since message state is not managed by LibreChat
* fix(ask): search currentMessages for thread_id if it's not defined
* refactor(abortMiddleware): remove use of `overrideProps` and spread unknown fields instead
* chore: remove console.log in `abortConversation`
* refactor(assistants): improve error handling/cancellation flow
* refactor(useSSE): add useCallback to all event handlers
* chore: remove modelName in defaultAssistantFormValues
* fix(SidePanel): fix layout shift on chrome my removing sidenav scrollbar
* style(ChatForm): match ChatGPT textarea effect styling
* style: fix flickering of old background color on refresh
* style(ChatForm): update styling and fixed style bug
* style:(Dialog): reduced max height style(Settings): fixed dialog position height
* style(Settings): fixed large screen position
* BIG UI UPDATE
* fix: search bar, dialog template, new chat icon, convo icon and delete/rename button
* moved some color config and a lot of files
* small text fixes and tailwind config refactor
* Update localization and UI styles
* Update styles and add user-select:none to Tooltip component
* Update mobile.css styles for navigation mask and background color
* Update component imports and styles
* Update DeleteButton imports and references
* Update UI components
* Update tooltip delay duration
* Fix styling and update text in various components
* fixed assistant style
* minor style fixes
* revert: removed CreationHeader & CreationPanel
* style: match new styling for SidePanel
* style: match bg-gray-800 to ChatGPT (#212121)
* style: remove slate for gray where applicable to match new light theme
---------
Co-authored-by: Danny Avila <messagedaniel@protonmail.com>
* chore: bump anthropic SDK
* chore: update anthropic config settings (fileSupport, default models)
* feat: anthropic multi modal formatting
* refactor: update vision models and use endpoint specific max long side resizing
* feat(anthropic): multimodal messages, retry logic, and messages payload
* chore: add more safety to trimming content due to whitespace error for assistant messages
* feat(anthropic): token accounting and resending multiple images in progress
* chore: bump data-provider
* feat(anthropic): resendImages feature
* chore: optimize Edit/Ask controllers, switch model back to req model
* fix: false positive of invalid model
* refactor(validateVisionModel): use object as arg, pass in additional/available models
* refactor(validateModel): use helper function, `getModelsConfig`
* feat: add modelsConfig to endpointOption so it gets passed to all clients, use for properly validating vision models
* refactor: initialize default vision model and make sure it's available before assigning it
* refactor(useSSE): avoid resetting model if user selected a new model between request and response
* feat: show rate in transaction logging
* fix: return tokenCountMap regardless of payload shape
* fix(EditMessage): duplicate text when pasting on chromium
* add back paste data handling, prevent default behavior
---------
Co-authored-by: Danny Avila <messagedaniel@protonmail.com>
* feat: paste plain text from apps with rich paste data, improved edit message textarea, improved height resizing for long text
* feat(EditMessage): autofocus
* chore: retain user text color when entering edit mode
* chore: remove unused code in progressCallback, as well as handle reply.trim(), post `getCompletion`
* chore(Dockerfile): remove curl installation
* experimental: dev image parallelized with matrix strategy and building for amd64/arm64 support
* make platforms explicit
* fix(useContentHandler): retain undefined parts and handle them within `ContentParts` rendering
* fix(AssistantService/in_progress): skip empty messages
* refactor(RunManager): create highly specific `seenSteps` Set keys for RunSteps with use of `getDetailsSignature` and `getToolCallSignature`,to ensure changes from polling are always captured
* chore: bump browserslist-db@latest
* refactor(EndpointService): simplify with `generateConfig`, utilize optional baseURL for OpenAI-based endpoints, use `isUserProvided` helper fn wherever needed
* refactor(custom/initializeClient): use standardized naming for common variables
* feat: user provided baseURL for openAI-based endpoints
* refactor(custom/initializeClient): re-order operations
* fix: knownendpoints enum definition and add FetchTokenConfig, bump data-provider
* refactor(custom): use tokenKey dependent on userProvided conditions for caching and fetching endpointTokenConfig, anticipate token rates from custom config
* refactor(custom): assure endpointTokenConfig is only accessed from cache if qualifies for fetching
* fix(ci): update tests for initializeClient based on userProvideURL changes
* fix(EndpointService): correct baseURL env var for assistants: `ASSISTANTS_BASE_URL`
* fix: unnecessary run cancellation on res.close() when response.run is completed
* feat(assistants): user provided URL option
* ci: update tests and add test for `assistants` endpoint
* chore: leaner condition for request closing
* chore: more descriptive error message to provide keys again
* feat: add known endpoints
* docs: add known endpoints
* update ai_endpoints.md
remove the groq icon from the example
* Update ai_endpoints.md
---------
Co-authored-by: Danny Avila <messagedaniel@protonmail.com>