* 🚀 feat: Add animated search input and improve filtering UI
* 🏄 refactor: Clean up category options and optimize event handlers in ChatGroupItem
* 🚀 refactor: 'Rename Prompt' option and enhance prompt filtering UI
Changed the useUpdatePromptGroup mutation in prompts.ts to replace the JSON.parse(JSON.stringify(...)) clones with structuredClone. This avoids errors when data contains non‑JSON values and improves data cloning reliability
* 🔧 refactor: Update Sharing Prompts UI; fix: Show info message only after updating switch status
* 🔧 refactor: Simplify condition checks and replace button with custom Button component in SharePrompt
* 🔧 refactor: Update DashGroupItem styles and improve accessibility with updated aria-label
* 🔧 refactor: Adjust layout styles in GroupSidePanel and enhance loading skeletons in List component
* 🔧 refactor: Improve layout and styling of AdvancedSwitch component; adjust DashBreadcrumb margin for better alignment
* 🔧 refactor: Add new surface colors for destructive actions and update localization strings for confirmation prompts
* 🔧 refactor: Update PromptForm and PromptName components for improved layout and styling; replace button with custom Button component
* 🔧 refactor: Enhance styling and layout of DashGroupItem, FilterPrompts, and Label components for improved user experience
* 🔧 refactor: Update DeleteBookmarkButton and Label components for improved layout and text handling
* 🔧 refactor: Simplify CategorySelector usage and update destructive surface colors for a11y
* 🔧 refactor: Update styling and layout of PromptName, SharePrompt, and DashGroupItem components; enhance Dropdown functionality with custom renderValue
* 🔧 refactor: Improve layout and styling of various components; update button sizes and localization strings for better accessibility and user experience
* 🔧 refactor: Add useCurrentPromptData hook and enhance RightPanel component; update CategorySelector for improved functionality and accessibility
* 🔧 refactor: Update input components and styling for Command and Description; enhance layout and accessibility in PromptVariables and PromptForm
* 🔧 refactor: Remove useCurrentPromptData hook and clean up related components; enhance PromptVersions layout
* 🔧 refactor: Enhance accessibility by adding aria-labels to buttons and inputs; improve localization for filter prompts
* 🔧 refactor: Enhance accessibility by adding aria-labels to various components; improve layout and styling in PromptForm and CategorySelector
* 🔧 refactor: Enhance accessibility by adding aria-labels to buttons and components; improve dialog roles and descriptions in SharePrompt and PromptForm
* 🔧 refactor: Improve accessibility by adding aria-labels and roles; enhance layout and styling in ChatGroupItem, ListCard, and ManagePrompts components
* 🔧 refactor: Update UI components for improved styling and accessibility; replace button elements with custom Button component and enhance layout in VariableForm, PromptDetails, and PromptVariables
* 🔧 refactor: Improve null checks for group and instanceProjectId in SharePrompt component; enhance readability and maintainability
* style: Enhance AnimatedSearchInput component with TypeScript types; improve conditional rendering for search states and accessibility
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* 🔧 fix: Update regex to correctly match OpenAI model identifiers
* 🔧 fix: Enhance tool filtering logic in ToolService to handle inclusion and exclusion criteria for basic tools and toolkits
* feat: support o3-mini Azure streaming
* chore: Update model filtering logic to exclude audio and realtime models
* ci: linting error
When behind authentication (for eg: Cloudflare Access), browsers
won't send credentials when fetching the manifest file by default.
To fix, this change adds `crossorigin="use-credentials"` to the
manifest link tag by enabling the `useCredentials` option in
VitePWA.
* WIP: end session endpoint
* refactor: move useGetBannerQuery outside of package
* refactor: add queriesEnabled and move useGetEndpointsConfigQuery to data-provider (local)
* refactor: move useGetEndpointsQuery import to data-provider
* refactor: relocate useGetEndpointsQuery import to improve module organization
* refactor: move `useGetStartupConfig` from package to `~/data-provider`
* refactor: move useGetUserBalance to data-provider and update imports
* refactor: update query enabled conditions to include config check
* refactor: remove unused useConfigOverride import from useAppStartup
* refactor: integrate queriesEnabled state into file and search queries and move useGetSearchEnabledQuery to data-provider (local)
* refactor: move useGetUserQuery to data-provider and update imports
* refactor: enhance loginUser mutation with success and error handling as pass in options to hook
* refactor: update enabled condition in queries to handle undefined config
* refactor: enhance authentication mutations with queriesEnabled state management
* refactor: improve conditional rendering for error messages and feature flags in Login component
* refactor: remove unused queriesEnabled state from AuthContextProvider
* refactor: implement queriesEnabled state management in LoginLayout with timeout handling
* refactor: add conditional check for end session endpoint in OpenID strategy
* ci: fix tests after changes
* refactor: remove endSessionEndpoint from user schema and update logoutController to use OpenID issuer's end_session_endpoint
* refactor: update logoutController to use end_session_endpoint from issuer metadata
* 🐛 fix: Prevent processing of non-artifact nodes in artifact plugin
* refactor: remove deprecated fields, add `reasoning_effort`
* refactor: move `reasoning_effort` to the second column in OpenAI settings
* feat: add support for additional AI Gateway provider in extractBaseURL function
* refactor: move `reasoning_effort` field to conversationPreset and remove from agentOptions
* adding youtube tool
* refactor: use short `url` param instead of `videoUrl`
* refactor: move API key retrieval to a separate credentials module
* refactor: remove unnecessary `isEdited` message property
* refactor: remove unnecessary `isEdited` message property pt. 2
* refactor: YouTube Tool with new `tool()` generator, handle tools already created by new `tool` generator
* fix: only reset request data for multi-convo messages
* refactor: enhance YouTube tool by adding transcript parsing and returning structured JSON responses
* refactor: update transcript parsing to handle raw response and clean up text output
* feat: support toolkits and refactor YouTube tool as a toolkit for better LLM usage
* refactor: remove unused OpenAPI specs and streamline tools transformation in loadAsyncEndpoints
* refactor: implement manifestToolMap for better tool management and streamline authentication handling
* feat: support toolkits for assistants
* refactor: rename loadedTools to toolDefinitions for clarity in PluginController and assistant controllers
* feat: complete support of toolkits for assistants
---------
Co-authored-by: Danilo Pejakovic <danilo.pejakovic@leoninestudios.com>
* implemented Apple Auth login.
Closes: #3438
TODO:
- write config Doc
* removed some comments
* removed comment
* Add unit tests for Apple login strategy
Introduce comprehensive tests for the Apple login strategy, covering new user creation, existing user updates, and error handling scenarios during the authentication flow. Mocks implemented for external dependencies to ensure isolated testing.
* Remove unnecessary blank line in socialLogins.js
* feat: allows admin to see and edits all actions
* feat: allows admin to see and edits all actions
* rollback: admins can edit all actions, no configuration
* fix: admins don't override the user of existing actions and they preserve the user of the assistant when creating a new action
---------
Co-authored-by: Olivier Schiavo <olivier.schiavo@wengo.com>
* chore: remove all bing code
* chore: remove bing code and auto-focus effects
* chore: add back escapeRegExp helper function for regex special character handling
* chore: remove deprecated fields from settings and conversation schema
* fix: ensure default endpoint is set correctly in conversation setup
* feat: add disableFocus option to newConversation for improved search behavior
* ✨ feat: Implement Show Thinking feature; refactor: testing thinking render optimizations
* ✨ feat: Refactor Thinking component styles and enhance Markdown rendering
* chore: add back removed code, revert type changes
* chore: Add back resetCounter effect to Markdown component for improved code block indexing
* chore: bump @librechat/agents and google langchain packages
* WIP: reasoning type updates
* WIP: first pass, reasoning content blocks
* chore: revert code
* chore: bump @librechat/agents
* refactor: optimize reasoning tag handling
* style: ul indent padding
* feat: add Reasoning component to handle reasoning display
* feat: first pass, content reasoning part styling
* refactor: add content placeholder for endpoints using new stream handler
* refactor: only cache messages when requesting stream audio
* fix: circular dep.
* fix: add default param
* refactor: tts, only request after message stream, fix chrome autoplay
* style: update label for submitting state and add localization for 'Thinking...'
* fix: improve global audio pause logic and reset active run ID
* fix: handle artifact edge cases
* fix: remove unnecessary console log from artifact update test
* feat: add support for continued message handling with new streaming method
---------
Co-authored-by: Marco Beretta <81851188+berry-13@users.noreply.github.com>
* feat(.env.example): add o1-mini and o1-preview to .env.example
* feat(.env.example): add o1 to .env.example
---------
Co-authored-by: Evren Tan <evren.tan@pointr.tech>
Replaced an outdated Vite entry and corrected inconsistencies in dependencies.
Severity: moderate
Websites were able to send any requests to the development server and read the response in vite - https://github.com/advisories/GHSA-vg6x-rcgg-rjx6
* feat: Google Model Parameters
* fix: dynamic input number value, previously coerced by zod schema
* refactor: support openrouter reasoning tokens and XML for thinking directive to conform to ollama
* fix: virtualize combobox to prevent performance drop on re-renders of long model/agent/assistant lists
* refactor: simplify Fork component by removing unnecessary chat context index
* fix: prevent rendering of Thinking component when children are null
* refactor: update Markdown component to replace <think> tags and simplify remarkPlugins configuration
* refactor: reorder remarkPlugins to improve plugin configuration in Markdown component
* fix: google-thinking model safety settings fix
* chore: update pricing/context for deepseek models
* ci: update Deepseek model token limits to use dynamic mapping
* 🔄 refactor: frontend and backend share link logic; feat: qrcode for share link; feat: refresh link
* 🐛 fix: Conditionally render shared link and refactor share link creation logic
* 🐛 fix: Correct conditional check for shareId in ShareButton component
* 🔄 refactor: Update shared links API and data handling; improve query parameters and response structure
* 🔄 refactor: Update shared links pagination and response structure; replace pageNumber with cursor for improved data fetching
* 🔄 refactor: DataTable performance optimization
* fix: delete shared link cache update
* 🔄 refactor: Enhance shared links functionality; add conversationId to shared link model and update related components
* 🔄 refactor: Add delete functionality to SharedLinkButton; integrate delete mutation and confirmation dialog
* 🔄 feat: Add AnimatedSearchInput component with gradient animations and search functionality; update search handling in API and localization
* 🔄 refactor: Improve SharedLinks component; enhance delete functionality and loading states, optimize AnimatedSearchInput, and refine DataTable scrolling behavior
* fix: mutation type issues with deleted shared link mutation
* fix: MutationOptions types
* fix: Ensure only public shared links are retrieved in getSharedLink function
* fix: `qrcode.react` install location
* fix: ensure non-public shared links are not fetched when checking for existing shared links, and remove deprecated .exec() method for queries
* fix: types and import order
* refactor: cleanup share button UI logic, make more intuitive
---------
Co-authored-by: Danny Avila <danny@librechat.ai>
* 🔧 refactor: Remove unused penalties and enhance reasoning token handling in OpenAIClient
* 🔧 refactor: `addInstructions` default to adding instructions at index 0, flag for legacy behavior
* chore: remove long placeholder
* chore: update localization strings across multiple languages
* ci: adjust tests for new `addInstructions` behavior
Fixes#5310
Add `aria-label="previous"` attribute to the 'Prev' button in the Prompts Panel.
* Modify `client/src/components/Chat/Prompts.tsx` to include `aria-label="previous"` attribute for the button.