- Updated langflow version to 1.5.0 in pyproject.toml, package.json, and package-lock.json.
- Updated langflow-base dependency to version 0.5.0.
- Added platform markers for several dependencies in uv.lock to improve compatibility across different systems.
* fix: update message input handling in LCAgentComponent and improve memory data retrieval
* Refactor MessageTextInput to MessageInput for consistency.
* Enhance input dictionary construction to handle different input types in LCAgentComponent.
* Update get_memory_data method to filter out current input value from retrieved messages.
* fix: update AgentComponent to include documentation link and improve input handling
* Added documentation link for AgentComponent.
* Removed memory inputs from the agent component for cleaner input management.
* Enhanced error handling in message_response method to ensure better validation and logging of exceptions.
* fix: enhance input handling in LCAgentComponent by updating message conversion
* Updated input dictionary construction in LCAgentComponent to use to_lc_message() for Message instances, improving input handling consistency.
* test: add regression test for message duplication in agent component
* Introduced a new test to verify that mathematical expressions do not experience message duplication when processed by the agent component.
* The test checks both input and output JSON to ensure correct handling of expressions like "2+2" without duplication errors.
* test: add workspace tag to regression test for message duplication in agent component
* Updated the regression test for mathematical expressions to include the "@workspace" tag, enhancing test categorization and organization.
* This change ensures better tracking and management of tests related to the agent component.
* fix: add temporary comment in get_memory_data to address message duplication
* Added a TODO comment in the get_memory_data method of AgentComponent to indicate a temporary fix for message duplication issues. This serves as a reminder to develop a more robust solution in the future.
* feat: add message extraction utility for BaseMessage
* Introduced a new helper function, _get_message_from_base_message, to extract and concatenate text content from BaseMessage instances, improving message handling.
* Updated input handling in handle_on_chain_start to utilize the new extraction function, ensuring consistent processing of input messages.
* refactor: standardize code snippets across starter project JSON files
* Updated the "value" field in multiple starter project JSON files to ensure consistent formatting and structure of code snippets.
* This change enhances readability and maintainability of the code examples provided in the starter projects.
* feat: add caching and content dictionary creation for images
* Introduced a new function, create_image_content_dict, to generate a content dictionary for multimodal inputs from image files, enhancing image handling capabilities.
* Implemented LRU caching to optimize performance for repeated image processing.
* Added comprehensive error handling and documentation for better usability and maintainability.
* refactor: update message handling to utilize create_image_content_dict
* Replaced direct image URL creation with create_image_content_dict for improved image content handling in the Data and Message classes.
* Adjusted the order of content in human messages to ensure text appears first, enhancing message structure and clarity.
* Removed deprecated to_lc_message method to streamline the codebase and improve maintainability.
* docs: enhance _get_message_from_base_message docstring for clarity
* Expanded the docstring for the _get_message_from_base_message function to provide detailed information on input types, expected behavior, and examples of usage.
* Improved documentation aims to enhance usability and maintainability of the code by clarifying how to extract text content from BaseMessage instances.
* refactor: enhance image path handling and update message content structure
* Modified the get_file_paths function to support both Image objects and string paths for improved flexibility in file handling.
* Updated test cases to reflect changes in image content structure, ensuring consistency in type and source type attributes.
* Introduced new tests for create_image_content_dict to validate successful creation and error handling for image content dictionaries.
* refactor: streamline message extraction in handle_on_chain_start
* Removed the _get_message_from_base_message function to simplify the codebase.
* Updated handle_on_chain_start to directly use the text method of BaseMessage for extracting message content, enhancing clarity and maintainability.
* feat: enhance input handling for multimodal messages
* Added functionality to process image content within input messages, ensuring images are included in chat history as HumanMessage instances.
* Updated input handling logic to separate image types from text, improving the structure and clarity of message content.
* This enhancement supports better management of multimodal inputs in the agent's chat history.
* feat: add to_lc_message method for converting Data to BaseMessage
* Introduced the to_lc_message method in the Message class to facilitate conversion of Data instances to BaseMessage.
* Implemented logic to handle both HumanMessage and AIMessage based on the presence of required keys and sender type.
* Added logging for missing required keys to improve debugging and maintainability.
* refactor: simplify sender check in Message class
* Updated the sender validation logic in the Message class to remove unnecessary checks for missing sender values.
* This change enhances code clarity and maintains the intended functionality for handling user messages with associated files.
* test: update test_message_from_human_text to reflect content type change
* Modified the test for message conversion to assert that lc_message.content is a string instead of a list.
* Updated assertions to ensure the content matches the expected text, enhancing test accuracy and reliability.
* fix: update sender validation in Message class and adjust test case
* Modified the sender validation logic to handle cases where the sender is not specified, defaulting to HumanMessage.
* Updated the corresponding test case to reflect this change, ensuring accurate type assertion for lc_message when no sender is provided.
* refactor: update import statements for consistency and clarity
* Replaced the import of BaseModel from langchain.pydantic_v1 with the direct import from pydantic to streamline dependencies.
* This change enhances code clarity and aligns with best practices for managing imports in the codebase.
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
* Add description to modal when autologin is on and change from A to CustomLink
* Changed place of custom link
* Made settings back button go back to previous page
* Updated the message processing logic in both ProjectMCPServer and handle_call_tool to ensure that duplicate messages are not added to the collected results.
* Introduced a helper function to manage the addition of results, enhancing code clarity and maintainability.
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
✨ (use-custom-is-local-connection.ts): introduce a new hook to check if the current window is being accessed through a local connection
♻️ (McpServerTab.tsx): refactor to use the new useCustomIsLocalConnection hook instead of the deprecated useIsLocalConnection hook
* ✨ (custom-handle-bulk-files-download.tsx): introduce custom hook useCustomHandleBulkFilesDownload to handle bulk file downloads in a more customized way
🔧 (index.tsx): replace direct usage of useGetDownloadFilesV2 with the new custom hook useCustomHandleBulkFilesDownload for handling bulk file downloads in a more efficient and maintainable manner
* Update src/frontend/src/customization/hooks/custom-handle-bulk-files-download.tsx
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* typos and cosmetic edits for some api content
* webhook trigger rewrite
* build errors and coderabbit
* Update docs/docs/API-Reference/api-reference-api-examples.md
* nitpicks
* note for 1.5
* peer review
* 📝 (appHeaderComponent/index.tsx): Remove unnecessary classes and adjust styling for better layout and performance.
* 🔧 (appHeaderComponent/index.tsx): update classNames to improve layout and styling of the app header component
* chore: update pyleak dependency to version 0.1.14 in pyproject.toml and uv.lock
* fix(tests): enable pyleak marker in test files to address memory leak issues
* Fix langwatch component initialization and some QoL
* [autofix.ci] apply automated fixes
* Fix ruff and add unit tests
* [autofix.ci] apply automated fixes
* feat(langwatch): add utility for caching evaluators and refactor component to use it
* test(langwatch): add initial test file for LangWatchComponent and mock evaluator method
* fix(langwatch): use getattr for safer access to current_evaluator attribute
* test(langwatch): update cache clearing method to use utility function
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fix chat image sent
* 🐛 (chat-input.tsx): fix issue where files were not being cleared immediately after sending a message
📝 (chat-input.tsx): refactor code to improve readability and maintainability by extracting filesToSend logic into a separate variable
* Delete diff_output_ts.txt
* ♻️ (chat-input.tsx): refactor code to store and restore files when sending a message to prevent losing files if an error occurs during sending.
* ✅ (fileUploadComponent.spec.ts): update timeout values for better test reliability and performance
* ✅ (fileUploadComponent.spec.ts): update test assertion to check for the correct attribute value to ensure accurate testing
---------
Co-authored-by: Ítalo Johnny <italojohnnydosanjos@gmail.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* update
* [autofix.ci] apply automated fixes
* refactor: update file query logic and enhance error logging in file deletion
* refactor: enhance error handling and improve code clarity in MCP server list retrieval
* refactor: improve type hinting and code clarity in MCP servers file tests
* fix: handle potential None value for server configuration file in async server list retrieval
* Update test_files.py
* fix: autofix.ci / Update Starter Projects (pull_request)
* chore: Add API key environment variables to CI workflows
* Updated .github/workflows/ci.yml and .github/workflows/python_test.yml to include OPENAI_API_KEY, ANTHROPIC_API_KEY, and other relevant API keys as environment variables for CI jobs.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
* ✨ (data.py): introduce a new function get_file_paths to resolve file paths before creating image URLs in HumanMessage contents
* ✨ (general-bugs-agent-images-playground.spec.ts): add test case for user to send images in the playground with the agent component
* 📝 (general-bugs-agent-images-playground.spec.ts): update file path to image file to fix test failure due to incorrect file path
* [autofix.ci] apply automated fixes
* fix: autofix.ci / Update Starter Projects (pull_request)
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: italojohnny <italojohnnydosanjos@gmail.com>
* 🔧 Update .gitignore to include *.mcp.json files
✨ Add useMenuCustomization hook to customize JSON editor menu items
📝 Add menuUtils for filtering and enhancing JSON editor menu items
📝 Add useMenuCustomization hook for customizing JSON editor menu items
* [autofix.ci] apply automated fixes
* ✨ (copy-button-in-output.spec.ts): add test for user to copy JSON from output in the frontend application.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* initial-concat
* deploy-public-server
* docs-review
* add-required-api-key
* Apply suggestions from code review
Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
* docs-review
* Apply suggestions from code review
Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
* docs-review
* anchor-text
* Apply suggestions from code review
Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
---------
Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
* 🔧 (build_and_run.bat): Add a Windows batch script to build frontend, copy build files to backend, and run Langflow
🔧 (build_and_run.ps1): Add a Windows PowerShell script to build frontend, copy build files to backend, and run Langflow
* 📝 scripts/windows/build_and_run.bat: improve script messages for better clarity and consistency
📝 scripts/windows/build_and_run.ps1: update script steps numbering and messages for consistency and clarity
* 📝 (build_and_run.bat): Add attention message to wait for uvicorn to run before opening the browser
📝 (build_and_run.ps1): Add attention message to wait for uvicorn to run before opening the browser
* Changed actions to tools
* Changed connections to servers
* Added no tools found
* Changed actions to tools in mcp
* Added new label for mcp servers description
* Added better descriptions
* Added error width limitation, truncation and tooltip
* Updated width to occupy more space from STDIO and SSE
* Update src/frontend/src/modals/addMcpServerModal/index.tsx
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
---------
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
* refactor: enhance database session management in custom components
- Updated `get_variables` method in `CustomComponent` to accept an optional session parameter, allowing for session reuse and reducing connection pool exhaustion.
- Modified `update_params_with_load_from_db_fields` to pass the session when calling `get_variables`.
- Adjusted `get_instance_results` to support session management for database operations.
- Increased connection pool size and max overflow in settings for improved performance under load.
* [autofix.ci] apply automated fixes
* Prefer single session by default:
* remove unused session
* Revert pool size changes
* refactor: update get_variables method for backward compatibility
- Added a new async `get_variables` method in `CustomComponent` to maintain backward compatibility with the deprecated method, ensuring it calls the existing `get_variable` method with session management.
- This change enhances the robustness of the component while preserving existing functionality.
* refactor: remove unused session import from endpoints.py
- Eliminated the unused `session_scope` import from the `endpoints.py` file to streamline the code and improve clarity. This change contributes to maintaining a clean and efficient codebase.
* refactor: update deprecated variables method in CustomComponent
- Modified the `variables` method to call the new `get_variables` method for improved clarity and consistency. This change maintains backward compatibility while encouraging the use of the updated async method.
* refactor: update method calls to use get_variables because we don't have session in update_build_config
- Replaced instances of the deprecated `get_variable` method with the new `get_variables` method in `LMStudioEmbeddingsComponent`, `LMStudioModelComponent`, and `ChatOllamaComponent`. This change enhances code clarity and maintains consistency across components while ensuring backward compatibility.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jordan Frazier <jordan.frazier@datastax.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
* fix: improve predecessors check for loop component
- Enhanced the handling of cycle vertices to prevent infinite loops by ensuring that a vertex can only run if all pending predecessors have completed.
- Updated conditions for the first execution of cycle vertices to allow running only if all pending predecessors are also cycle vertices.
- This refactor improves the robustness of the vertex management system in asynchronous workflows.
* fix: update _mark_branch method to return visited vertices and refine predecessor mapping
* fix: prevent duplicate item dependencies in LoopComponent
* feat: add loop connection handling in Component class
- Introduced methods to process loop feedback connections, allowing components to connect outputs to loop-enabled inputs.
- Implemented checks to validate loop connections and ensure proper handling of callable methods from other components.
- Enhanced the edge creation logic to support special loop feedback edges targeting outputs instead of inputs.
* fix: enhance name overlap validation in FrontendNode
- Updated the validate_name_overlap method to exclude outputs that allow loops from the overlap check.
- Improved error message to include the display name of the component, along with detailed lists of input and output names for better debugging.
* fix: correct condition for executing cycle vertices in RunnableVerticesManager
- Updated the logic to ensure that a cycle vertex can only execute if it is a loop and all pending predecessors are cycle vertices. This change enhances the robustness of the vertex management system in asynchronous workflows.
* feat: implement comprehensive loop flow for URL processing
- Added a new loop flow that processes multiple URLs through a series of components including URLComponent, SplitTextComponent, LoopComponent, ParserComponent, PromptComponent, OpenAIModelComponent, StructuredOutputComponent, and ChatOutput.
- Enhanced the StructuredOutputComponent to include a detailed system prompt and refined output schema to ensure proper JSON formatting.
- Introduced a test case to validate the creation and execution of the loop flow, ensuring all components are correctly integrated and the expected execution order is maintained.
* refactor: enhance loop target handling in Component and Edge classes
- Introduced LoopTargetHandleDict to better manage loop target structures in the Component and Edge classes.
- Updated the Component class to utilize type casting for loop target handles, improving type safety.
- Refactored the Edge class to accommodate the new loop target handling, ensuring compatibility with existing edge structures.
- Removed deprecated message handling methods from the Component class to streamline the codebase and improve maintainability.
* test: skip OpenAI model integration test if API key is not set
- Added a conditional skip to the test_build_model_integration_reasoning method to prevent execution when the OPENAI_API_KEY environment variable is not set, ensuring tests run only in appropriate environments.
* [autofix.ci] apply automated fixes
* chore: add required secrets for OpenAI and Anthropic APIs in CI workflows
* Updated ci.yml to include OPENAI_API_KEY and ANTHROPIC_API_KEY secrets.
* Modified python_test.yml to mark these secrets as required for workflow execution.
* fix: update OPENAI_API_KEY check in test_loop.py to handle dummy values
* Modified the condition in the pytest skipif decorator to also skip tests when OPENAI_API_KEY is set to "dummy", ensuring more robust test execution.
* refactor: streamline component setup in test_loop.py
* Removed redundant comments and improved formatting for component initialization in the loop_flow function.
* Added missing system_prompt to StructuredOutputComponent to resolve "Multiple structured outputs" error.
* Updated test_loop_flow to ensure it tests the graph creation with proper loop feedback connection.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: add clipboard import support for table component
Add support for pasting TSV (Excel/Sheets) and Markdown table data directly into table components. The component now detects clipboard data format and automatically parses rows when pasting.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* ✨ (TableNodeComponent/index.tsx): Improve parsing functionality for TSV and markdown tables to handle different scenarios and edge cases
🔧 (table-node-component.test.tsx): Add tests for TableNodeComponent to ensure proper functionality and edge case handling
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* Updated folder name to not be the deprecated
* Changed backend to use Starter Project as default folder name
* Changed docs
* Changed frontend to display pure folder name without deprecated
* Updated tests
* Added migration to change folder name
* Refactor migration to rename folder names with unique constraint checks for users. Updated upgrade and downgrade functions to streamline the renaming process for "My Projects" and "Starter Project".
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Catch timeout errors on check server
* Make errors propagate from the MCP clients
* Apply timeout error handling and made Server change only trigger a loader on the Tools dropdown
* Add placeholder to ToolsInput on errors
* Updated useEffect to run when nothing is selected
* Added timeout handling to mcp component
* Added placeholder to tools component
* removed unused props
* Added timeout handling on loading of tools on config page
* Fixed key pair input not working
* Set key pair values as empty list
* Surface final error from mcp
* Removed ID from tool mode turning on
* Turn exception on to more places
* Fixed cache on mcp component and make tool mode data not reset
* Added loading placeholder only if there are no data
* Refresh data if placeholder is Loading on tool mode
* Show modal if no tools are available
* Add useEffect to run handleOnNewValue if placeholder is Loading actions...
* Removed checks from toolsTable to run handleOnNewValue
* Sanitized MCP name
* Updated message
* Fixed actions not loading in mcp component
* [autofix.ci] apply automated fixes
* reuse mcp servers
* mypy fixes
* fix: update tool reference in MCPToolsComponent to use field_value
* Added last_updated to backend
* get latest version of node and compare last_updated before returning post template value
* assign last updated and only set node class if newTemplate exists
* Adds type
* Removed timeout from backend to frontend
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: phact <estevezsebastian@gmail.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* chore: add jest-junit dependency for improved test reporting
- Updated package.json and package-lock.json to include jest-junit version 16.0.0, enhancing test reporting capabilities in the project.
* chore: enhance Jest configuration for improved test coverage and CI reporting
- Added coverage collection settings, including coverage thresholds and report formats.
- Configured CI-specific options for Jest, including the use of jest-junit for test reporting and adjusted worker settings for better performance in CI environments.
* chore: update frontend test command for CI mode to ensure proper environment variable usage
- Modified the test command in the Makefile to set CI=true for accurate test execution in CI environments.
* chore: enhance frontend CI workflow with test reporting and coverage uploads
- Replaced the frontend dependency installation step with a command to run unit tests in CI mode.
- Added steps to publish test results using junit report and to comment on pull requests with coverage summaries.
- Implemented artifact upload for coverage reports to improve visibility and tracking of test coverage over time.
* chore: add frontend dependency installation step to CI workflow
- Introduced a step to install frontend dependencies using npm ci in the GitHub Actions workflow.
- This enhancement ensures that all necessary packages are available before running frontend unit tests, improving the reliability of the CI process.
* chore: update junit report action version in CI workflow
- Upgraded the junit report action from v5 to v5.5.1 in the GitHub Actions workflow to leverage the latest features and improvements for test result reporting.
* chore: add Jest unit test workflow for frontend
- Introduced a new GitHub Actions workflow to run Jest unit tests for the frontend.
- The workflow includes steps for checking out the repository, setting up the Node.js environment, running tests, publishing test results, adding coverage comments on pull requests, and uploading coverage reports.
- This enhancement improves the CI process by ensuring comprehensive testing and reporting for frontend components.
* chore: integrate Jest unit tests into CI workflow
- Added a new job to the CI workflow to run frontend unit tests using Jest.
- Updated the changes filter to include Jest test files, ensuring they are recognized during the CI process.
- This enhancement improves the testing coverage and reliability of the frontend components.