-
-
Notifications
You must be signed in to change notification settings - Fork 5.3k
ποΈ a11y: Add Accessible Name to Button for File Attachment Removal #6709
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+6
β1
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
berry-13
approved these changes
Apr 3, 2025
jmaddington
added a commit
to jmaddington/LibreChat
that referenced
this pull request
Apr 8, 2025
* ποΈ a11y: Add Accessible Name to Button for File Attachment Removal (#6709) * π§ fix: Chat Middleware, Zod Conversion, Auto-Save and S3 URL Refresh (#6720) * π§ feat: Add configurable S3 URL refresh expiry time * fix: Set default width and height for URLIcon component in case container style results in NaN * refactor: Enhance auto-save functionality with debounced restore methods * feat: Add support for additionalProperties in JSON schema conversion to Zod * test: Add tests for additionalProperties handling in JSON schema to Zod conversion * chore: Reorder import statements for better readability in ask route * fix: Handle additional successful response status code (200) in SSE error handler * fix: add missing rate limiting middleware for bedrock and agent chat routes * fix: update moderation middleware to check feature flag before processing requests * fix: add moderation middleware to chat routes for text moderation * Revert "refactor: Enhance auto-save functionality with debounced restore methods" This reverts commit d2e4134d1f546042fdf0a3181c1cc85a387ad0ab. * refactor: Move base64 encoding/decoding functions to top-level scope and optimize input handling * π§ fix: Agent Capability Checks & DocumentDB Compatibility for Agent Resource Removal (#6726) * fix: tool capability checks in loadAgentTools function * fix: enhance atomicity in removing agent resource files and add concurrency tests, improve documentdb compatibility * πͺ chore: Update Gemini Pricing (#6731) * π fix: Improve audio MIME type detection and handling in Speech to Text hook (#6707) * πͺΊ refactor: Nest Permission fields for Roles (#6487) * ποΈ feat: Add Group model and schema with GroupType enum * ποΈ feat: Introduce Permissions module and refactor role-based access control * ποΈ feat: Refactor permissions handling and consolidate permission schemas * ποΈ feat: Refactor role permissions handling and improve role initialization logic * ποΈ feat: Update Role.spec.js to improve imports and enhance test structure * ποΈ feat: Update access control logic to ensure proper permission checks in role handling * ποΈ chore: Bump versions for librechat-data-provider to 0.7.75 and @librechat/data-schemas to 0.0.6 * ποΈ feat: Improve role permissions handling by ensuring defaults are applied correctly * ποΈ feat: Update role permissions schema to comment out unused SHARE permission * ποΈ chore: Bump version of librechat-data-provider to 0.7.77 and remove unused groups field from IUser interface * ποΈ chore: Downgrade version of librechat-data-provider to 0.7.76 * π§ chore: Bump versions for librechat-data-provider to 0.7.77 and data-schemas to 0.0.6 * ποΈ chore: Update version of librechat-data-provider to 0.7.789 --------- Co-authored-by: Danny Avila <[email protected]> * π¦ chore: Update `caniuse-lite` dependency to version 1.0.30001706 (#6482) * π§ chore: Update caniuse-lite dependency to version 1.0.30001706 in package.json and package-lock.json * π§ chore: Remove caniuse-lite dependency from package.json and package-lock.json * βοΈ refactor: OAuth Flow Signal, Type Safety, Tool Progress & Updated Packages (#6752) * chore: bump @librechat/agents and related packages * refactor: update message state for tool calls run step, in case no tool call chunks are received * fix: avoid combining finalized args createContentAggregator for tool calls * chore: bump @librechat/agents to version 2.3.99 * feat: add support for aborting flows with AbortSignal in createFlow methods * fix: improve handling of tool call arguments in useStepHandler * chore: bump @librechat/agents to version 2.4.0 * fix: update flow identifier format for OAuth login in createActionTool to allow uniqueness per run * fix: improve error message handling for aborted flows in FlowStateManager * refactor: allow possible multi-agent cross-over for oauth login * fix: add type safety for Sandpack files in ArtifactCodeEditor * π¦ chore: bump vite from 6.2.3 to 6.2.5 (#6745) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.3 to 6.2.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.2.5 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * πͺΊ fix: Update Role Handling due to New Schema Shape (#6774) * π fix: Update translation for shared agent message in English locale * πͺΊ fix: Migrate role schema to new nested structure and update permissions handling where missed * π¨οΈ fix: Show ModelSpec Greeting (#6770) * π¦ feat: MCP Support for Non-Agent Endpoints (#6775) * wip: mcp select * refactor: Update useAvailableToolsQuery to support generic data types * feat: Enhance MCPSelect to dynamically load server options and improve MultiSelect component styling * WIP: ephemeral agents * wip: Add null check for MCPSelect and improve MultiSelect focus handling * feat: Pass conversationId prop to MCPSelect in BadgeRow to optimize badge rendering * feat: useApplyNewAgentTemplate hook to manage ephemeral agent upon conversation creation * WIP: eph. agent payload * refactor(OpenAIClient): streamline message processing by replacing content handling with parseTextParts function * feat: enhance applyAgentTemplate function to accept source conversation ID for improved template application * feat(parsers): add skipReasoning parameter to parseTextParts for conditional reasoning handling * WIP: first pass, ephemeral agent backend processing * chore: import order * feat: update loadEphemeralAgent and loadAgent functions to accept model_parameters for enhanced agent configuration * feat: add showMCPServers prop to BadgeRow for conditional rendering of MCPSelect, fix react rule violation * feat: enhance MCPSelect with localized placeholder and custom icon, add renderSelectedValues callback * feat: simplify message processing in AnthropicClient by replacing content handling with parseTextParts function * feat: implement useLocalStorage hook for managing MCP values and update MCPSelect to utilize it * chore: remove chatGPTBrowserSchema from endpoint schemas and update types for improved schema management * chore: remove compactChatGPTSchema from endpoint schemas and update types for better schema management * refactor: rename schemas for clarity and improve schema management * feat: extend model detection to include 'codestral' alongside 'mistral' * feat: add endpointType parameter to buildOptions and initializeClient functions * fix: update condition for handling completion in BaseClient to include agents client * refactor: simplify payload parsing logic in AgentClient and remove unused providerParsers * refactor: change useSetRecoilState to useRecoilState for better state management in MCPSelect component * refactor: streamline chat route handlers by consolidating middleware and improving endpoint structure * style: update MCPSelect and MultiSelect components for improved layout in mobile view * v0.7.790 * feat: add getMessageMapMethod to process message text and content in GoogleClient * chore: include LAST_MCP_ key prefix in clearLocalStorage function for proper teardown on logout * Squashed commit of the following: commit 7ae5c710e3ecf4c559a77ca4f60c363b0ae4af37 Author: Jonathan Addington <[email protected]> Date: Tue Apr 8 14:11:34 2025 +0000 chore: misc changes to devcontainer for local dev commit 9d4ab0abb9562b167bf9e61d92497aeedce56f11 Merge: c351f807 4a01302d Author: Jonathan Addington <[email protected]> Date: Mon Apr 7 19:55:20 2025 -0400 Merge branch 'jm-production' of https://github.com/jmaddington/LibreChat into jm-production commit c351f807a32f2841e3051308f033264d180a7deb Author: Jonathan Addington <[email protected]> Date: Mon Apr 7 19:55:14 2025 -0400 Make branch parameter optional in deploy-jm workflow to support easier manual triggering commit 4a01302d8a61c3ee001dc20601d2728caa6cb855 Author: JM Addington <[email protected]> Date: Wed Apr 2 23:29:23 2025 -0400 Feature/status badges (#65) * Add workflow status badges to README and create build-only workflow * Enable manual workflow triggering and include jm-production branch * Add tracking/* and feature/* branches to workflow triggers * Fix Docker Build Only badge in README * Fix duplicate FluxAPI declarations in handleTools.js * Fix frontend build by externalizing problematic dependencies * Add clean-set to externalized dependencies * chore: misc package and readme updates * Fix TimeAPI test module import path * Fix TimeAPI test and remove console.error in config/index.js commit d5f7fab7d972c0b53f1211506d16e048249b9510 Author: Jonathan Addington <[email protected]> Date: Wed Apr 2 19:42:45 2025 -0400 Enhance deploy-jm workflow with manual trigger options - Add input parameters for manual workflow runs - Make branch, tag, and dockerfile configurable - Add caching for faster builds - Improve inline documentation π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> commit 3cecf16f8529ffeb44516b25f737f89d564b859a Author: JM Addington <[email protected]> Date: Wed Apr 2 19:38:16 2025 -0400 Update README.md to document tracking branch naming convention (#62) commit a983b07180014facd15dbffc41238324589b6550 Merge: a33927c6 9da63b48 Author: Jonathan Addington <[email protected]> Date: Wed Apr 2 19:34:51 2025 -0400 Merge files from danny-main branch verbatim Merge specific files from danny-main branch taking their versions verbatim: - CHANGELOG.md - api/app/clients/GoogleClient.js - api/server/controllers/UserController.js - api/server/middleware/abortMiddleware.js - api/server/services/Config/getCustomConfig.js - api/server/services/Files/S3/crud.js - api/server/services/MCP.js - api/app/clients/tools/structured/FluxAPI.js - client and package files - Removed test files that don't exist in danny-main π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> commit 9da63b48376b73ef283113e9ff025ba60bce94b1 Author: Jonathan Addington <[email protected]> Date: Wed Apr 2 19:30:37 2025 -0400 Merge files from danny-main branch verbatim Merge specific files from danny-main branch taking their versions verbatim: - CHANGELOG.md - api/app/clients/GoogleClient.js - api/server/controllers/UserController.js - api/server/middleware/abortMiddleware.js - api/server/services/Config/getCustomConfig.js - api/server/services/Files/S3/crud.js - api/server/services/MCP.js - client and package files - Removed test files that don't exist in danny-main π€ Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> commit a33927c6f6e0d06f74895fc9b0cfe6d4fbf06ffc Author: JM Addington <[email protected]> Date: Wed Apr 2 19:05:09 2025 -0400 Tracking/2025/04/02 (#60) * π§ feat: Reasoning UI for Agents (#5904) * chore: bump https-proxy-agent and @librechat/agents * refactor: Improve error logging in OllamaClient for API fetch failures * feat: Add DeepSeek provider support and enhance provider name handling * refactor: Use Providers.OLLAMA constant for model name check in fetchModels function * feat: Enhance formatAgentMessages to handle reasoning content type * feat: OpenRouter Agent Reasoning * hard work and dedicationgit add .env.example :) * fix: Handle Google social login with missing last name Social login with Google was previously displaying 'undefined' when a user's last name was empty or not provided. Changes: - Conditionally render last name only if it exists - Prevent displaying 'undefined' when last name is missing * fix: add missing file endings for developers yml,yaml and log --------- Co-authored-by: Mohamed Al-Duraji <[email protected]> Co-authored-by: Deepak Kendole <[email protected]> Co-authored-by: Peter Rothlaender <[email protected]> * π fix: Add Null Checks for BaseURL in Agent Config (#5908) * βοΈ refactor: Enhance Logging, Navigation And Error Handling (#5910) * refactor: Ensure Axios Errors are less Verbose if No Response * refactor: Improve error handling in logAxiosError function * fix: Prevent ModelSelect from rendering for Agent Endpoints * refactor: Enhance logging functions with type parameter for better clarity * refactor: Update buildDefaultConvo function to use optional endpoint parameter since we pass a default value for undefined * refactor: Replace console logs with logger warnings and errors in useNavigateToConvo hook, and handle removed endpoint edge case * chore: import order * βοΈ docs: Update LICENSE.md Year: 2024 -> 2025 (#5915) * π feat: Two-Factor Authentication with Backup Codes & QR support (#5685) * π feat: add Two-Factor Authentication (2FA) with backup codes & QR support (#5684) * working version for generating TOTP and authenticate. * better looking UI * refactored + better TOTP logic * fixed issue with UI * fixed issue: remove initial setup when closing window before completion. * added: onKeyDown for verify and disable * refactored some code and cleaned it up a bit. * refactored some code and cleaned it up a bit. * refactored some code and cleaned it up a bit. * refactored some code and cleaned it up a bit. * fixed issue after updating to new main branch * updated example * refactored controllers * removed `passport-totp` not used. * update the generateBackupCodes function to generate 10 codes by default: * update the backup codes to an object. * fixed issue with backup codes not working * be able to disable 2FA with backup codes. * removed new env. replaced with JWT_SECRET * β¨ style: improved a11y and style for TwoFactorAuthentication * π fix: small types checks * β¨ feat: improve 2FA UI components * fix: remove unnecessary console log * add option to disable 2FA with backup codes * - add option to refresh backup codes - (optional) maybe show the user which backup codes have already been used? * removed text to be able to merge the main. * removed eng tx to be able to merge * fix: migrated lang to new format. * feat: rewrote whole 2FA UI + refactored 2FA backend * chore: resolving conflicts * chore: resolving conflicts * fix: missing packages, because of resolving conflicts. * fix: UI issue and improved a11y * fix: 2FA backup code not working * fix: update localization keys for UI consistency * fix: update button label to use localized text * fix: refactor backup codes regeneration and update localization keys * fix: remove outdated translation for shared links management * fix: remove outdated 2FA code prompts from translation.json * fix: add cursor styles for backup codes item based on usage state * fix: resolve conflict issue * fix: resolve conflict issue * fix: resolve conflict issue * fix: missing packages in package-lock.json * fix: add disabled opacity to the verify button in TwoFactorScreen * β fix: update 2FA logic to rely on backup codes instead of TOTP status * βοΈ fix: Simplify user retrieval in 2FA logic by removing unnecessary TOTP secret query * βοΈ test: Add unit tests for TwoFactorAuthController and twoFactorControllers * βοΈ fix: Ensure backup codes are validated as an array before usage in 2FA components * βοΈ fix: Update module path mappings in tests to use relative paths * βοΈ fix: Update moduleNameMapper in jest.config.js to remove the caret from path mapping * βοΈ refactor: Simplify import paths in TwoFactorAuthController and twoFactorControllers test files * βοΈ test: Mock twoFactorService methods in twoFactorControllers tests * βοΈ refactor: Comment out unused imports and mock setups in test files for two-factor authentication * βοΈ refactor: removed files * refactor: Exclude totpSecret from user data retrieval in AuthController, LoginController, and jwtStrategy * refactor: Consolidate backup code verification to apply DRY and remove default array in user schema * refactor: Enhance two-factor authentication ux/flow with improved error handling and loading state management, prevent redirect to /login --------- Co-authored-by: Marco Beretta <[email protected]> Co-authored-by: Danny Avila <[email protected]> * π refactor: Ensure File Deletions, File Naming, and Agent Resource Updates (#5928) * refactor: Improve error logging for file upload and processing functions to prevent verbosity * refactor: Add uploads directory to Docker Compose to persist file uploads * refactor: `addAgentResourceFile` to handle edge case of non-existing `tool_resource` array * refactor: Remove version specification from deploy-compose.yml * refactor: Prefix filenames with file_id to ensure uniqueness in file uploads * refactor: Enhance error handling in deleteVectors to log warnings for non-404 errors * refactor: Limit file search results to top 5 based on relevance score * π i18n: Update translation.json with latest translations --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * π fix: RAG Results Sorted By Distance (#5931) * refactor: Extract file unlinking logic into a separate function and don't throw error * fix: RAG results are actually in distance, not score * π ci: Automate`CHANGELOG.md` (#5838) * feat: started with automated CHANGELOG.md * fix: no `configuration.json` found * refactor: `configuration.json` * fix: missing label `configuration.json` * fix: missing label `configuration.json` * fix: missing label `configuration.json` * fix: missing label `configuration.json` * fix: missing label `configuration.json` * ci: test new workflow action * ci: test new workflow action * ci: test new workflow action * feat: working CHANGELOG.md generation * feat: working CHANGELOG.md generation * feat: working CHANGELOG.md generation * feat: working CHANGELOG.md generation * feat: working CHANGELOG.md generation * feat: working CHANGELOG.md generation * feat: working CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * fix: separate release and Unreleased workflows CHANGELOG.md generation * refactor: only trigger the `unreleased-changelog` action on push to `main` and `generate-release-changelog` only when pushing a tag with `v*.*.*` * refactor: Runs only every Monday at 00:00 UTC * π fix: 2FA Encrypt TOTP Secrets & Improve Docs (#5933) * π fix: Integrate TOTP secret retrieval and encryption in Two-Factor Authentication * π refactor: Simplify TOTP verification by removing commented-out code * π§ fix: Resizable Panel Unmount Error & Code Env. File Re-Upload (#5947) * π§ refactor: handle full path for code env. file re-upload * fix: update react-resizable-panels to version 2.1.7 to resolve error thrown on unmount of artifacts; ref: https://github.com/bvaughn/react-resizable-panels/issues/372 * refactor: replace promptPrefix with systemMessage in GoogleClient for improved clarity, and to prevent saving LibreChat feature-specific instructions to the user's custom instructions * β¨ style: Enhance Styling & Accessibility (#5956) * β¨ feat: Enhance UI Components with Shadows and Accessibility Improvements * π§ fix: Correct Category Labels and Values in API Model & Adjust Button Class in Prompt List * π’ chore: Remove Dollar Sign from Balance Display (#5948) * π feat: Support Redis Clusters, Trusted Proxy Setting, And Toggle Meilisearch Indexing (#5963) * refactor: Improve MeiliSearch integration with environment-based configuration for running index sync * chore: Remove Question issue template from GitHub repository * feat: Enable indexing in MeiliSearch configuration and clean up error handling in indexSync * feat: Update .env.example to include optional indexing configuration * refactor: rename env var for disabling index sync to MEILI_NO_SYNC * Added the option to change the default trusted proxy * feat: Add TRUST_PROXY configuration to .env.example for reverse proxy settings * feat: Enhance Redis support with cluster configuration and TLS options * feat(redis): add cluster support, environment config and url mapping - Add Redis cluster configuration with isEnabled flag - Configure prefix and max listeners settings - Improve code formatting and readability - Fix URL vs host parameter handling - Update environment variables and regex patterns --------- Co-authored-by: Gil AssunΓ§Γ£o <[email protected]> Co-authored-by: Pedro Reis <[email protected]> Co-authored-by: JoΓ£o Trigo Soares <[email protected]> * π refactor: Agents Accessibility and Gemini Error Handling (#5972) * style: Enhance ControlCombobox with Carat Display, ClassName, and Disabled State * refactor(ModelPanel): replace SelectDropdown with ControlCombobox for improved accessibility * style: Adjust padding and positioning in ModelPanel for improved layout * style(ControlCombobox): add containerClassName and iconSide props for enhanced customization * style(ControlCombobox): add iconClassName prop for customizable icon styling * refactor(AgentPanel): enhance layout with new button for creating agents and adjust structure for better alignment * refactor(AgentSelect): replace SelectDropDown with ControlCombobox for improved accessibility and layout * feat(translation): add new translation key for improved UI clarity * style(AgentSwitcher, AssistantSwitcher): add iconClassName prop for customizable icon styling * refactor(AgentPanelSkeleton): improve layout of skeleton components to match new visual structure * style(AgentPanel, AgentPanelSkeleton): add margin to flex container for improved layout consistency * a11y(AgentSelect, ControlCombobox): add selectId prop for preventing focus going to start to page after agent selection * fix(AgentSelect): update SELECT_ID constant for improved clarity in component identification * fix(GoogleClient): update type annotation, add abort handling for content generation requests, catch "uncaught" abort errors and GoogleGenerativeAI errors from `@google/generative-ai` * π i18n: Update translation.json with latest translations (#5946) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * βοΈ ci: Trigger Restriction for `Detect Unused NPM Packages` (#5844) The workflow now only runs on pull requests that modify: - The root `package.json` or `package-lock.json` file - Any file under the client folder - Any file under the api folder * π€ feat: 192x192 Icon for Android PWA (#5966) * fix: Add 192x192 icon to allow the PWA to install on Android devices using Chrome. * fix: Use less whitespace on icon-192x192.png. Re-generate maskable-icon.png and apple-touch-icon-180x180.png to be higher quality, cripser and use less kilobytes. * π feat: Enhance User Experience and SEO with Accessibility Updates and robots.txt (#5392) * π fix: Refactor AudioRecorder to use button element for improved accessibility * π fix: Update conversation menu button ID for improved accessibility * π fix: Remove redundant role attribute from SidePanel for improved accessibility * feat: Add robots.txt to manage web crawler access * feat: Update index.html with meta description and remove legacy file * fix: resolve merge conflicts. * fix: resolve merge conflicts. * fix: resolve merge conflicts. * feat: Update index.html with meta description and remove legacy file * π§ feat: Add legacy support and improve SidePanel accessibility * π§ feat: Integrate express-static-gzip for improved static file serving and add new plugins for enhanced functionality * π§ chore: Remove unused HTML ESLint plugin configurations and dependencies --------- Co-authored-by: Ruben Talstra <[email protected]> * π feat: Add Custom Welcome Message in `librechat.yaml` (#5870) * feat: Custom Welcome Message (#2967) * don't think I'm on the right path? * β¨ feat: Implement custom welcome message configuration in interface * πΌ feat: "Run Code" Button Toggle (#5988) * feat: Add 'Run Code' and 'Temporary Chat' permissions to role management * feat: Add NextFunction typedef to api/typedefs.js * feat: Add temporary chat and run code permissions to role schema * refactor: Enhance access check middleware with logging for permission errors and better typing * refactor: Set default value of USE permission to true in multiConvoPermissionsSchema * refactor: Implement checkAccess function for separation of permission validation logic from middleware * feat: Integrate permission checks for tool execution and enhance Markdown code block with execution capability * fix: Convert REDIS_MAX_LISTENERS to a number, closes #5979 * π feat: Claude 3.7 Support + Reasoning (#6008) * fix: missing console color methods for admin scripts * feat: Anthropic Claude 3.7 Sonnet Support * feat: update eventsource to version 3.0.2 and upgrade @modelcontextprotocol/sdk to 1.4.1 * fix: update DynamicInput to handle number type and improve initial value logic * feat: first pass Anthropic Reasoning (Claude 3.7) * feat: implement streaming support in AnthropicClient with reasoning UI handling * feat: add missing xAI (grok) models * π fix: Shared Link with Markdown Code Error (#6016) * refactor: Export AuthContext from AuthContextProvider * refactor: Update useHasAccess to utilize useContext for AuthContext * refactor: Enhance type definitions in useHasAccess for better type safety * sandbox sessions storage * sandbox sessions storage * π i18n: Add Georgian Language and Update Fallback Languages (#6022) * β¨ feat: Anthropic Agents Prompt Caching & UI Accessibility Enhancements (#6045) * chore: remove auto-focus for now * refactor: move react-hook-form Controller Logic to AgentSelect from AgentPanel * fix: a11y focus issue with AgentSelect by never replacing it in its component tree * fix: maintain ComboBox focus and force re-render on agent ID change in AgentPanel * chore: `gemini-2.0-flash-lite-preview-02-05` (deprecated) * refactor: extract cache control logic and headers configuration to helper functions in AnthropicClient * feat: anthropic agents prompt caching * chore: bump @librechat/agents and related dependencies * fix: typo * π§ refactor: Improve Params Handling, Remove Legacy Items, & Update Configs (#6074) * chore: include all assets for service worker, remove unused tsconfig.node.json, eslint ignore vite config * chore: exclude image files from service worker caching * refactor: simplify googleSchema transformation and error handling * fix: max output tokens cap for 3.7 models * fix: skip index fixing in CI, development, and test environments * ci: add maxOutputTokens handling tests for Claude models * refactor: drop top_k and top_p parameters for claude-3.7 in AnthropicClient and add tests for new behavior * refactor: conditionally include top_k and top_p parameters for non-claude-3.7 models * ci: add unit tests for getLLMConfig function with various model options * chore: remove all OPENROUTER_API_KEY legacy logic * refactor: optimize stream chunk handling * feat: reset model parameters button * refactor: remove unused examples field from convoSchema and presetSchema * chore: update librechat-data-provider version to 0.7.6993 * refactor: move excludedKeys set to data-provider for better reusability * feat: enhance saveMessageToDatabase to handle unset fields and fetched conversation state * feat: add 'iconURL' and 'greeting' to excludedKeys in data provider config * fix: add optional chaining to user ID retrieval in getConvo call * π i18n: Update translation.json with latest translations (#6009) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * π feat: Agent Cache Tokens & Anthropic Reasoning Support (#6098) * fix: handling of top_k and top_p parameters for Claude-3.7 models (allowed without reasoning) * feat: bump @librechat/agents for Anthropic Reasoning support * fix: update reasoning handling for OpenRouter integration * fix: enhance agent token spending logic to include cache creation and read details * fix: update logic for thinking status in ContentParts component * refactor: improve agent title handling * chore: bump @librechat/agents to version 2.1.7 for parallel tool calling for Google models * π feat: GPT-4.5, Anthropic Tool Header, and OpenAPI Ref Resolution (#6118) * π§ refactor: Update settings to use 'as const' for improved type safety and make gpt-4o-mini default model (cheapest) * π docs: Update README to reflect support for GPT-4.5 in image analysis feature * π§ refactor: Update model handling to use default settings and improve encoding logic * π§ refactor: Enhance model version extraction logic for improved compatibility with future GPT and omni models * feat: GPT-4.5 tx/token update, vision support * fix: $ref resolution logic in OpenAPI handling * feat: add new 'anthropic-beta' header for Claude 3.7 to include token-efficient tools; ref: https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use * πΌοΈ refactor: Enhance Env Extraction & Agent Image Handling (#6131) * refactor: use new image output format for agents using DALL-E tools * refactor: Enhance image fetching with proxy support and adjust logging placement in DALL-E 3 integration * refactor: Enhance StableDiffusionAPI to support agent-specific return values and display message for generated images * refactor: Add unit test execution for librechat-mcp in backend review workflow * refactor: Update environment variable extraction logic, export from serpate module to avoid circular refs, and remove deprecated tests * refactor: Add unit tests for environment variable extraction and enhance StdioOptionsSchema to process env variables * πΌ feat: Add Flux Image Generation Tool (#6147) * π§ fix: Log warning for aborted operations in AgentClient * ci: Remove unused saveMessageToDatabase mock in FakeClient initialization * ci: test actual implementation of saveMessageToDatabase * refactor: Change log level from warning to error for aborted operations in AgentClient * refactor: Add className prop to Image component for customizable styling, use theme selectors * feat: FLUX Image Generation tool * π i18n: Update translation.json with latest translations (#6132) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * π§ feat: Bedrock Anthropic Reasoning & Update Endpoint Handling (#6163) * feat: Add thinking and thinkingBudget parameters for Bedrock Anthropic models * chore: Update @librechat/agents to version 2.1.8 * refactor: change region order in params * refactor: Add maxTokens parameter to conversation preset schema * refactor: Update agent client to use bedrockInputSchema and improve error handling for model parameters * refactor: streamline/optimize llmConfig initialization and saving for bedrock * fix: ensure config titleModel is used for all endpoints * refactor: enhance OpenAIClient and agent initialization to support endpoint checks for OpenRouter * chore: bump @google/generative-ai * π i18n: Update translation.json with latest translations (#6159) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * π feat: Enhance Model Handling, Logging & xAI Agent Support (#6182) * chore: update @librechat/agents to version 2.1.9 * feat: xAI standalone provider for agents * chore: bump librechat-data-provider version to 0.7.6997 * fix: reorder import statements and enhance user listing output * fix: Update Docker Compose commands to support v2 syntax with fallback * π§ fix: drop `reasoning_effort` for o1-preview/mini models * chore: requireLocalAuth logging * fix: edge case artifact message editing logic to handle `new` conversation IDs * fix: remove `temperature` from model options in OpenAIClient if o1-mini/preview * fix: update type annotation for fetchPromisesMap to use Promise<string[]> instead of string[] * feat: anthropic model fetching * fix: update model name to use EModelEndpoint.openAI in fetchModels and fetchOpenAIModels * fix: add error handling to modelController for loadModels * fix: add error handling and logging for model fetching in loadDefaultModels * ci: update getAnthropicModels tests to be asynchronous * feat: add user ID to model options in OpenAI and custom endpoint initialization --------- Co-authored-by: Andrei Berceanu <[email protected]> Co-authored-by: KiGamji <[email protected]> * πͺ feat: Customize Sandpack `bundlerURL` for Artifacts (#6191) * π feat: Add Configurable MCP Server Timeouts (#6199) * π feat: Add Code API Proxy Support and Update MCP SDK (#6203) * chore: bump mcp sdk * feat: Add proxy support for file download and upload in Code Environment CRUD operations * chore: remove unused files * chore: change output format from CommonJS to ES module in server rollup config * β¨ v0.7.7 (#6206) * v0.7.7 * chore: Bump librechat-mcp version to 1.1.0 * action: update Unreleased changelog * Update CHANGELOG.md --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ruben Talstra <[email protected]> * π¦ refactor: Move DB Models to `@librechat/data-schemas` (#6210) * π feat: Introduce data schemas and refactor models to use @librechat/data-schemas * π feat: Add installation step for Data Schemas Package in backend review workflow * chore: Add `data-schemas` package to update/rebuild packages scripts * chore: Update Dockerfile to include data-schemas package build process * fix: add missing @rollup/plugin-typescript package * chore: Add GitHub Actions workflow for publishing data-schemas package --------- Co-authored-by: Danny Avila <[email protected]> * π i18n: Add Thai Language Support and Update Translations (#6219) * π i18n: Add Thai Language Support and Update Translations * π docs: Update Locize Logo in README.md * π¦ ci: `npm publish` access to public for `data-schemas` * π¦ ci: Update workflow to publish `@librechat/data-schemas` to NPM with manual trigger option * π¦ ci: Refactor workflow to combine build and publish steps with version check for `@librechat/data-schemas` * π¦ ci: Update npm authentication token for publishing in workflow * π i18n: Update translation.json with latest translations (#6220) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * π¦ chore: Patch `axios` to address CVE-2025-27152 (#6222) * π¦ chore: remove `langchain` (no longer used) * chore: patch `axios` to address CVE-2025-27152 * π fix: Avatar Type Definitions in Agent/Assistant Schemas (#6235) * fix: Simplify avatar type definition in agent and assistant schemas * fix: Update regex to correctly match OpenAI model identifiers * π i18n: Update translation.json with latest translations (#6240) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * π§ fix: MeiliSearch Field Error and Patch Incorrect Import by #6210 (#6245) * π¦ refactor: Update MeiliSearch integration and improve schema handling * Update indexSync.js * π¦ refactor: Update Conversation model import path in indexSync.js * π¦ refactor: Update import paths for Conversation and Message models in indexSync.js * π fix: Enhance Two-Factor Authentication (#6247) * π feat: Implement Two-Factor Authentication (2FA) functionality * fix: Two-Factor Authentication Logic and State Management * π feat: Add LICENSE file and update package version to 0.0.2 with MIT license * β οΈ refactor: Use Error Content Part Instead Of Throwing Error for Agents (#6262) * π fix: Await saveMessage in abortMiddleware to ensure proper execution (#6248) * π i18n: Update translation.json with latest translations (#6241) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * π feat: Mistral OCR API / Upload Files as Text (#6274) * refactor: move `loadAuthValues` to `~/services/Tools/credentials` * feat: add createAxiosInstance function to configure axios with proxy support * WIP: First pass mistral ocr * refactor: replace getConvoFiles with getToolFiles for improved file retrieval logic * refactor: improve document formatting in encodeAndFormat function * refactor: remove unused resendFiles parameter from buildOptions function (this option comes from the agent config) * fix: update getFiles call to include files with `text` property as well * refactor: move file handling to `initializeAgentOptions` * refactor: enhance addImageURLs method to handle OCR text and improve message formatting * refactor: update message formatting to handle OCR text in various content types * refactor: remove unused resendFiles property from compactAgentsSchema * fix: add error handling for Mistral OCR document upload and logging * refactor: integrate OCR capability into file upload options and configuration * refactor: skip processing for text source files in delete request, as they are directly tied to database * feat: add metadata field to ExtendedFile type and update PanelColumns and PanelTable components for localization and metadata handling * fix: source icon styling * wip: first pass, frontend file context agent resources * refactor: add hover card with contextual information for File Context (OCR) in FileContext component * feat: enhance file processing by integrating file retrieval for OCR resources in agent initialization * feat: implement OCR config; fix: agent resource deletion for ocr files * feat: enhance agent initialization by adding OCR capability check in resource priming * ci: fix `~/config` module mock * ci: add OCR property expectation in AppService tests * refactor: simplify OCR config loading by removing environment variable extraction, to be done when OCR is actually performed * ci: add unit test to ensure environment variable references are not parsed in OCR config * refactor: disable base64 image inclusion in OCR request * refactor: enhance OCR configuration handling by validating environment variables and providing defaults * refactor: use file stream from disk for mistral ocr api * π¨ a11y: Update Model Spec Description Text (#6294) * π§ fix: Axios Proxy Usage And Bump `mongoose` (#6298) * fix: bump mongoose to fix nested schema errors * fix: Enhance Axios instance creation with improved proxy handling and error logging * fix: Refactor Axios instance creation and remove proxy handling from file upload functions * fix: Update proxy configuration in Axios instance creation and add unit tests * π€ feat: Support OpenAI Web Search models (#6313) * fix: reorder vision model entries for cheaper models first * fix: add endpoint property to bedrock client initialization * fix: exclude unsupported parameters for OpenAI Web Search models * fix: enhance options to exclude unsupported parameters for Web Search models * π§ fix: comment out MCP servers to resolve service run issues (#6316) Co-authored-by: Coding Wizard <[email protected]> * π feat: Agent Chain (Mixture-of-Agents) (#6374) * wip: first pass, dropdown for selecting sequential agents * refactor: Improve agent selection logic and enhance performance in SequentialAgents component * wip: seq. agents working ideas * wip: sequential agents style change * refactor: move agent form options/submission outside of AgentConfig * refactor: prevent repeating code * refactor: simplify current agent display in SequentialAgents component * feat: persist form value handling in AgentSelect component for agent_ids * feat: first pass, sequential agnets agent update * feat: enhance message display with agent updates and empty text handling * chore: update Icon component to use EModelEndpoint for agent endpoints * feat: update content type checks in BaseClient to use constants for better readability * feat: adjust max context tokens calculation to use 90% of the model's max tokens * feat: first pass, agent run message pruning * chore: increase max listeners for abort controller to prevent memory leaks * feat: enhance runAgent function to include current index count map for improved token tracking * chore: update @librechat/agents dependency to version 2.2.5 * feat: update icons and style of SequentialAgents component for improved UI consistency * feat: add AdvancedButton and AdvancedPanel components for enhanced agent settings navigation, update styling for agent form * chore: adjust minimum height of AdvancedPanel component for better layout consistency * chore: update @librechat/agents dependency to version 2.2.6 * feat: enhance message formatting by incorporating tool set into agent message processing, in order to allow better mix/matching of agents (as tool calls for tools not found in set will be stringified) * refactor: reorder components in AgentConfig for improved readability and maintainability * refactor: enhance layout of AgentUpdate component for improved visual structure * feat: add DeepSeek provider to Bedrock settings and schemas * feat: enhance link styling in mobile.css for better visibility and accessibility * fix: update banner model import in update banner script; export Banner model * refactor: `duplicateAgentHandler` to include tool_resources only for OCR context files * feat: add 'qwen-vl' to visionModels for enhanced model support * fix: change image format from JPEG to PNG in DALLE3 response * feat: reorganize Advanced components and add localizations * refactor: simplify JSX structure in AgentChain component to defer container styling to parent * feat: add FormInput component for reusable input handling * feat: make agent recursion limit configurable from builder * feat: add support for agent capabilities chain in AdvancedPanel and update data-provider version * feat: add maxRecursionLimit configuration for agents and update related documentation * fix: update CONFIG_VERSION to 1.2.3 in data provider configuration * feat: replace recursion limit input with MaxAgentSteps component and enhance input handling * feat: enhance AgentChain component with hover card for additional information and update related labels * fix: pass request and response objects to `createActionTool` when using assistant actions to prevent auth error * feat: update AgentChain component layout to include agent count display * feat: increase default max listeners and implement capability check function for agent chain * fix: update link styles in mobile.css for better visibility in dark mode * chore: temp. remove agents package while bumping shared packages * chore: update @langchain/google-genai package to version 0.1.11 * chore: update @langchain/google-vertexai package to version 0.2.2 * chore: add @librechat/agents package at version 2.2.8 * feat: add deepseek.r1 model with token rate and context values for bedrock * π§ fix: Update Token Calculations/Mapping, MCP `env` Initialization (#6406) * fix: Enhance MCP initialization to process environment variables * fix: only build tokenCountMap with messages that are being used in the payload * fix: Adjust maxContextTokens calculation to account for maxOutputTokens * refactor: Make processMCPEnv optional in MCPManager initialization * chore: Bump version of librechat-data-provider to 0.7.73 * β feat: `initTimeout` for Slow Starting MCP Servers (#6383) * feat: make mcp server connect timeout configurable with initTimeout * style: add missing semicolon to connection.ts * π feat: `S3` Integration for File handling and Image uploads (#6142) * French Translation Update * French Translation Update * test * Add fileStrategy S3 Config * update s3 crud.js * π§ chore: downgrade dotenv to version 16.0.3 and add aws-sdk to package-lock.json * π§ chore: remove aws-sdk from package.json * π feat: Integrate AWS SDK for S3 with enhanced upload and retrieval functionalities * π feat: Implement S3 integration for file upload and retrieval functionalities * π feat: Enhance S3 initialization to support default credentials and improved error handling --------- Co-authored-by: Gael Martins <[email protected]> * π fix: Agent "Resend" Message Attachments + Source Icon Styling (#6408) * style: Update text file source icon background color for improved visibility in light mode * style: Update `vectordb` source icon background color for better visibility * fix: resend files behavior for tool resource message attachments (code interpreter and file search); Rename `getToolFiles` to `getConvoFiles` and simplify file retrieval logic; add `getToolFilesByIds` for fetching tool files by IDs * π fix: Prevent Crash on Duplicate Message ID (#6392) * fix: prevent crash on duplicate message ID Added error handling for MongoDB error code 11000 (duplicate key error) in saveMessage function. This prevents the application from crashing when trying to save messages with duplicate IDs, which can happen during aborted requests. Now logs a warning and continues execution safely. Closes: #5774 Closes: #5776 * fix: address ESLint issues in Message.js --------- Co-authored-by: odrec <[email protected]> * π i18n: Update translation.json with latest translations (#6277) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * πfeat: Enable OpenID Auto-Redirect (#6066) * added feature for oidc auto redirection * Added Cooldown logic for OIDC auto redirect for failed login attempts * π§ feat: Implement custom logout redirect handling and enhance OpenID auto-redirect logic * π§ refactor: Update getLoginError to use TranslationKeys for improved type safety * π§ feat: Localize redirect message to OpenID provider in Login component --------- Co-authored-by: Ruben Talstra <[email protected]> * π feat: Integrate `Azure Blob Storage` for file handling and image uploads (#6153) * π feat: Integrate Azure Blob Storage for file handling and image uploads * πΌ refactor: Correct module import case for Azure in strategies.js * π feat: Add Azure support in SourceIcon component * π feat: Enhance Azure Blob Service initialization with Managed Identity support * πΌ refactor: Remove unused Azure dependencies from package.json and package-lock.json * πΌ refactor: Remove unused Azure dependencies from package.json and package-lock.json * πΌ refactor: Remove unused Azure dependencies from package.json and package-lock.json * π feat: Add Azure SDK dependencies for identity and storage blob * π§ fix: Reorganize imports in strategies.js for better clarity * π§ fix: Correct comment formatting in strategies.js for consistency * π§ fix: Improve comment formatting in strategies.js for consistency * β‘ build(deps-dev): bump @babel/helpers from 7.26.9 to 7.26.10 (#6413) Bumps [@babel/helpers](https://github.com/babel/babel/tree/HEAD/packages/babel-helpers) from 7.26.9 to 7.26.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-helpers) --- updated-dependencies: - dependency-name: "@babel/helpers" dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * π feat: Add support for custom AWS endpoint in S3 initialization (#6431) * π fix: Invalid Key Length in 2FA Encryption (#6432) * π feat: Implement v3 encryption and decryption methods for TOTP secrets * π feat: Refactor Two-Factor Authentication methods and enhance 2FA verification process * π feat: Update encryption methods to use hex decoding for legacy keys and improve error handling for AES-256-CTR * π feat: Update import paths in TwoFactorController for consistency and clarity * πββοΈ refactor: Improve Agent Run Context & Misc. Changes (#6448) * chore: bump Model Context Protocol SDK dependencies * fix: correct indentation in MCPConnection class * refactor: enhance SSE transport with abort controller and add error handling for empty results * chore: remove outdated Model Context Protocol SDK dependency * chore: update @modelcontextprotocol/sdk dependency to version 1.7.0 * chore: add debugging comments for PingRequest handling in MCPConnection class * refactor: update callTool method to accept structured arguments and options * refactor: simplify maxContextTokens calculation in initializeAgentOptions * chore: update @babel/runtime dependency to version 7.26.10 * chore: update @librechat/agents dependency to version 2.2.9 * chore: update @librechat/agents dependency to version 2.3.6 * refactor: imports and prevent s3 initialization if strategy not configured * refactor: mark redis as non-experimental * refactor: add missing `maxContextTokens` for OpenAI parameters * refactor: improve log message for Redis initialization * chore: update @librechat/agents dependency to version 2.3.8 * refactor: extend `streamBuffer` condition to include BEDROCK provider as easily gets throttled by AWS * refactor: filter out 'think' parts from message content in Anthropic and OpenAI clients * π feat: Add support for LDAP STARTTLS in LDAP Auth (#6438) * π feat: Refactor schema exports and update package version to 0.0.4 (#6455) * π docs: librechat.example.yaml (#6442) Correctly comment commented comments: ``` ``` to ``` ``` To allow for simple removal of the 1st level comments. * πΌ feat: Add Auto Submit For URL Query Params (#6440) * feat: Add submit query param to auto submit a prompt passed in via URL * refactor: add case-insensitive value for auto-submit --------- Co-authored-by: Danny Avila <[email protected]> * π feat: Enhance Redis Integration, Rate Limiters & Log Headers (#6462) * feat: Implement Redis-based rate limiting, initially import limits * feat: Enhance rate limiters with Redis support and custom prefixes * chore: import orders * chore: update JSDoc for next middleware parameter type in ban and limiter middleware * feat: add logHeaders middleware to log forwarded headers in requests * refactor: change log level from info to debug for Redis rate limiters * feat: increase Redis max listeners and refactor session storage to use Keyv * π΅ feat: Add Automatic Balance Refill (#6452) * π feat: Add automatic refill settings to balance schema * π feat: Refactor balance feature to use global interface configuration * π feat: Implement auto-refill functionality for balance management * π feat: Enhance auto-refill logic and configuration for balance management * π chore: Bump version to 0.7.74 in package.json and package-lock.json * π chore: Bump version to 0.0.5 in package.json and package-lock.json * π docs: Update comment for balance settings in librechat.example.yaml * chore: space in `.env.example` * π feat: Implement balance configuration loading and refactor related components * π test: Refactor tests to use custom config for balance feature * π fix: Update balance response handling in Transaction.js to use Balance model * π test: Update AppService tests to include balance configuration in mock setup * π test: Enhance AppService tests with complete balance configuration scenarios * π refactor: Rename balanceConfig to balance and update related tests for clarity * π refactor: Remove loadDefaultBalance and update balance handling in AppService * π test: Update AppService tests to reflect new balance structure and defaults * π test: Mock getCustomConfig in BaseClient tests to control balance configuration * π test: Add get method to mockCache in OpenAIClient tests for improved cache handling * π test: Mock getCustomConfig in OpenAIClient tests to control balance configuration * π test: Remove mock for getCustomConfig in OpenAIClient tests to streamline configuration handling * π fix: Update balance configuration reference in config.js for consistency * refactor: Add getBalanceConfig function to retrieve balance configuration * chore: Comment out example balance settings in librechat.example.yaml * refactor: Replace getCustomConfig with getBalanceConfig for balance handling * fix: tests * refactor: Replace getBalanceConfig call with balance from request locals * refactor: Update balance handling to use environment variables for configuration * refactor: Replace getBalanceConfig calls with balance from request locals * refactor: Simplify balance configuration logic in getBalanceConfig --------- Co-authored-by: Danny Avila <[email protected]> * πββοΈ refactor: More Agent Context Improvements during Run (#6477) * fix: Add optional chaining utility and update agent parameter types * v2.3.9 * chore: Update @librechat/agents version to 2.3.93 * π i18n: Update translation.json with latest translations (#6414) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * ποΈ fix: Agents Token Spend Race Conditions, Add Auto-refill Tx, Add Relevant Tests (#6480) * ποΈ refactor: Improve spendTokens logic to handle zero completion tokens and enhance test coverage * ποΈ test: Add tests to ensure balance does not go below zero when spending tokens * ποΈ fix: Ensure proper continuation in AgentClient when handling errors * fix: spend token race conditions * ποΈ test: Add test for handling multiple concurrent transactions with high balance * fix: Handle Omni models prompt prefix handling for user messages with array content in OpenAIClient * refactor: Update checkBalance import paths to use new balanceMethods module * refactor: Update checkBalance imports and implement updateBalance function for atomic balance updates * fix: import from replace method * feat: Add createAutoRefillTransaction method to handle non-balance updating transactions * refactor: Move auto-refill logic to balanceMethods and enhance checkBalance functionality * feat: Implement logging for auto-refill transactions in balance checks * refactor: Remove logRefill calls from multiple client and handler files * refactor: Move balance checking and auto-refill logic to balanceMethods for improved structure * refactor: Simplify balance check calls by removing unnecessary balanceRecord assignments * fix: Prevent negative rawAmount in spendTokens when promptTokens is zero * fix: Update balanceMethods to use Balance model for findOneAndUpdate * chore: import order * refactor: remove unused txMethods file to streamline codebase * feat: enhance updateBalance and createAutoRefillTransaction methods to support additional parameters for improved balance management * π£οΈ feat: add support for `gpt-4o-transcribe` models (#6483) * π fix: Draft Clearing, Claude Titles, Remove Default Vision Max Tokens (#6501) * refactor: remove legacy max_tokens setting for vision models in OpenAIClient (intended for gpt-4-preview) * refactor: streamline capability checks in loadAgentTools function, still allow actions if tools are disabled * fix: enhance error handling for token limits in AnthropicClient and update error message in translations * feat: append timestamp to cloned agent names for better identification * chore: update @librechat/agents dependency to version 2.3.94 * refactor: remove clearDraft helper from useSubmitMessage and centralize draft clearing logic to SSE handling, helps prevent user message loss if logout occurs * refactor: increase debounce time for clearDraft function to improve auto-save performance * π i18n: Update translation.json with latest translations (#6505) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * separate sandboxes by users * π refactor: Allow streaming for o1 models in OpenAIClient and agent runs (#6509) * π¨ feat: UI Refresh for Enhanced UX (#6346) * β¨ feat: Add Expand Chat functionality and improve UI components * β¨ feat: Introduce Chat Badges feature with editing capabilities and UI enhancements * β¨ feat: re-implement file attachment functionality with new components and improved UI * β¨ feat: Enhance BadgeRow component with drag-and-drop functionality and add animations for better user experience * β¨ feat: Add useChatBadges hook and enhance Badge component with animations and toggle functionality * feat: Improve Add/Delete Badges + style and bug fixes * β¨ feat: Refactor EditBadges component and optimize useChatBadges hook for improved performance and readability * β¨ feat: Add type definition for LucideIcon in EditBadges component * refactor: Clean up BadgeRow component by removing outdated comment and improving code readability * refactor: Rename app-icon class to badge-icon for consistency and improve badge styling * feat: Add Center Chat Input toggle and update related components for improved UI/UX * refactor: Simplify ChatView and MessagesView components for improved readability and performance * refactor: Improve layout and positioning of scroll button in MessagesView component * refactor: Adjust scroll button position in MessagesView component for better visibility * refactor: Remove redundant background class from Badge component for cleaner styling * feat: disable chat badges * refactor: adjust positioning of scroll button and popover for improved layout * refactor: simplify class names in ChatForm and RemoveFile components for cleaner code * refactor: move Switcher to HeaderOptions from SidePanel * fix(Landing): duplicate description * feat: add SplitText component for animated text display and update Landing component to use it * feat(Chat): add ConversationStarters component and integrate it into ChatView; remove ConvoStarter component * feat(Chat): enhance Message component layout and styling for improved readability * feat(ControlCombobox, Select): enhance styling and add animation for improved UI experience * feat(Chat): update Header and HeaderNewChat components for improved layout and styling * feat(Chat): add ModelDropdown (now includes both endpoint and model) and refactor Menu components for improved UI * feat(ModelDropdown): add Agent Select; removed old AgentSwitcher components * feat(ModelDropdown): add settings button for user key configuration * fix(ModelDropdown): the model dropdown wasn't opening automatically when opening the endpoint one * refactor(Chat): remove unused EndpointsMenu and related components to streamline codebase * feat: enhance greeting message and improve accessibility fro ModelDropdown * refactor(Endpoints): add new hooks and components for endpoint management * feat(Endpoint): add support for modelSpecs * feat(Endpoints): add mobile support * fix: type issues * fix(modelSpec): type issue * fix(EndpointMenuDropdown): double overflow scroller in mobile model list * fix: search model on mobile * refactor: Endpoint/Model/modelSpec dropdown * refactor: reorganize imports in Endpoint components * refactor: remove unused translation keys from English locale * BREAKING: moving to ariakit with new CustomMenu * refactor: remove unnecessary comments * refactor: remove EndpointItem, ModelDropdownButton, SpecIcon, and SpecItem components * π§ fix: AI Icon bump when regenerating message * wip: chat UI refactoring, fix issues * chore: add recent update to useAutoSave * feat: add access control for agent permissions in useMentions hook * refactor: streamline ModelSelector by removing unused endpoints logic * refactor: enhance ModelSelector and context by integrating endpointsConfig and improving type usage * feat: update ModelSelectorContext to utilize conversation data for initial state * feat: add selector effects for synced endpoint handling * feat: add guard clause for conversation endpβ¦
oxeone
added a commit
to oxeone/LibreChat
that referenced
this pull request
Apr 28, 2025
commit fc30482 Author: Danny Avila <[email protected]> Date: Sun Apr 27 18:28:28 2025 -0400 πͺΆ refactor: Chat Input Focus for Conversation Navigations & ChatForm Optimizations (danny-avila#7100) * refactor: improve ChatView layout by keeping ChatForm mounted * feat: implement focusChat functionality for new conversations and navigations * refactor: reset artifacts when navigating to prevent any from rendering in a conversation when none exist; edge case, artifacts get created by search route (TODO: use a different artifact renderer for Search markdown) commit 6826c0e Author: Danny Avila <[email protected]> Date: Sun Apr 27 15:13:19 2025 -0400 π a11y: Searchbar/Conversations List Focus (danny-avila#7096) * chore: remove redundancy of useSetRecoilState and useRecoilValue with useRecoilState in SearchBar * refactor: remove unnecessary focus effect on text area in ChatForm * refactor: improve searchbar and clear search button accessibility * fix: add tabIndex to Conversations component for improved accessibility, moves focus directly conversation items * style: adjust margin in Header component for improved layout symmetry with Nav * chore: imports order commit 550c7cc Author: Danny Avila <[email protected]> Date: Sun Apr 27 14:03:25 2025 -0400 π§ refactor: Modernize Nav/Header (danny-avila#7094) * refactor: streamline model preset handling in conversation setup * refactor: integrate navigation and location hooks in chat functions and event handlers, prevent cache from fetching on final event handling * fix: prevent adding code interpreter non-image output to file list on message attachment event, fix all unhandled edge cases when this is done (treating the file download as an image attachment, undefined fields, message tokenCount issues, use of `startsWith` on undefined "text") although it is now prevent altogether * chore: remove unused jailbreak prop from MinimalIcon component in EndpointIcon * feat: add new SVG icons (MobileSidebar, Sidebar, XAIcon), fix: xAI styling in dark vs. light modes, adjust styling of Landing icons * fix: open conversation in new tab on navigation with ctrl/meta key * refactor: update Nav & Header to use close/open sidebar buttons, as well as redesign "New Chat"/"Bookmarks" buttons to the top of the Nav, matching the latest design of ChatGPT for simplicity and to free up space * chore: remove unused isToggleHovering state and simplify opacity logic in Nav component * style: match mobile nav to mobile header commit c0ebb43 Author: Danny Avila <[email protected]> Date: Sat Apr 26 04:30:58 2025 -0400 π¨ feat: OpenAI Image Tools (GPT-Image-1) (danny-avila#7079) * wip: OpenAI Image Generation Tool with customizable options * WIP: First pass OpenAI Image Generation Tool and integrate into existing tools * π fix: Comment out unused validation for image generation tool parameters * π refactor: Update primeResources function parameters for better destructuring * feat: Add image_edit resource to EToolResources and update AgentToolResources interface * feat: Enhance file retrieval with tool resource filtering for image editing * refactor: add OpenAI Image Tools for generation and editing, refactor related components, pass current request image attachments as tool resources for editing * refactor: Remove commented-out code and clean up API key retrieval in createOpenAIImageTools function * fix: show message attachments in shared links * fix: Correct parent message retrieval logic for regenerated messages in useChatFunctions * fix: Update primeResources to utilize requestFileSet for image file processing * refactor: Improve description for image generation tool and clarify usage conditions, only provide edit tool if there are images available to edit * chore: Update OpenAI Image Tools icon to use local asset * refactor: Update image generation tool description and logic to prioritize editing tool when files are uploaded * refactor: Enhance image tool descriptions to clarify usage conditions and note potential unavailability of uploaded images * refactor: Update useAttachmentHandler to accept queryClient to update query cache with newly created file * refactor: Add customizable descriptions and prompts for OpenAI image generation and editing tools * chore: Update comments to use JSDoc style for better clarity and consistency * refactor: Rename config variable to clientConfig for clarity and update signal handling in image generation * refactor: Update axios request configuration to include derived signal and baseURL for improved request handling * refactor: Update baseURL environment variable for OpenAI image generation tool configuration * refactor: Enhance axios request configuration with conditional headers and improved clientConfig setup * chore: Update comments for clarity and remove unnecessary lines in OpenAI image tools * refactor: Update description for image generation without files to clarify user instructions * refactor: Simplify target parent message logic for regeneration and resubmission cases * chore: Remove backticks from error messages in image generation and editing functions * refactor: Rename toolResources to toolResourceSet for clarity in file retrieval functions * chore: Remove redundant comments and clean up TODOs in OpenAI image tools * refactor: Rename fileStrategy to appFileStrategy for clarity and improve error handling in image processing * chore: Update react-resizable-panels to version 2.1.8 in package.json and package-lock.json * chore: Ensure required validation for logs and Code of Conduct agreement in bug report template * fix: Update ArtifactPreview to use startupConfig and currentCode from memoized props to prevent unnecessary re-renders * fix: improve robustness of `save & submit` when used from a user-message with existing attachments * fix: add null check for artifact index in CodeEditor to prevent errors, trigger re-render on artifact ID change * fix: standardize default values for artifact properties in Artifact component, avoiding prematurely setting an "empty/default" artifact * fix: reset current artifact ID before setting a new one in ArtifactButton to ensure correct state management * chore: rename `setArtifactId` variable to `setCurrentArtifactId` for consistency * chore: update type annotations in File and S3 CRUD functions for consistency * refactor: improve image handling in OpenAI tools by using image_id references and enhance tool context for image editing * fix: update image_ids schema in image_edit_oai to enforce presence and provide clear guidelines for usage * fix: enhance file fetching logic to ensure user-specific and dimension-validated results * chore: add details on image generation and editing capabilities with various models commit 0ee1dcc Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri Apr 25 09:21:56 2025 -0400 π i18n: Update translation.json with latest translations (danny-avila#6667) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit e467fbe Author: Daniel (dB.) Doubrovkine <[email protected]> Date: Fri Apr 25 09:16:46 2025 -0400 π docs: CONTRIBUTING.md (danny-avila#6831) commit 7f1d01c Author: Danny Avila <[email protected]> Date: Wed Apr 23 18:56:06 2025 -0400 π fix: MCP Improvements, Auto-Save Drafts, Artifact Markup (danny-avila#7040) * feat: Update MCP tool creation to use lowercase provider name * refactor: handle MCP image output edge cases where tool outputs must contain string responses * feat: Drop 'anyOf' and 'oneOf' fields from JSON schema conversion * feat: Transform 'oneOf' and 'anyOf' fields to Zod union in JSON schema conversion * fix: artifactPlugin to replace textDirective with expected text, closes danny-avila#7029 * fix: auto-save functionality to handle conversation transitions from pending drafts, closes danny-avila#7027 * refactor: improve async handling during user disconnection process * fix: use correct user ID variable for MCP tool calling * fix: improve handling of pending drafts in auto-save functionality * fix: add support for additional model names in getValueKey function * fix: reset form values on agent deletion when no agents remain commit 150116e Author: Marco Beretta <[email protected]> Date: Fri Apr 18 17:36:59 2025 +0200 π¨ style: standardize dropdown styling & fix z-Index layering (danny-avila#6939) * fix: Dropdown settings * refactor: classname cleanup * refactor: export modal * fix: Export dropdown commit 52f146d Author: Danny Avila <[email protected]> Date: Thu Apr 17 00:40:26 2025 -0400 π€ feat: Support `o4-mini` and `o3` Models (danny-avila#6928) * feat: Add support for new OpenAI models (o4-mini, o3) and update related logic * π§ fix: Rename 'resubmitFiles' to 'isResubmission' for consistency across types and hooks * π§ fix: Replace hardcoded 'pending_req' with CacheKeys.PENDING_REQ for consistency in cache handling * π§ fix: Update cache handling to use Time.ONE_MINUTE instead of hardcoded TTL and streamline imports * π§ fix: Enhance message handling logic to correctly identify parent messages and streamline imports in useSSE commit 88f4ad7 Author: Marco Beretta <[email protected]> Date: Thu Apr 17 03:07:43 2025 +0200 π refactor: Search & Message Retrieval (danny-avila#6903) * refactor: conversation search fetch * refactor: Message and Convo fetch with paramters and search * refactor: update search states and cleanup old store states * refactor: re-enable search API; fix: search conversation * fix: message's convo fetch * fix: redirect when searching * chore: use logger instead of console * fix: search message loading * feat: small optimizations * feat(Message): remove cache for search path * fix: handle delete of all archivedConversation and sharedLinks * chore: cleanup * fix: search messages * style: update ConvoOptions styles * refactor(SearchButtons): streamline conversation fetching and remove unused state * fix: ensure messages are invalidated after fetching conversation data * fix: add iconURL to conversation query selection --------- Co-authored-by: Danny Avila <[email protected]> commit 851938e Author: Danny Avila <[email protected]> Date: Wed Apr 16 18:14:34 2025 -0400 π§ fix: Agent Resource Form, Convo Menu Style, Ensure Draft Clears on Submission (danny-avila#6925) * β¨ style: Adjust z-index for popover UI and update className in ConvoOptions * β¨ feat: Add 'spec' field to conversation query selection * π οΈ fix: add back conversationId to use Constants.PENDING_CONVO in useSSE hook on submission to allow text drafts to clear * β¨ chore: add .clineignore to .gitignore for Cline configuration * β¨ refactor: memoize FileSearchCheckbox component for performance optimization * fix: agent resource management by adding tool_resource to agent's tools if missing commit 6edd93f Author: Peter <[email protected]> Date: Thu Apr 17 00:11:03 2025 +0200 πΊοΈ feat: Add Parameter Location Mapping for OpenAPI actions (danny-avila#6858) * fix: action parameters are assigned to the correct location (query, parameter, header, body) * removed copy/paste error * added unit tests, only add contenttype if specified --------- Co-authored-by: Peter Rothlaender <[email protected]> commit 16aa5ed Author: Danny Avila <[email protected]> Date: Wed Apr 16 04:28:46 2025 -0400 π οΈ fix: Improve Accessibility and Display of Conversation Menu (danny-avila#6913) * π¦ chore: update @ariakit/react-core to version 0.4.17 in package.json and package-lock.json * refactor: add additional ariakit menu props and unmount menu if state changes * fix: accessibility issues and incompatibility issues due to non-portaled menu * fix: improve visibility and accessibility of conversation options, making sure to expand dynamically when becoming active * fix: adjust max width for conversation options popover to improve visibility commit 000f3a3 Author: Marco Beretta <[email protected]> Date: Wed Apr 16 03:00:06 2025 +0200 π’ fix: Invalid `engineTTS` and Conversation State on Navigation (danny-avila#6904) * fix: handle invalid engineTTS values and prevent VoiceDropdown render errors * refactor: add verbose developer logging for debugging conversation state issues * refactor: remove unnecessary effect for conversationId changes * chore: imports * fix: include model and entity IDs in conversation query selection * feat: add fetchFreshData function to retrieve conversation data on navigation * fix: remove unnecessary comment in fetchFreshData function * chore: reorder imports in useNavigateToConvo for consistency --------- Co-authored-by: Danny Avila <[email protected]> commit d32f34e Author: Danny Avila <[email protected]> Date: Tue Apr 15 18:03:56 2025 -0400 π fix: Mistral OCR Image Support and Azure Agent Titles (danny-avila#6901) * fix: azure title model * refactor: typing for uploadMistralOCR * fix: update conversation ID handling in useSSE for better state management, only use PENDING_CONVO for new conversations * fix: streamline conversation ID handling in useSSE for simplicity, only needs state update to prevent draft from applying * fix: update performOCR and tests to support document and image URLs with appropriate types commit 650e9b4 Author: Marco Beretta <[email protected]> Date: Tue Apr 15 10:04:00 2025 +0200 π refactor: Optimize Conversation History Nav with Cursor Pagination (danny-avila#5785) * β¨ feat: improve Nav/Conversations/Convo/NewChat component performance * β¨ feat: implement cursor-based pagination for conversations API * π§ refactor: remove createdAt from conversation selection in API and type definitions * π§ refactor: include createdAt in conversation selection and update related types * β¨ fix: search functionality and bugs with loadMoreConversations * feat: move ArchivedChats to cursor and DataTable standard * π§ refactor: add InfiniteQueryObserverResult type import in Nav component * feat: enhance conversation listing with pagination, sorting, and search capabilities * π§ refactor: remove unnecessary comment regarding lodash/debounce in ArchivedChatsTable * π§ refactor: remove unused translation keys for archived chats and search results * π§ fix: Archived Chats, Delete Convo, Duplicate Convo * π§ refactor: improve conversation components with layout adjustments and new translations * π§ refactor: simplify archive conversation mutation and improve unarchive handling; fix: update fork mutation * π§ refactor: decode search query parameter in conversation route; improve error handling in unarchive mutation; clean up DataTable component styles * π§ refactor: remove unused translation key for empty archived chats * π fix: `archivedConversation` query key not updated correctly while archiving * π§ feat: Bedrock Anthropic Reasoning & Update Endpoint Handling (danny-avila#6163) * feat: Add thinking and thinkingBudget parameters for Bedrock Anthropic models * chore: Update @librechat/agents to version 2.1.8 * refactor: change region order in params * refactor: Add maxTokens parameter to conversation preset schema * refactor: Update agent client to use bedrockInputSchema and improve error handling for model parameters * refactor: streamline/optimize llmConfig initialization and saving for bedrock * fix: ensure config titleModel is used for all endpoints * refactor: enhance OpenAIClient and agent initialization to support endpoint checks for OpenRouter * chore: bump @google/generative-ai * β¨ feat: improve Nav/Conversations/Convo/NewChat component performance * π§ refactor: remove unnecessary comment regarding lodash/debounce in ArchivedChatsTable * π§ refactor: update translation keys for clarity; simplify conversation query parameters and improve sorting functionality in SharedLinks component * π§ refactor: optimize conversation loading logic and improve search handling in Nav component * fix: package-lock * fix: package-lock 2 * fix: package lock 3 * refactor: remove unused utility files and exports to clean up the codebase * refactor: remove i18n and useAuthRedirect modules to streamline codebase * refactor: optimize Conversations component and remove unused ToggleContext * refactor(Convo): add RenameForm and ConvoLink components; enhance Conversations component with responsive design * fix: add missing @azure/storage-blob dependency in package.json * refactor(Search): add error handling with toast notification for search errors * refactor: make createdAt and updatedAt fields of tConvoUpdateSchema less restrictive if timestamps are missing * chore: update @azure/storage-blob dependency to version 12.27.0, ensure package-lock is correct * refactor(Search): improve conversation handling server side * fix: eslint warning and errors * refactor(Search): improved search loading state and overall UX * Refactors conversation cache management Centralizes conversation mutation logic into dedicated utility functions for adding, updating, and removing conversations from query caches. Improves reliability and maintainability by: - Consolidating duplicate cache manipulation code - Adding type safety for infinite query data structures - Implementing consistent cache update patterns across all conversation operations - Removing obsolete conversation helper functions in favor of standardized utilities * fix: conversation handling and SSE event processing - Optimizes conversation state management with useMemo and proper hook ordering - Improves SSE event handler documentation and error handling - Adds reset guard flag for conversation changes - Removes redundant navigation call - Cleans up cursor handling logic and document structure Improves code maintainability and prevents potential race conditions in conversation state updates * refactor: add type for SearchBar `onChange` * fix: type tags * style: rounded to xl all Header buttons * fix: activeConvo in Convo not working * style(Bookmarks): improved UI * a11y(AccountSettings): fixed hover style not visible when using light theme * style(SettingsTabs): improved tab switchers and dropdowns * feat: add translations keys for Speech * chore: fix package-lock * fix(mutations): legacy import after rebase * feat: refactor conversation navigation for accessibility * fix(search): convo and message create/update date not returned * fix(search): show correct iconURL and endpoint for searched messages * fix: small UI improvements * chore: console.log cleanup * chore: fix tests * fix(ChatForm): improve conversation ID handling and clean up useMemo dependencies * chore: improve typing * chore: improve typing * fix(useSSE): clear conversation ID on submission to prevent draft restoration * refactor(OpenAIClient): clean up abort handler * refactor(abortMiddleware): change handleAbort to use function expression * feat: add PENDING_CONVO constant and update conversation ID checks * fix: final event handling on abort * fix: improve title sync and query cache sync on final event * fix: prevent overwriting cached conversation data if it already exists --------- Co-authored-by: Danny Avila <[email protected]> commit 77a2171 Author: Marco Beretta <[email protected]> Date: Tue Apr 15 04:40:07 2025 +0200 β¨οΈ a11y: enhance accessibility & visual consistency (danny-avila#6866) * a11y: TemporaryChat label * style: ChatForm badges update commit d0332c6 Author: Marco Beretta <[email protected]> Date: Tue Apr 15 04:39:35 2025 +0200 β¨ style: Dynamic text sizing for greeting and name display (danny-avila#6833) * β¨ feat: Implement dynamic text sizing for greeting and name display * refactor: simplified text-size logic commit 5d56f48 Author: Marco Beretta <[email protected]> Date: Tue Apr 15 04:39:01 2025 +0200 π feat: remove Edge TTS (danny-avila#6885) * feat: remove Edge TTS * remove the remaining edge code * chore: cleanup * chore: cleanup package-lock commit c49f883 Author: Danny Avila <[email protected]> Date: Mon Apr 14 22:38:35 2025 -0400 π refactor: Token Event Handler and Standardize `maxTokens` Key (danny-avila#6886) * refactor: agent token handling to use createHandleLLMNewToken for improved closure * refactor: update llmConfig to use maxTokens instead of max_tokens for consistency commit 52b3ed5 Author: Danny Avila <[email protected]> Date: Mon Apr 14 14:55:59 2025 -0400 π€ feat: GPT-4.1 (danny-avila#6880) * fix: Agent Builder setting not applying in useSideNavLinks * fix: Remove unused type imports in useSideNavLinks * feat: gpt-4.1 * fix: Update getCacheMultiplier and getMultiplier tests to use dynamic token values * feat: Add gpt-4.1 to the list of vision models * chore: Bump version of librechat-data-provider to 0.7.792 commit 64bd373 Author: Danny Avila <[email protected]> Date: Sun Apr 13 23:01:55 2025 -0400 π§ fix: Keyv and Proxy Issues, and More Memory Optimizations (danny-avila#6867) * chore: update @librechat/agents dependency to version 2.4.15 * refactor: Prevent memory leaks by nullifying boundModel.client in disposeClient function * fix: use of proxy, use undici * chore: update @librechat/agents dependency to version 2.4.16 * Revert "fix: use of proxy, use undici" This reverts commit 83153cd. * fix: ensure fetch is imported for HTTP requests * fix: replace direct OpenAI import with CustomOpenAIClient from @librechat/agents * fix: update keyv peer dependency to version 5.3.2 * fix: update keyv dependency to version 5.3.2 * refactor: replace KeyvMongo with custom implementation and update flow state manager usage * fix: update @librechat/agents dependency to version 2.4.17 * ci: update OpenAIClient tests to use CustomOpenAIClient from @librechat/agents * refactor: remove KeyvMongo mock and related dependencies commit 339882e Author: Danny Avila <[email protected]> Date: Sat Apr 12 20:53:38 2025 -0400 πΎ refactor: Enhance Memory In Image Encodings & Client Disposal (danny-avila#6852) * πΎ chore: Clear Additional Properties in `disposeClient` * refactor: stream handling and base64 conversion in encode.js to better free memory commit 3796497 Author: Danny Avila <[email protected]> Date: Sat Apr 12 18:46:36 2025 -0400 π€ refactor: Improve Agents Memory Usage, Bump Keyv, Grok 3 (danny-avila#6850) * chore: remove unused redis file * chore: bump keyv dependencies, and update related imports * refactor: Implement IoRedis client for rate limiting across middleware, as node-redis via keyv not compatible * fix: Set max listeners to expected amount * WIP: memory improvements * refactor: Simplify getAbortData assignment in createAbortController * refactor: Update getAbortData to use WeakRef for content management * WIP: memory improvements in agent chat requests * refactor: Enhance memory management with finalization registry and cleanup functions * refactor: Simplify domainParser calls by removing unnecessary request parameter * refactor: Update parameter types for action tools and agent loading functions to use minimal configs * refactor: Simplify domainParser tests by removing unnecessary request parameter * refactor: Simplify domainParser call by removing unnecessary request parameter * refactor: Enhance client disposal by nullifying additional properties to improve memory management * refactor: Improve title generation by adding abort controller and timeout handling, consolidate request cleanup * refactor: Update checkIdleConnections to skip current user when checking for idle connections if passed * refactor: Update createMCPTool to derive userId from config and handle abort signals * refactor: Introduce createTokenCounter function and update tokenCounter usage; enhance disposeClient to reset Graph values * refactor: Update getMCPManager to accept userId parameter for improved idle connection handling * refactor: Extract logToolError function for improved error handling in AgentClient * refactor: Update disposeClient to clear handlerRegistry and graphRunnable references in client.run * refactor: Extract createHandleNewToken function to streamline token handling in initializeClient * chore: bump @librechat/agents * refactor: Improve timeout handling in addTitle function for better error management * refactor: Introduce createFetch instead of using class method * refactor: Enhance client disposal and request data handling in AskController and EditController * refactor: Update import statements for AnthropicClient and OpenAIClient to use specific paths * refactor: Use WeakRef for response handling in SplitStreamHandler to prevent memory leaks * refactor: Simplify client disposal and rename getReqData to processReqData in AskController and EditController * refactor: Improve logging structure and parameter handling in OpenAIClient * refactor: Remove unused GraphEvents and improve stream event handling in AnthropicClient and OpenAIClient * refactor: Simplify client initialization in AskController and EditController * refactor: Remove unused mock functions and implement in-memory store for KeyvMongo * chore: Update dependencies in package-lock.json to latest versions * refactor: Await token usage recording in OpenAIClient to ensure proper async handling * refactor: Remove handleAbort route from multiple endpoints and enhance client disposal logic * refactor: Enhance abort controller logic by managing abortKey more effectively * refactor: Add newConversation handling in useEventHandlers for improved conversation management * fix: dropparams * refactor: Use optional chaining for safer access to request properties in BaseClient * refactor: Move client disposal and request data processing logic to cleanup module for better organization * refactor: Remove aborted request check from addTitle function for cleaner logic * feat: Add Grok 3 model pricing and update tests for new models * chore: Remove trace warnings and inspect flags from backend start script used for debugging * refactor: Replace user identifier handling with userId for consistency across controllers, use UserId in clientRegistry * refactor: Enhance client disposal logic to prevent memory leaks by clearing additional references * chore: Update @librechat/agents to version 2.4.14 in package.json and package-lock.json commit 1e6b1b9 Author: Danny Avila <[email protected]> Date: Fri Apr 11 00:42:32 2025 -0400 π³ feat: Add Jemalloc and UV to Docker Builds (danny-avila#6836) * feat: Add `uv` for extended MCP support in Dockerfiles * feat: Install jemalloc and set environment variable to use it commit 12f4dbb Author: Danny Avila <[email protected]> Date: Thu Apr 10 15:37:23 2025 -0400 β‘ feat: Self-hosted Artifacts Static Bundler URL (danny-avila#6827) * v0.7.791 * feat: configuration via `SANDPACK_STATIC_BUNDLER_URL` env var and update bundlerURL logic in Artifact components * fix: update minimum length requirement for auth fields from 10 to 1 character commit e16a619 Author: Danny Avila <[email protected]> Date: Wed Apr 9 18:38:48 2025 -0400 πΎ chore: Enhance Local Storage Handling and Update MCP SDK (danny-avila#6809) * feat: Update MCP package version and dependencies; refactor ToolContentPart type * refactor: Change module type to commonjs and update rollup configuration, remove unused dev dependency * refactor: Change async calls to synchronous for MCP and FlowStateManager retrieval * chore: Add eslint disable comment for i18next rule in DropdownPopup component * fix: improve statefulness of mcp servers selected if some were removed since last session * feat: implement conversation storage cleanup functions and integrate them into mutation success handlers * feat: enhance storage condition logic in useLocalStorageAlt to prevent unnecessary local storage writes * refactor: streamline local storage update logic in useLocalStorageAlt commit 24c0433 Author: Danny Avila <[email protected]> Date: Wed Apr 9 16:11:16 2025 -0400 π₯οΈ feat: Code Interpreter API for Non-Agent Endpoints (danny-avila#6803) * fix: Prevent parsing 'undefined' string in useLocalStorage initialization * feat: first pass, code interpreter badge * feat: Integrate API key authentication and default checked value in Code Interpreter Badge * refactor: Rename showMCPServers to showEphemeralBadges and update related components, memoize values in useChatBadges * refactor: Enhance AttachFileChat to support ephemeral agents in file attachment logic * fix: Add baseURL configuration option to legacy function call * refactor: Update dependency array in useDragHelpers to include handleFiles * refactor: Update isEphemeralAgent function to accept optional endpoint parameter * refactor: Update file handling to support ephemeral agents in AttachFileMenu and useDragHelpers * fix: improve compatibility issues with OpenAI usage field handling in createRun function * refactor: usage field compatibility * fix: ensure mcp servers are no longer "selected" if mcp servers are now unavailable commit 5d66874 Author: Danny Avila <[email protected]> Date: Tue Apr 8 23:18:50 2025 -0400 ποΈ feat: Code Interpreter File Persistence between Sessions (danny-avila#6790) * refactor: Enhance FileContainer with customizable button and container styles, onClick button handling, and type override * refactor: Update file type handling to support partial file objects * refactor: Extract download handling into a custom hook for improved reusability * refactor: Replace LogContent with Stdout component and enhance Attachment rendering for added visibility * feat: Update @librechat/agents to version 2.4.1 for referencing generated files in subsequent code interpreter uses * feat: Add support for tab-separated values (TSV) in mime type handling and improve error logging for regex patterns * chore: Update @librechat/agents to version 2.4.11 for better `session_id` instructions when wanting to persist files between executions * chore: Update @librechat/agents to version 2.4.12 for improved functionality * fix: Enhance argument parsing in useParseArgs to support JSON input and improve code extraction * refactor: Update input handling in useAutoSave to require more than one character before saving to local storage commit 910c733 Author: Danny Avila <[email protected]> Date: Mon Apr 7 19:16:56 2025 -0400 π¦ feat: MCP Support for Non-Agent Endpoints (danny-avila#6775) * wip: mcp select * refactor: Update useAvailableToolsQuery to support generic data types * feat: Enhance MCPSelect to dynamically load server options and improve MultiSelect component styling * WIP: ephemeral agents * wip: Add null check for MCPSelect and improve MultiSelect focus handling * feat: Pass conversationId prop to MCPSelect in BadgeRow to optimize badge rendering * feat: useApplyNewAgentTemplate hook to manage ephemeral agent upon conversation creation * WIP: eph. agent payload * refactor(OpenAIClient): streamline message processing by replacing content handling with parseTextParts function * feat: enhance applyAgentTemplate function to accept source conversation ID for improved template application * feat(parsers): add skipReasoning parameter to parseTextParts for conditional reasoning handling * WIP: first pass, ephemeral agent backend processing * chore: import order * feat: update loadEphemeralAgent and loadAgent functions to accept model_parameters for enhanced agent configuration * feat: add showMCPServers prop to BadgeRow for conditional rendering of MCPSelect, fix react rule violation * feat: enhance MCPSelect with localized placeholder and custom icon, add renderSelectedValues callback * feat: simplify message processing in AnthropicClient by replacing content handling with parseTextParts function * feat: implement useLocalStorage hook for managing MCP values and update MCPSelect to utilize it * chore: remove chatGPTBrowserSchema from endpoint schemas and update types for improved schema management * chore: remove compactChatGPTSchema from endpoint schemas and update types for better schema management * refactor: rename schemas for clarity and improve schema management * feat: extend model detection to include 'codestral' alongside 'mistral' * feat: add endpointType parameter to buildOptions and initializeClient functions * fix: update condition for handling completion in BaseClient to include agents client * refactor: simplify payload parsing logic in AgentClient and remove unused providerParsers * refactor: change useSetRecoilState to useRecoilState for better state management in MCPSelect component * refactor: streamline chat route handlers by consolidating middleware and improving endpoint structure * style: update MCPSelect and MultiSelect components for improved layout in mobile view * v0.7.790 * feat: add getMessageMapMethod to process message text and content in GoogleClient * chore: include LAST_MCP_ key prefix in clearLocalStorage function for proper teardown on logout commit 018143b Author: Marco Beretta <[email protected]> Date: Mon Apr 7 21:57:49 2025 +0200 π¨οΈ fix: Show ModelSpec Greeting (danny-avila#6770) commit 4afab52 Author: Danny Avila <[email protected]> Date: Mon Apr 7 14:48:11 2025 -0400 πͺΊ fix: Update Role Handling due to New Schema Shape (danny-avila#6774) * π fix: Update translation for shared agent message in English locale * πͺΊ fix: Migrate role schema to new nested structure and update permissions handling where missed commit 175cfe8 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun Apr 6 15:17:23 2025 -0400 π¦ chore: bump vite from 6.2.3 to 6.2.5 (danny-avila#6745) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.3 to 6.2.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-version: 6.2.5 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 9b0678d Author: Danny Avila <[email protected]> Date: Sun Apr 6 03:28:05 2025 -0400 βοΈ refactor: OAuth Flow Signal, Type Safety, Tool Progress & Updated Packages (danny-avila#6752) * chore: bump @librechat/agents and related packages * refactor: update message state for tool calls run step, in case no tool call chunks are received * fix: avoid combining finalized args createContentAggregator for tool calls * chore: bump @librechat/agents to version 2.3.99 * feat: add support for aborting flows with AbortSignal in createFlow methods * fix: improve handling of tool call arguments in useStepHandler * chore: bump @librechat/agents to version 2.4.0 * fix: update flow identifier format for OAuth login in createActionTool to allow uniqueness per run * fix: improve error message handling for aborted flows in FlowStateManager * refactor: allow possible multi-agent cross-over for oauth login * fix: add type safety for Sandpack files in ArtifactCodeEditor commit ac35b84 Author: Ruben Talstra <[email protected]> Date: Sat Apr 5 01:54:57 2025 +0200 π¦ chore: Update `caniuse-lite` dependency to version 1.0.30001706 (danny-avila#6482) * π§ chore: Update caniuse-lite dependency to version 1.0.30001706 in package.json and package-lock.json * π§ chore: Remove caniuse-lite dependency from package.json and package-lock.json commit 0551a56 Author: Ruben Talstra <[email protected]> Date: Sat Apr 5 01:47:14 2025 +0200 πͺΊ refactor: Nest Permission fields for Roles (danny-avila#6487) * ποΈ feat: Add Group model and schema with GroupType enum * ποΈ feat: Introduce Permissions module and refactor role-based access control * ποΈ feat: Refactor permissions handling and consolidate permission schemas * ποΈ feat: Refactor role permissions handling and improve role initialization logic * ποΈ feat: Update Role.spec.js to improve imports and enhance test structure * ποΈ feat: Update access control logic to ensure proper permission checks in role handling * ποΈ chore: Bump versions for librechat-data-provider to 0.7.75 and @librechat/data-schemas to 0.0.6 * ποΈ feat: Improve role permissions handling by ensuring defaults are applied correctly * ποΈ feat: Update role permissions schema to comment out unused SHARE permission * ποΈ chore: Bump version of librechat-data-provider to 0.7.77 and remove unused groups field from IUser interface * ποΈ chore: Downgrade version of librechat-data-provider to 0.7.76 * π§ chore: Bump versions for librechat-data-provider to 0.7.77 and data-schemas to 0.0.6 * ποΈ chore: Update version of librechat-data-provider to 0.7.789 --------- Co-authored-by: Danny Avila <[email protected]> commit 710fde6 Author: Marco Beretta <[email protected]> Date: Fri Apr 4 17:56:47 2025 +0200 π fix: Improve audio MIME type detection and handling in Speech to Text hook (danny-avila#6707) commit 93e679e Author: RedwindA <[email protected]> Date: Fri Apr 4 23:55:07 2025 +0800 πͺ chore: Update Gemini Pricing (danny-avila#6731) commit cff392e Author: Danny Avila <[email protected]> Date: Fri Apr 4 10:33:53 2025 -0400 π§ fix: Agent Capability Checks & DocumentDB Compatibility for Agent Resource Removal (danny-avila#6726) * fix: tool capability checks in loadAgentTools function * fix: enhance atomicity in removing agent resource files and add concurrency tests, improve documentdb compatibility commit 953e973 Author: Danny Avila <[email protected]> Date: Thu Apr 3 20:42:56 2025 -0400 π§ fix: Chat Middleware, Zod Conversion, Auto-Save and S3 URL Refresh (danny-avila#6720) * π§ feat: Add configurable S3 URL refresh expiry time * fix: Set default width and height for URLIcon component in case container style results in NaN * refactor: Enhance auto-save functionality with debounced restore methods * feat: Add support for additionalProperties in JSON schema conversion to Zod * test: Add tests for additionalProperties handling in JSON schema to Zod conversion * chore: Reorder import statements for better readability in ask route * fix: Handle additional successful response status code (200) in SSE error handler * fix: add missing rate limiting middleware for bedrock and agent chat routes * fix: update moderation middleware to check feature flag before processing requests * fix: add moderation middleware to chat routes for text moderation * Revert "refactor: Enhance auto-save functionality with debounced restore methods" This reverts commit d2e4134. * refactor: Move base64 encoding/decoding functions to top-level scope and optimize input handling commit 95ecd05 Author: Kay Belardinelli <[email protected]> Date: Thu Apr 3 15:45:10 2025 -0400 ποΈ a11y: Add Accessible Name to Button for File Attachment Removal (danny-avila#6709) commit c4f1da2 Author: Danny Avila <[email protected]> Date: Wed Apr 2 18:44:13 2025 -0400 π fix: Avatar & Error Handling Enhancements (danny-avila#6687) * fix: Ensure safe access to agent capabilities in AgentConfig * fix: don't show agent builder if agents endpoint is not enabled * fix: Improve error logging for MCP tool calls * fix: Enhance error message for MCP tool failures * feat: Add optional spec and iconURL properties to TEndpointOption type * chore: Update condition to use constant for new conversation parameter * feat: Enhance abort error handling with additional endpoint options to properly render error message fields * fix: Throw error instead of returning message for failed MCP tool calls * refactor: separate logic to generate new S3 URLs for expired links * feat: Implement S3 URL refresh for user avatars with error handling * fix: authcontext error in chats where agent chain is used * refactor: streamline balance configuration logic in getBalanceConfig function * fix: enhance icon resolution logic in SpecIcon component * fix: allow null values for spec and iconURL in TEndpointOption type * fix: update balance check to allow null tokenCredits commit cfa44de Author: Ruben Talstra <[email protected]> Date: Thu Apr 3 00:42:54 2025 +0200 π§Ή chore: Update ESLint rules for React hooks (danny-avila#6685) commit d8337e0 Author: Danny Avila <[email protected]> Date: Tue Apr 1 23:09:24 2025 -0400 β‘ refactor: DocumentDB Compatibility for Balance Updates (danny-avila#6673) * fix: Implement optimistic concurrency control for balance updates in Transaction model to allow for documentdb compatibility * test: Add concurrent balance increase test for auto refill transactions commit 0865bc4 Author: Danny Avila <[email protected]> Date: Tue Apr 1 21:19:42 2025 -0400 πͺ feat: Sync Balance Config on Login (danny-avila#6671) * chore: Add deprecation warnings for environment variables in checks * chore: Change deprecatedVariables to a const declaration in checks.js * fix: Add date validation in checkBalanceRecord to prevent invalid date errors * feat: Add setBalanceConfig middleware to synchronize user balance settings * chore: Reorder middleware imports in oauth.js for better readability commit 57faae8 Author: Ruben Talstra <[email protected]> Date: Tue Apr 1 23:42:56 2025 +0200 π i18n: Add Persian Localization Support (danny-avila#6669) commit 0ac07ac Author: Danny Avila <[email protected]> Date: Tue Apr 1 15:21:45 2025 -0400 π€ fix: Gemini 2.5 Vision Support (danny-avila#6663) * π€ fix: Gemini 2.5 Vision Support * π fix: Update defaultVisionModel logic to handle excluded GenAI models commit 05bbbd5 Author: Danny Avila <[email protected]> Date: Tue Apr 1 11:51:42 2025 -0400 π¨ style: Prevent Layout Shift when Loading Chat commit 677423d Author: Sean McGrath <[email protected]> Date: Wed Apr 2 01:06:25 2025 +1300 π fix: Safeguard against undefined length for addedEndpoints in modelSpecs processing (danny-avila#6654) commit 9b6fa89 Author: Danny Avila <[email protected]> Date: Tue Apr 1 04:07:01 2025 -0400 π¨ style: Fix Footer Centering commit 90b8769 Author: Danny Avila <[email protected]> Date: Tue Apr 1 03:50:32 2025 -0400 π feat: Use Model Specs + Specific Endpoints, Limit Providers for Agents (danny-avila#6650) * π§ refactor: Remove modelSpecs prop from ModelSelector and related components * fix: Update submission.conversationId references in SSE hooks and data types as was incorrectly typed * feat: Allow showing specific endpoints alongside model specs via `addedEndpoints` field * feat: allowed agents providers via `agents.allowedProviders` field * fix: bump dicebear/sharp dependencies to resolve CVE-2024-12905 and improve avatar gen logic * fix: rename variable for clarity in loadDefaultInterface function * fix: add keepAddedConvos option to newConversation calls for modular chat support * fix: include model information in endpoint selection for improved context * fix: update data-provider version to 0.7.78 and increment config version to 1.2.4 commit cd7cdaa Author: Marco Beretta <[email protected]> Date: Tue Apr 1 09:50:12 2025 +0200 π¬ feat: move Temporary Chat to the Header (danny-avila#6646) * π feat: Add Temporary Chat feature with badge toggle functionality * style: update header button * fix: Integrate resetChatBadges functionality into useNewConvo hook following rules of react * fix: Adjust margin logic in ChatForm for better layout handling on existing conversations * fix: Refine margin logic in ChatForm to improve layout during message submission * fix: Update TemporaryChat component to not render when message is submitting --------- Co-authored-by: Danny Avila <[email protected]> commit a5154e1 Author: Marco Beretta <[email protected]> Date: Tue Apr 1 09:15:41 2025 +0200 π feat: enhance UI components and refactor settings (danny-avila#6625) * π feat: Add Save Badges State functionality to chat settings * π feat: Remove individual chat setting components and introduce a reusable ToggleSwitch component * π feat: Replace Switches with reusable ToggleSwitch component in General settings; style: improved HoverCard * π feat: Refactor ChatForm and Footer components for improved layout and state management * π feat: Add deprecation warning for GPT Plugins endpoint --------- Co-authored-by: Danny Avila <[email protected]> commit 14ff66b Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Mar 31 18:41:32 2025 -0400 π i18n: Update translation.json with latest translations (danny-avila#6530) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 3c91f7b Author: Danny Avila <[email protected]> Date: Mon Mar 31 18:40:06 2025 -0400 π feat: Enhance S3 URL Expiry with Refresh; fix: S3 File Deletion (danny-avila#6647) * refactor: Improve error logging in image fetching to base64 conversion * fix: Add error handling for custom endpoint configuration retrieval * fix: Update audio stream processing to parse text parts from complex message content * chore: import order in streamAudio * fix: S3 file deletion and optimize file upload * feat: Implement S3 URL refresh mechanism and add cache for expiry check intervals * feat: Add S3 URL refresh functionality for agent avatars * chore: remove unnecessary console.log in MultiMessage component * chore: update version of librechat-data-provider to 0.7.77
MichielMAnalytics
pushed a commit
to MichielMAnalytics/ProAI
that referenced
this pull request
Jun 6, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #5527
Summary
Added
aria-label
that reads "remove file" to the button. The text was added to the English translation file. Also addedaria-hidden="true"
to the "x" icon.Change Type
Testing
Test Configuration:
Checklist
Please delete any irrelevant options.