* 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>
* 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>
* chore: remove setup-uv action configuration file as it is no longer needed
* chore: update setup-uv action to use the official action across all workflows
* chore: disable cache pruning in all workflows to improve build stability
* chore: update Python version to 3.13 and add pre-release description in workflows
fix: ensure consistent version extraction for langflow-base in workflows
Updated version extraction commands in multiple workflow files to consistently use 'head -n 1' for retrieving the first occurrence of the langflow-base version. This change improves reliability in version detection across docker-build, nightly_build, python_test, release_nightly, and release workflows.
* Use pyproject standardized dependency-groups
* fix: update Python version requirement to support up to 3.14
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
ci: Update Python versions in GitHub Actions workflows to remove 3.13
- Modified the Python version matrix in both `nightly_build.yml` and `python_test.yml` to exclude Python 3.13, ensuring compatibility and streamlining the testing process.
- This change enhances the clarity of the supported Python versions in the CI configuration.
* feat: add input for Python version in setup-uv action
* Introduced a new input parameter 'python-version' to allow users to specify the Python version for the setup-uv action, defaulting to 3.12.
* Updated the action to use the new input instead of relying on a version file.
* fix: update Python version setup in GitHub Actions workflow
* Changed the Python version setup in the GitHub Actions workflow to use a matrix input instead of a version file, enhancing flexibility and allowing for dynamic version specification.
* This change applies to both the main job and the test job in the workflow configuration.
* chore: update Python version in GitHub Actions workflow to 3.12
* Changed the Python version setup in the GitHub Actions workflow from using a version file to directly specifying Python 3.12, ensuring consistency and clarity in the environment configuration.
* chore: add environment variables for OpenAI and Astra DB in GitHub Actions workflow
* Introduced new environment variables for OPENAI_API_KEY, ASTRA_DB_API_ENDPOINT, and ASTRA_DB_APPLICATION_TOKEN in the store_pytest_durations.yml workflow file to enhance integration capabilities and secure access to necessary APIs.
* chore: add Python 3.13 to GitHub Actions workflow matrix
* chore: update GitHub Actions workflow to include Python 3.13 in the testing matrix
* Add Python 3.13 to nightly build test matrix
* chore: update Python version requirement and remove deprecated dependencies in pyproject.toml files
* Updated Python version requirement to allow up to 3.14 in both main and base pyproject.toml files.
* Removed deprecated dependencies: cohere and pyautogen from the main dependencies list.
* chore: update Python version requirements and add support for Python 3.13 in uv.lock
* Updated the required Python version to allow up to 3.14.
* Adjusted resolution markers for Python versions to include 3.13.
* Added markers for the 'typing-extensions' dependency to restrict it for Python versions below 3.13.
* Included additional wheel files for various packages to support Python 3.13 compatibility.
* Update Python version requirements in README files to support Python 3.13
* Update Python version in GitHub Actions workflow to 3.13
* Update Python version in GitHub Actions workflows to include 3.13
* Update installation documentation to support Python 3.13 and clarify troubleshooting steps
* revert changes to docs until we release
* chore: add ag2 dependency and update uv.lock for Python 3.13 compatibility
* Added ag2 version 0.3.2 and 0.5.2 to pyproject.toml and uv.lock with appropriate resolution markers for Python versions.
* Included flaml version 2.3.2 in uv.lock to ensure compatibility with the new ag2 dependency.
* Updated dependency specifications to support Python 3.13 and above.
* Update TypeScript test workflow to improve Playwright caching and containerization
- Add container image for Playwright to ensure consistent environment
- Modify Playwright version retrieval to use `npm ls` for accuracy
- Enhance caching strategy with restore keys for Playwright binaries
- Refactor Playwright installation steps to handle dependencies based on cache status
* Remove Playwright container image specification from GitHub Actions workflow
* Add GitHub Action to install Playwright with caching support
- Created a new composite GitHub Action `install-playwright` to install Playwright and its dependencies with caching.
- Updated `typescript_test.yml` workflow to use the new `install-playwright` action, simplifying the installation process and ensuring efficient use of cache.
- The action supports specifying a working directory and selecting browsers to install.
* Remove redundant Playwright caching steps from GitHub Actions workflow
* Update Playwright version extraction logic in GitHub Action
- Modify script to read `package.json` directly for Playwright version.
- Support both `dependencies` and `devDependencies` for version retrieval.
- Remove caret and tilde symbols from version string.
* Optimize Node.js setup and caching in GitHub Actions workflow
* Set UV_CACHE_DIR environment variable in GitHub workflows
* Refactor SignUpPage to import InputComponent from the core components directory
* Set default test suites to an empty array in TypeScript test workflow
* Fix conditional logic in TypeScript test workflow for release builds
* Fix syntax error in conditional statement in GitHub Actions workflow
* Add pytest-github-actions-annotate-failures to dependencies in pyproject.toml
* feat: add --exclude-warning-annotations option to pytest commands in Makefile
* feat: add pytest-github-actions-annotate-failures to dev dependencies in pyproject.toml and uv.lock
* Add PYTEST_RUN_PATH environment variable to GitHub Actions workflow
* Remove '--exclude-warning-annotations' option from pytest commands in Makefile
* Update scripts
* update the base dep in uv deps
* update nightly scripts
* Add uv creds for publish
* skip tests for now
* fix version
* only build the wheel
* try again
* add uv to python run
* [autofix.ci] apply automated fixes
* use uv cache
* more version fixe
* fixing versions
* fix base version
* Try no frozen?
* skip everything to try docker build
* tag
* frozen
* separate script for updating uv dep
* [autofix.ci] apply automated fixes
* hardcoded versions
* hardcoded versions
* add version to editable package
* build project before docker file runs
* try again
* fix uv patht o build
* don't know why this would mkae a difference
* debug statements
* debug statements
* debug statements
* change path to whl 🤷
* manually move the wheel...
* make dir
* try no sources
* add back tests
* refactor uv to action
* add uv action
* Update nightly build workflow to include uv lock files in version update commit
* Update lint-py workflow to use specific ref for setup-uv action
* Add checkout step to style-check-py GitHub Actions workflow
* Remove redundant GitHub ref syntax in lint-py.yml workflow
* Update lint-py.yml to use specific ref for setup-uv action
* Update action.yml: standardize quotes and remove redundant checkout step
* Add checkout step to GitHub Actions workflows for specific ref handling
- Introduced `actions/checkout@v4` step to multiple workflows to ensure code is checked out at a specific ref.
- Updated `.github/workflows/docker-build.yml`, `.github/workflows/release_nightly.yml`, `.github/workflows/lint-py.yml`, and `.github/workflows/style-check-py.yml` to include the new checkout step.
- Ensured credentials are persisted during the checkout process.
* Add checkout step to Python test workflow with specific ref
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* uv sync works
* fist stab at Makefile
* uv treatment for langflow-base
* sqlmodel to 0.0.18
* add reinstall_backend to Makefile
* makefile - reinstall_backend fix and unit_test dependency
* fix dev dependencies
* fix dev dependencies
* fix dev dependencies
* lock
* Makefile
* [autofix.ci] apply automated fixes
* Update Makefile
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* delete update_dependencies
* fix lint
* Remove Poetry lock check from GitHub Actions workflow
* Switch to 'uv' for dependency management and caching in style-check workflow
* Update style-check workflow to use '--only-dev' flag for Ruff check
* Integrate 'uv' package setup and caching in GitHub Actions workflows
* Update version check in GitHub Actions to use 'uv tree' for langflow-base
* Remove redundant poetry environment setup in GitHub Actions workflow
* Add step to minimize uv cache in GitHub Actions workflow
* Update GitHub Actions workflow to use 'uv' for dependency management and caching
* Remove redundant script execution from build_langflow target in Makefile
* [autofix.ci] apply automated fixes
* Switch build system from Poetry to Hatchling and update dependencies
- Replace `poetry-core` with `hatchling` in build-system requirements
- Update `langflow-base` dependency to version `0.0.96`
- Add `tool.hatch.build.targets.wheel` configuration
- Adjust `tool.uv.sources` paths for `langflow-frontend` and `langflow-base`
* update lock
* Switch build system from Poetry to Hatchling in pyproject.toml
* Add langchain-unstructured dependency to pyproject.toml
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* feat(utils.py): add escape_json_dump function to escape JSON strings for Edge dictionaries
* refactor(Output): streamline add_types method to prevent duplicate entries in types list for improved type management
* feat(data.py): add classmethod decorator to validate_data for enhanced validation logic when checking data types
* feat(setup.py): implement retry logic for loading starter projects to enhance robustness against JSON decode errors
* fix(input_mixin.py): improve model_config formatting and update field_type alias for clarity and consistency in field definitions
* feat(types.py): refactor vertex constructors to use NodeData and add input/output methods for better component interaction
* feat(schema.py): add NodeData and Position TypedDicts for improved type safety and structure in vertex data handling
* feat(base.py): update Vertex to use NodeData type and add to_data method for better data management and access
* refactor(schema.py): update TargetHandle and SourceHandle models to include model_config attribute
* Add TypedDict classes for graph schema serialization in `schema.py`
* Refactor `Edge` class to improve handle validation and data handling
- Consolidated imports and removed redundant `BaseModel` definitions for `SourceHandle` and `TargetHandle`.
- Added `valid_handles`, `target_param`, and `_target_handle` attributes to `Edge` class.
- Enhanced handle validation logic to distinguish between dictionary and string types.
- Introduced `to_data` method to return edge data.
- Updated attribute names to follow consistent naming conventions (`base_classes`, `input_types`, `field_name`).
* Refactor `Edge` class to improve handle validation and data handling
* Refactor: Standardize attribute naming and add `to_data` method in Edge class
- Renamed attributes to use snake_case consistently (`baseClasses` to `base_classes`, `inputTypes` to `input_types`, `fieldName` to `field_name`).
- Added `to_data` method to return `_data` attribute.
- Updated validation methods to use new attribute names.
* Refactor: Update Edge class to consistently use snake_case for attributes and improve validation logic for handles
* Refactor: Change node argument type in add_node and _create_vertex methods to NodeData for better type safety and clarity
* Refactor: Implement JSON serialization for graph data with `dumps` and `dump` methods, enhancing data export capabilities
* Refactor: Add pytest fixtures for ingestion and RAG graphs, enhance test structure for better clarity and organization
* Refactor: Add pytest fixtures for memory_chatbot_graph tests and improve test structure
* Refactor: Remove unused methods in ComponentVertex class to streamline code and improve readability
* Refactor: Remove unnecessary line in ComponentVertex class to enhance code clarity and maintainability
* Refactor: Update import path for DefaultPromptField to improve code organization and maintainability in api_utils.py
* Refactor: Update import path for DefaultPromptField to enhance code organization and maintainability in prompt.py
* fix: Remove fixture in test_memory_chatbot.py that blocked db setup
* Refactor: Add durations path for unit tests to improve test reporting
* Refactor: Add splitting algorithm option for unit tests
* Add async option to Makefile for unit tests and update GitHub Actions workflow
- Introduced `async` variable in Makefile to conditionally run unit tests with or without parallel execution.
- Updated `unit_tests` target in Makefile to handle `async` flag.
- Modified GitHub Actions workflow to set `async=false` for unit tests.
* feat(workflows): add NODE_VERSION to python_test workflow for Node.js setup
Enhanced the CI workflow by including Node.js setup with version 21 to support JavaScript components
* fix(workflows): implement retry logic in python_test workflow for unit tests
Added a retry mechanism to enhance test reliability in CI workflow
* Add astra integration tests to CI
* Add astra integration tests to CI
* revert whitespace changes
* update filter
* Swap to using a scheduled job rather than filter
* chore(workflows): update lint-js.yml and lint-py.yml workflows to include support for workflow_call and workflow_dispatch events with optional branch input for checkout
* chore(docs_test.yml): update workflow triggers to include workflow_call and workflow_dispatch events
* ci(python_test.yml): update workflow to trigger on workflow_dispatch event and add support for optional branch input parameter to checkout specific branch for testing
* chore(typescript_test.yml): remove unnecessary pull_request event types to streamline workflow configuration
* feat(ci.yml): add CI workflow for automated testing and linting of backend, frontend, and documentation code
* chore: update release.yml to include CI workflow for automated testing and linting
* chore(typescript_test.yml): remove unnecessary 'if: always()' condition from merge-reports job
* chore(ci): add typescript_test.yml to the list of files included in the frontend job for CI workflow
* chore(ci.yml): fix typo in file path for typescript_test.yml in the frontend job of CI workflow
* chore(ci.yml): update path-filter job in CI workflow to include frontend tests and fix typo in file path for typescript_test.yml
* chore(ci.yml): add concurrency configuration to improve workflow efficiency
fix(ci.yml): include tests output in the filter paths job to run frontend tests when needed
* chore(ci.yml): update CI workflow to remove lint-frontend job
* chore(ci.yml): restructure CI workflow to improve readability and maintainability
feat(ci.yml): add separate jobs for frontend tests, backend linting, and docs build to enhance testing coverage
feat(ci.yml): introduce a final job 'CI Success' to check the status of all previous jobs and provide a summary of the CI pipeline execution
* ci(ci.yml): add dependencies between jobs to ensure proper execution order and avoid unnecessary runs
* chore(ci.yml): reformat YAML file for better readability and consistency in indentation
feat(ci.yml): add support for running backend tests, frontend tests, linting backend code, and testing docs build in CI workflow
feat(ci.yml): introduce a final step 'CI Success' to check the status of all previous jobs and exit with appropriate code based on their results
* chore(ci.yml): Remove concurrency configuration and cancel-in-progress option from lint-js, lint-py, python_test, and style-check-py workflows
* chore(ci.yml): Update pull_request event types in js_autofix.yml workflow to remove auto_merge_enabled
* chore: Remove concurrency configuration and cancel-in-progress option from typescript_test.yml workflow
* refactor: change add store key inside test
* ♻️ (tests): remove hardcoded API key and use environment variable
✅ (tests): add environment variable check to skip tests if not set
* ✅ (store-shard-2.spec.ts): add test skip condition for STORE_API_KEY
✨ (store-shard-2.spec.ts): implement test for sharing component with API key
* ✅ (store-shard-2.spec.ts): update navigation step in end-to-end test to click "My Collection" instead of going to home page
---------
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* chore: update workflow_dispatch in Python and TypeScript test workflows
* feat(release.yml): add a new 'test' job to run Typescript and Python tests before releasing Langflow Main to ensure code quality and stability. Update dependencies to include Typescript and Python test workflows.
* ci: add auto_merge_enabled to pr activity types
* fix (auto-update.yml): remove 'dev' branch from trigger to run workflow on 'main' branch pushes only
fix (js_autofix.yml): remove unnecessary push trigger for 'main' branch in workflow to run on specific file changes only
* ci: Update concurrency settings in CI workflows