* docker: force python version to 3.12.3
* also fixes pydantic
* remove ci build - too slow
* use lock file for deps
* use poetry.lock
* use poetry.lock
The code changes include adding a new step in the `.github/workflows/docker-build.yml` file to wait for Docker Hub to propagate. Additionally, a new script `factory_restart_space.py` is added in the `scripts` directory to restart the HuggingFace Spaces build. This script uses the `HfApi` and `rich` libraries to interact with the HuggingFace Hub API and print the space runtime.
Note: The commit message has been generated based on the provided code changes and recent commits.
* feat: Add support for running flows by endpoint name
This commit modifies the `simplified_run_flow` endpoint in `endpoints.py` to allow running flows using the endpoint name instead of the flow ID. It introduces a new route parameter `flow_id_or_name` which can accept either a UUID or a string representing the endpoint name. The code first attempts to parse the parameter as a UUID, and if that fails, it queries the database to find a flow with the matching endpoint name. This change improves the usability of the API by providing an alternative way to identify flows for execution.
* feat: Add endpoint_name field to FlowType
This commit adds the `endpoint_name` field to the `FlowType` interface in the `index.ts` file. The `endpoint_name` field is an optional string that represents the name of the endpoint associated with the flow. This change allows for more flexibility in identifying flows by endpoint name instead of just the flow ID. It improves the usability of the codebase by providing an alternative way to reference flows.
* 🐛 (endpoints.py): change type of flow_id_or_name parameter from Union[str, UUID] to str to simplify the API and improve readability
* feat: Add migration utility functions for table, column, foreign key, and constraint existence checks
This commit adds utility functions to the `migration.py` module in the `langflow.utils` package. These functions provide convenient ways to check the existence of tables, columns, foreign keys, and constraints in a database using SQLAlchemy. The functions `table_exists`, `column_exists`, `foreign_key_exists`, and `constraint_exists` take the table name, column name, foreign key name, and constraint name respectively, along with the SQLAlchemy engine or connection object. They use the `Inspector` class from `sqlalchemy.engine.reflection` to retrieve the necessary information and return a boolean value indicating whether the specified element exists in the database. These utility functions improve the readability and maintainability of the codebase by encapsulating the common existence checks in a reusable and modular way.
* feat: Add unique constraints for per-user folders and flows
This commit adds unique constraints for per-user folders and flows in the database. It introduces the `unique_folder_name` constraint for the `folder` table, ensuring that each user can have only one folder with a specific name. Similarly, it adds the `unique_flow_endpoint_name` and `unique_flow_name` constraints for the `flow` table, enforcing uniqueness of endpoint names and flow names per user. These constraints improve data integrity and prevent duplicate entries in the database, providing a more robust and reliable system.
* feat: Add poetry installation and caching steps to GitHub Actions workflow
This commit updates the GitHub Actions workflow file `action.yml` to include additional steps for installing poetry and caching its dependencies. The `run` step now installs poetry using the specified version and ensures that the poetry binary is available in the PATH. Additionally, the workflow now includes a step to restore pip and poetry cached dependencies using the `actions/cache` action. These changes improve the workflow by providing a more efficient and reliable way to manage poetry dependencies and caching.
* refactor: Improve error handling in update_flow function
This commit improves the error handling in the `update_flow` function in `flows.py`. It adds a new `elif` condition to check if the exception is an instance of `HTTPException` and re-raises it. This ensures that any `HTTPException` raised during the update process is properly handled and returned as a response. Additionally, it removes the unnecessary `else` block and simplifies the code logic. This refactor enhances the reliability and maintainability of the `update_flow` function.
chore(create-release.yml): rename step name to 'Download Artifact' for better readability
chore(create-release.yml): rename step name to 'Create Release Notes' for better understanding of the action's purpose
* refactor: Update SplitTextComponent to store parent and text data in Record object
* chore(pre-release.yml): update call_docker_build job to use langflow-ai/langflow/.github/workflows/docker-build.yml@dev for better workflow organization and consistency
* merge dev
* chore: Update pyproject.toml versions for langflow and langflow-base
* feat(workflows): add Docker Build and Push workflow to automate building and pushing Docker images based on release type and version
feat(workflows): add Pre-release workflow to automate releasing Langflow packages based on release type and version
feat(workflows): create workflow to call Docker Build workflow and handle release creation based on release type
* chore: Update dockerfile paths and branch name in render.yaml and release.yml
* chore(readthedocs.yaml): remove .readthedocs.yaml file as it is no longer needed
chore(base.Dockerfile): remove base.Dockerfile as it is no longer used in the project
feat(cdk-docker-compose.yml): add cdk-docker-compose.yml file to set up docker-compose for backend and frontend services
* move dockerignore
* chore: Remove test-results/.last-run.json file
* chore: Cache Node.js dependencies during workflow execution
* chore: Remove npm cache from workflow and cache Node.js dependencies
* chore: Update shardIndex and shardTotal values in typescript_test.yml workflow
* chore: Update Playwright test command with shard and worker options
* Add support for Python 3.12
* chore: Update Python version to 3.11 and DuckDB dependency to 0.10.2
* chore: fix mistral components lint
* Update SQLAgent and SQLExecutor imports to use langchain_community utilities
* Update langchain import to langchain_community
* Update langchain import to langchain_community
* 📝 (langflow/__main__.py): Import warnings module to suppress warnings during app execution
📝 (langflow/api/v1/schemas.py): Update timestamp field default value to use datetime.now with timezone.utc
📝 (auth/utils.py): Ignore warnings related to datetime.utcnow when decoding JWT tokens and creating refresh tokens
📝 (models/flow/model.py): Update updated_at field default value to use lambda function with timezone.utc
📝 (models/user/model.py): Update create_at and updated_at field default values to use lambda function with timezone.utc
* 🔧 (playwright.config.ts): set workers to 1 to avoid parallel tests on CI
✨ (chat_io.spec.ts): refactor code to wait for modal to appear before clicking on the new project button
✨ (codeAreaModalComponent.spec.ts): refactor code to wait for modal to appear before clicking on the new project button, update code assertions
✨ (curl_api_generation.spec.ts): refactor code to wait for modal to appear before clicking on the new project button
✨ (dragAndDrop.spec.ts): refactor code to handle the case when generic node is not present
✨ (dropdownComponent.spec.ts): refactor code to wait for modal to appear before clicking on the new project button
✨ (filterEdge.spec.ts): add support for dynamic waiting for modal to appear before interacting with it
🐛 (filterEdge.spec.ts): remove redundant clicks on buttons and improve code readability
♻️ (filterEdge.spec.ts): refactor code to use loop instead of repetitive code for zooming out and waiting for timeout
✅ (filterEdge.spec.ts): update assertions to match changes in the application UI
✨ (floatComponent.spec.ts): refactor floatComponent test to use getByTitle instead of complex locators for button clicks
✨ (flowPage.spec.ts): refactor flowPage test to use getByTitle instead of complex locators for button clicks
✨ (group.spec.ts): refactor group test to use getByTestId instead of complex locators for button clicks and add loop to handle modal loading
✨ (inputComponent.spec.ts): refactor inputComponent test to use getByTitle instead of complex locators for button clicks
✨ (inputListComponent.spec.ts): add support for dynamic modal count to handle asynchronous modal loading
🐛 (inputListComponent.spec.ts): fix search query in inputListComponent test
♻️ (inputListComponent.spec.ts): refactor repetitive code for zooming out in inputListComponent test
✨ (intComponent.spec.ts): add support for dynamic modal count to handle asynchronous modal loading
♻️ (intComponent.spec.ts): refactor repetitive code for zooming out in intComponent test
✨ (keyPairListComponent.spec.ts): add support for dynamic modal count to handle modal loading delay
✨ (keyPairListComponent.spec.ts): update search input value to "amazon bedrock" for more accurate search results
✨ (keyPairListComponent.spec.ts): update node locator to "model_specsAmazon Bedrock" for more accurate node selection
✨ (keyPairListComponent.spec.ts): update zoom out action to use "zoom out" title for better readability
✨ (keyPairListComponent.spec.ts): update keypair verification locator to "editNodekeypair0" for more accurate verification
✨ (keyPairListComponent.spec.ts): update showcache checkbox locator to "showcache" for better readability
✨ (keyPairListComponent.spec.ts): update showcredentials_profile_name checkbox locator to "showcredentials_profile_name" for better readability
✨ (keyPairListComponent.spec.ts): update elementCountNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocator variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocatorNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCountNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocator variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocatorNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCountNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocator variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocatorNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCountNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocator variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocatorNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCountNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocator variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plusButtonLocatorNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementCountNode variable to handle nullability
✨ (keyPairListComponent.spec.ts): update keyPairVerification variable to handle nullability
✨ (keyPairListComponent.spec.ts): update elementKeyCount variable to handle nullability
✨ (keyPairListComponent.spec.ts): update plus
✨ (promptModalComponent.spec.ts): add support for dynamic modal count to handle asynchronous modal rendering
✨ (python_api_generation.spec.ts): add support for dynamic modal count to handle asynchronous modal rendering
✨ (saveComponents.spec.ts): add support for dynamic modal count to handle asynchronous modal rendering
✨ (store.spec.ts): add support for dynamic icon count to handle asynchronous rendering
✨ (textAreaModalComponent.spec.ts): add support for dynamic modal count to handle asynchronous modal rendering
✨ (toggleComponent.spec.ts): add support for dynamic waiting for modal to appear before interacting with it
🐛 (toggleComponent.spec.ts): fix typo in element locator for dataDirectory
♻️ (toggleComponent.spec.ts): refactor repetitive code for zooming out
✅ (toggleComponent.spec.ts): add assertions for checking toggle state and button clicks
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggleComponent.spec.ts): refactor repetitive code for toggling and checking toggle state
♻️ (toggle
* 🔧 (frontend/package.json): add dotenv package as a dependency to enable environment variable configuration
🔧 (frontend/playwright.config.ts): add dotenv configuration to read environment variables from .env file
♻️ (frontend/src/modals/IOModal/components/chatView/chatMessage/index.tsx): refactor code to add data-testid attribute to span element for sender name to improve testability
✅ (frontend/tests/end-to-end/chatInputOutput.spec.ts): add end-to-end test for user interaction with chat input/output functionality
✅ (frontend/tests/end-to-end/chat_io_teste.spec.ts): add end-to-end test for chat input/output functionality with file upload
✅ (chat_io.spec.ts): remove chat_io.spec.ts test file as it is no longer needed
✨ (textInputOutput.spec.ts): add new test file textInputOutput.spec.ts to test the functionality of text input and output components in the application
* 📝 (typescript_test.yml): remove unnecessary comments and unused code related to Playwright browser binaries caching and installation
🔧 (typescript_test.yml): refactor setup of Python and Poetry versions to use a custom GitHub action for caching and setting up the environment efficiently
* ✨ (globalVariables.spec.ts): add end-to-end test for global variables functionality in the frontend
✨ (textInputOutput.spec.ts): rename test from "CodeAreaModalComponent" to "TextInputOutputComponent" to improve clarity and accuracy
* 📝 (chatInputOutput.spec.ts): update test URL to use relative path instead of absolute path for better test portability
📝 (filterEdge.spec.ts): update test URL to use relative path instead of absolute path for better test portability
📝 (inputListComponent.spec.ts): update test URL to use relative path instead of absolute path for better test portability
📝 (store.spec.ts): update test URL to use relative path instead of absolute path for better test portability
📝 (textAreaModalComponent.spec.ts): update test URL to use relative path instead of absolute path for better test portability
* 🚀 (typescript_test.yml): add uvicorn command to run the app with Playwright tests
🔧 (typescript_test.yml): configure uvicorn to use the langflow.main:create_app factory function, listen on all interfaces, use port 7860, enable auto-reload, read environment variables from .env file, and use asyncio event loop
* 🔧 (typescript_test.yml): fix path to .env file in the uvicorn command to correctly load environment variables
* 🔧 (typescript_test.yml): fix path to .env file in uvicorn command to correctly locate the file
* 🐛 (typescript_test.yml): remove unnecessary --env-file flag from uvicorn command to fix an issue with loading environment variables
* 🔧 (typescript_test.yml): run uvicorn command in the background and add a 2-second sleep to allow the server to start before running Playwright tests
* ✨ (typescript_test.yml): update Playwright test command to use a single worker (--workers=1) to avoid race conditions and improve stability during test execution
* ✨ (.github/workflows/typescript_test.yml): remove unnecessary flags from the Playwright test command to simplify the command and improve readability
* 🔧 (typescript_test.yml): add command to install Playwright dependencies before running Playwright tests to ensure all required dependencies are installed
* ⬆️ (typescript_test.yml): upgrade Playwright installation command to use 'npm install' instead of 'npx playwright install --with-deps' to simplify the installation process
* ✅ (typescript_test.yml): add npm start command before running the tests to ensure the frontend server is running during the tests
* 🔧 (typescript_test.yml): run 'npm start' command in the background to allow the next step to execute concurrently
✨ (typescript_test.yml): add step to upload blob report to GitHub Actions Artifacts for easier access and analysis
* ✨ (typescript_test.yml): update Playwright test command to include shard index and total for parallel test execution
* 🔧 (playwright.config.ts): add conditional dotenv configuration based on process.env.CI to prevent loading .env file in CI environment
* 🔧 (playwright.config.ts): update dotenv configuration to only load .env file when not running in a CI environment
📝 (playwright.config.ts): add comment explaining the purpose of the dotenv configuration and providing a link to the Playwright documentation for test configuration
* ♻️ (playwright.config.ts): comment out dotenv.config() calls to improve performance and remove unnecessary code
* 📝 (playwright.config.ts): comment out the forbidOnly and retries options to disable them
📝 (playwright.config.ts): change the reporter option to always use the "blob" reporter
📝 (playwright.config.ts): comment out the globalTeardown option to disable it
📝 (playwright.config.ts): set the reuseExistingServer option to always be true
* ♻️ (playwright.config.ts): refactor fullyParallel option to be set to false instead of true to disable running tests in parallel
* ✨ (.github/workflows/typescript_test.yml): remove shardIndex and shardTotal arguments from the Playwright test command to simplify the command and avoid unnecessary complexity
* 🐛 (playwright.config.ts): add --loop asyncio flag to uvicorn command to fix asyncio event loop issue
* 📝 (playwright.config.ts): add support for reading environment variables from a .env file
♻️ (playwright.config.ts): refactor code to use path module instead of importing it from @playwright/test
✅ (playwright.config.ts): enable forbidOnly option to fail the build on CI if test.only is accidentally left in the source code
✅ (playwright.config.ts): enable retries option to retry tests on CI 2 times
♻️ (playwright.config.ts): refactor code to use globalTeardown option to specify the path to globalTeardown.ts file
* 🔧 (typescript_test.yml): run Playwright tests in the background using the '&' operator to improve workflow efficiency
♻️ (playwright.config.ts): refactor workers configuration to use 10 workers on CI and 1 worker otherwise to optimize test execution
🐛 (darkStore.tsx): fix issue where stars and lastUpdated values were not being refreshed correctly on CI environment
* ♻️ (darkStore.tsx): remove unnecessary empty line to improve code readability
* 🔧 (typescript_test.yml): remove unnecessary ampersand (&) at the end of the 'npx playwright test' command to prevent running the command in the background
* 📝 (darkStore.tsx): set "githubStars" to "0" in localStorage when running in CI environment to ensure consistent test results
🐛 (filterEdge.spec.ts): update test assertions to match changes in the application UI
* 📝 (api.tsx): add condition to reject promise if error occurs during API request to GitHub to prevent auto-login flow
📝 (auto_login.spec.ts): update page.goto() URLs to use relative paths instead of absolute URLs
📝 (chatInputOutput.spec.ts): move dotenv.config() call after page.goto() to ensure proper environment variable loading
📝 (codeAreaModalComponent.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (curl_api_generation.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (dragAndDrop.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (dropdownComponent.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (floatComponent.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (flowPage.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (globalVariables.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (group.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (inputComponent.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (intComponent.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (keyPairListComponent.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (langflowShortcuts.spec.ts): update page.goto() URL to use relative path instead of absolute URL
📝 (nestedComponent.spec.ts): update page URL to use relative path instead of absolute path for better portability and flexibility
📝 (promptModalComponent.spec.ts): update page URL to use relative path instead of absolute path for better portability and flexibility
📝 (saveComponents.spec.ts): update page URL to use relative path instead of absolute path for better portability and flexibility
📝 (textInputOutput.spec.ts): update page URL to use relative path instead of absolute path for better portability and flexibility
📝 (toggleComponent.spec.ts): update page URL to use relative path instead of absolute path for better portability and flexibility
* 🔧 (playwright.config.ts): set workers to a fixed value of 10 to improve test performance and avoid parallel tests on CI
🐛 (group.spec.ts): move page.goto("/") inside the test function to ensure the page is properly loaded before running the test
* ✅ (chatInputOutput.spec.ts): add dotenv configuration to load environment variables before running the test
🐛 (chatInputOutput.spec.ts): fix issue where the test was not waiting for the page to load before interacting with it
✅ (curl_api_generation.spec.ts): add dotenv configuration to load environment variables before running the test
🐛 (curl_api_generation.spec.ts): fix issue where the test was not waiting for the page to load before interacting with it
* 🔧 (playwright.config.ts): update number of workers based on the value of the CI environment variable
🐛 (chatInputOutput.spec.ts): fix potential null reference error when getting modal count
🐛 (codeAreaModalComponent.spec.ts): fix potential null reference error when getting modal count
🐛 (curl_api_generation.spec.ts): fix potential null reference error when getting modal count
🐛 (dropdownComponent.spec.ts): fix potential null reference error when getting modal count
🐛 (filterEdge.spec.ts): fix potential null reference error when getting modal count
🐛 (globalVariables.spec.ts): fix potential null reference error when getting modal count
🐛 (group.spec.ts): fix potential null reference error when getting modal count
🐛 (inputComponent.spec.ts): fix potential null reference error when getting modal count
🐛 (inputListComponent.spec.ts): fix potential null reference error when getting modal count
🐛 (intComponent.spec.ts): fix potential null reference error when getting modal count
🐛 (keyPairListComponent.spec.ts): fix potential null reference error when getting modal count
🐛 (langflowShortcuts.spec.ts): fix potential null reference error when getting modal count
🐛 (nestedComponent.spec.ts): fix potential null reference error when getting modal count
🐛 (promptModalComponent.spec.ts): fix potential null pointer exception when accessing page object
🐛 (python_api_generation.spec.ts): fix potential null pointer exception when accessing page object
🐛 (saveComponents.spec.ts): fix potential null pointer exception when accessing page object
🐛 (textAreaModalComponent.spec.ts): fix potential null pointer exception when accessing page object
🐛 (textInputOutput.spec.ts): fix potential null pointer exception when accessing page object
🐛 (toggleComponent.spec.ts): fix potential null pointer exception when accessing page object
🐛 (tweaks_test.spec.ts): fix potential null pointer exception when accessing page object
* 🔧 (playwright.config.ts): update workers configuration to use 10 workers on CI and default to an empty value otherwise
🔧 (playwright.config.ts): update reporter configuration to use "blob" reporter on CI and "html" reporter otherwise
* 🔧 (playwright.config.ts): update workers configuration to use a default value of 5 when not running on CI environment, to improve test performance and resource usage
* ✨ (playwright.config.ts): enable fully parallel test execution to improve test performance
🐛 (chatInputOutput.spec.ts): handle potential error when counting modal titles to prevent test failures
🐛 (codeAreaModalComponent.spec.ts): handle potential error when counting modal titles to prevent test failures
🐛 (curl_api_generation.spec.ts): handle potential error when counting modal titles to prevent test failures
🐛 (dragAndDrop.spec.ts): handle potential error when counting modal titles to prevent test failures
🐛 (dropdownComponent.spec.ts): handle potential error when counting modal titles to prevent test failures
🐛 (filterEdge.spec.ts): handle potential error when counting modal titles to prevent test failures
🐛 (flowPage.spec.ts): handle potential error when counting modal titles to prevent test failures
🐛 (globalVariables.spec.ts): handle potential error when counting modal titles to prevent test failures
🐛 (group.spec.ts): Fix bug in group and ungroup updating values test where modalCount was not correctly initialized
🐛 (inputComponent.spec.ts): Fix bug in InputComponent test where modalCount was not correctly initialized
🐛 (inputListComponent.spec.ts): Fix bug in InputListComponent test where modalCount was not correctly initialized
🐛 (intComponent.spec.ts): Fix bug in IntComponent test where modalCount was not correctly initialized
🐛 (keyPairListComponent.spec.ts): Fix bug in KeypairListComponent test where modalCount was not correctly initialized
🐛 (langflowShortcuts.spec.ts): Fix bug in LangflowShortcuts test where modalCount was not correctly initialized
🐛 (nestedComponent.spec.ts): Fix bug in NestedComponent test where modalCount was not correctly initialized
🐛 (promptModalComponent.spec.ts): Fix bug in PromptTemplateComponent test where modalCount was not correctly initialized
🐛 (python_api_generation.spec.ts): Fix bug in python_api_generation test where modalCount was not correctly initialized
🐛 (saveComponents.spec.ts): Fix bug in save group component tests where modalCount was not correctly initialized
🐛 (textAreaModalComponent.spec.ts): Fix bug in TextAreaModalComponent test where modalCount was not correctly initialized
✅ (textInputOutput.spec.ts): handle error when getting modal title element and set modalCount to 0 in case of error
✅ (toggleComponent.spec.ts): handle error when getting modal title element and set modalCount to 0 in case of error
✅ (tweaks_test.spec.ts): handle error when getting modal title element and set modalCount to 0 in case of error
* ⬆️ (playwright.config.ts): downgrade the number of workers from 10 to 5 to reduce resource usage and improve test stability
* ⬆️ (playwright.config.ts): decrease the number of workers to 1 to avoid parallel tests on CI
📝 (playwright.config.ts): comment out the workers configuration and add a new line with a single worker to clarify the intention
✨ (playwright.config.ts): add a new file "temp" to the frontend directory
* 📝 (chatInputOutput.spec.ts): add support for loading environment variables from .env file for local development and CI/CD environments
📝 (textInputOutput.spec.ts): add support for loading environment variables from .env file for local development and CI/CD environments
* 🔧 (typescript_test.yml): add step to create .env file and populate it with secret environment variables
🚀 (typescript_test.yml): run Playwright tests after creating .env file to ensure tests have access to necessary environment variables
* ✅ (dragAndDrop.spec.ts): add a test to close the modal by clicking on the "Close" button
* 🔧 (typescript_test.yml): update Playwright test command to include shard index and total for distributed test execution
♻️ (playwright.config.ts): refactor workers configuration to use environment variable CI to determine the number of workers for parallel tests
* ⬆️ (playwright.config.ts): downgrade the number of workers to 1 to avoid parallel tests on CI environment
* 📝 (filterEdge.spec.ts): remove unnecessary click on element with id 'headlessui-disclosure-button-:rld:'
♻️ (filterEdge.spec.ts): remove redundant assertions for elements with ids 'saved_componentsBasic RAG' and 'saved_componentsGroup'
♻️ (floatComponent.spec.ts): refactor code to handle modal dynamically by checking for modal title element and waiting for it to appear before clicking on 'new-project-btn' element
* 🔧 (playwright.config.ts): update number of workers to 5 when running on CI to improve test parallelization
🐛 (filterEdge.spec.ts): add a 2-second delay before asserting visibility of tooltips to ensure they are fully rendered before checking visibility
* 📝 (index.tsx): add data-testid attribute to the flow name element for easier testing and querying
📝 (index.tsx): add data-testid attribute to the public checkbox for easier testing and querying
📝 (test_file.txt): add a test file for end-to-end testing purposes
📝 (fileUploadComponent.spec.ts): add end-to-end test for file upload functionality
✨ (flowSettings.spec.ts): add end-to-end test for flow settings functionality
✨ (store.spec.ts): add end-to-end test for sharing a component with the share button
* 🔧 (playwright.config.ts): set workers to 1 to avoid parallel tests execution and improve stability
📝 (test_file.txt): remove newline at the end of the file for consistency
♻️ (flowPage.spec.ts): refactor code to remove unnecessary lines and commented out code
♻️ (flowSettings.spec.ts): refactor code to generate a random flow name instead of hardcoding it
* 🔧 (typescript_test.yml): remove shardIndex and shardTotal arguments from the 'npx playwright test' command to simplify the command and remove unnecessary complexity
🐛 (textInputOutput.spec.ts): change 'textContent()' to 'inputValue()' to correctly retrieve the value of the input field
* ♻️ (typescript_test.yml): refactor test workflow to remove unnecessary matrix configuration for shardIndex and shardTotal
✅ (typescript_test.yml): update test workflow to run tests on a single shard instead of multiple shards for simplicity and efficiency
* 🔧 (playwright.config.ts): add clipboard permissions for chromium and firefox projects to enable clipboard read and write functionality
🔧 (curl_api_generation.spec.ts): remove unnecessary context permission grant for clipboard read and write
🔧 (python_api_generation.spec.ts): remove unnecessary context permission grant for clipboard read and write
🔧 (tweaks_test.spec.ts): remove unnecessary context permission grant for clipboard read and write
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
* Update database file path handling in base.py and version.py
* Update server.py to handle SIGINT signal in LangflowUvicornWorker
* Add shutdown message when shutting down Langflow in main.py
* Update datetime type for created_at and updated_at fields in apikey and variable tables
* Update package versions in pyproject.toml and poetry.lock files
* Update package versions in pyproject.toml and poetry.lock files
* Fix import error in base.py
* Refactor database file path handling in base.py
* Update unit test command in python_test.yml
* Update package versions in pyproject.toml and poetry.lock files
* Update poetry caching action and workflows
* Update poetry caching action and workflows
* Refactor LLMChainComponent build method in LLMChain.py
* Update poetry install command in Makefile
* Refactor Makefile to remove redundant install_backend targets
* Fix codespell issues in project
* Update package versions and dependencies
* Fix import order in chat_io.spec.ts, headerComponent/index.tsx, and chatMessage/index.tsx
* Update ruff command in Makefile and fix poetry cache reuse in Dockerfile
* Refactor ServiceManager class in manager.py to handle default service factories
* Fix typo in DOWNLOAD_WEBHOOK_URL variable assignment
* Refactor cache_service tests in test_cache_manager.py
* Add pytest-profiling
* Update Makefile to run unit tests with parallel execution
* Refactor ServiceManager class in manager.py to handle default service factories
* Refactor node_name condition in Graph class to use "Listen" instead of "GetNotified"
* Refactor file paths in tests/conftest.py for better readability and maintainability
* Sort vertices in each layer by dependency in Graph class
* Refactor variable declaration in SessionService class to use type hinting
* Refactor make tests command in python_test.yml workflow
* Refactor file paths in tests/conftest.py for better readability and maintainability
* Refactor imports in tests/conftest.py to include sqlmodel.Session and related dependencies
* Refactor file paths in tests/conftest.py to include available files in error message
* Refactor file paths in tests/conftest.py to include available files in error message
* Refactor file paths in tests/conftest.py to fix typo in BasicChatwithPromptAndHistory.json
* Refactor run_on_mac_or_linux function in __main__.py to remove open_browser parameter
* Update Docker image tags in GitHub workflows to use logspace/langflow instead of langflow/langflow
* Update package versions in pyproject.toml and poetry.lock