* feat: suggest updating outdated components in API exception handling
Suggest updating the outdated components in the API exception handling. This commit adds a suggestion message to the API exception response when there are outdated components in the flow. The suggestion message provides the number of outdated components and recommends updating them. The suggestion is generated based on the list of outdated components obtained from the flow data.
* feat: refactor code
* [autofix.ci] apply automated fixes
* Update src/backend/base/langflow/exceptions/api.py
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Update src/backend/base/langflow/api/utils.py
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Update src/backend/base/langflow/exceptions/api.py
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* update function name
* [autofix.ci] apply automated fixes
* refactor: fix import casing in langflow.api.utils and langflow.exceptions.api
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* refactor: remove unused code and update exception handling in langflow.api.utils and langflow.exceptions.api
* [autofix.ci] apply automated fixes
* refactor: update exception handling and class in langflow.api.utils and langflow.exceptions.api
* [autofix.ci] apply automated fixes
* update function name and refactor none flow logic
* [autofix.ci] apply automated fixes
* refactor: fix typo in get_suggestion_message function name
* refactor: improve get_suggestion_message function in langflow.api.utils
* refactor: add unit tests for get_suggestion_message and get_outdated_components functions
* refactor: add unit tests for APIException in langflow.exceptions.api
* refactor: improve test coverage for APIException and related functions
* [autofix.ci] apply automated fixes
* update file name
* refactor: update build_exception_body method in APIException to handle Exception type
* refactor: handle None flow data in get_components_versions
* [autofix.ci] apply automated fixes
* refactor: update useDeleteBuilds function signature in _builds API query
* fix: Fix test changing screen before request ended
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Removed unused function and fixed tags initial value
* Added post save flow
* Added update flow patch
* removed unused import
* created useAddFlow hook to substitute AddFlow function on flowsManager store
* fixed post save flow to handle endpoint name as undefined
* Fixed add flow hook to use post save flow mutation
* removed unused line
* changed addFlow to use hook in all components that use addFlow
* Removed unused code
* removed addFlow of useDuplicateFlows call
* made newProject default as true
* removed unused variables from addFlow
* fixed url of requests of flows
* passed functions directly
* fix app to display loading on top of the router
* fixed promise of addFlow
* Added upload flow hook with a lot of modularity
* Fixed addFlow naming
* Added helper functions for file uploading
* Changed upload flow to use helper functions
* removed refresh on post
* changed paste function to handle when chatinput node exists on paste
* Used helper function to create input on FileInput
* Used helper function to create input on InputFileComponent
* Used helper function to create input on folder upload, and used uploadFlow hook
* used uploadFlow hook on dropdown options
* used addFlow instead of addComponent on node toolbar
* changed upload flow on headerComponent to use hook
* Changed pageComponent to use uploadFlow hook
* removed useFileDrop dependency
* Fixed onFileDrop to use uploadFlow
* removed useDropdown dependency
* removed unused add and upload functions from flowsManagerStore
* Clean flows and refetch when flow change, added loader when is fetching
* Changed loading to the useQuery isPending
* changed post to add flow
* fixed error when uploading other thing that is not a JSON not appearing
* changed useAddFlow to handle empty params too
* Fixed loading every time we switch tabs
* Fixed unnecessary list and !
* Fixed reference bug
* Inserted cloneDeep to prevent reference bugs
* Fixed tests of drag and drop
* Fixed flows not being refreshed when uploading
* [autofix.ci] apply automated fixes
* fixed folders test
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: frozen status is lost after run
* [autofix.ci] apply automated fixes
* add FE tests to freeze feature
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Cristhian Zanforlin Lousa <72977554+Cristhianzl@users.noreply.github.com>
* refactor: update code references to use _code instead of code
* refactor: add backwards compatible attributes to Component class
* refactor: update Component constructor to pass config params with underscore
Refactored the `Component` class in `component.py` to handle inputs and outputs. Added a new method `map_outputs` to map a list of outputs to the component. Also updated the `__init__` method to properly initialize the inputs, outputs, and other attributes. This change improves the flexibility and extensibility of the `Component` class.
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* refactor: change attribute to use underscore
* refactor: update CustomComponent initialization parameters
Refactored the `instantiate_class` function in `loading.py` to update the initialization parameters for the `CustomComponent` class. Changed the parameter names from `user_id`, `parameters`, `vertex`, and `tracing_service` to `_user_id`, `_parameters`, `_vertex`, and `_tracing_service` respectively. This change ensures consistency and improves code readability.
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* refactor: update BaseComponent to accept UUID for _user_id
Updated the `BaseComponent` class in `base_component.py` to accept a `UUID` type for the `_user_id` attribute. This change improves the type safety and ensures consistency with the usage of `_user_id` throughout the codebase.
* refactor: import nanoid with type annotation
The `nanoid` import in `component.py` has been updated to include a type annotation `# type: ignore`. This change ensures that the type checker ignores any errors related to the `nanoid` import.
* fix(custom_component.py): convert _user_id to string before passing to functions to ensure compatibility with function signatures
* feat(component.py): add method to set output types based on method return type to improve type checking and validation in custom components
* refactor: extract method to get method return type in CustomComponent
* refactor(utils.py): refactor code to use _user_id instead of user_id for consistency and clarity
perf(utils.py): optimize code by reusing cc_instance instead of calling get_component_instance multiple times
* refactor(utils.py, base.py): change parameter name 'add_name' to 'keep_name' for clarity and consistency in codebase
* [autofix.ci] apply automated fixes
* refactor: update schema.py to include Edge related typres
The `schema.py` file in the `src/backend/base/langflow/graph/edge` directory has been updated to include the `TargetHandle` and `SourceHandle` models. These models define the structure and attributes of the target and source handles used in the edge data. This change improves the clarity and consistency of the codebase.
* refactor: update BaseInputMixin to handle invalid field types gracefully
The `BaseInputMixin` class in `input_mixin.py` has been updated to handle invalid field types gracefully. Instead of raising an exception, it now returns `FieldTypes.OTHER` for any invalid field type. This change improves the robustness and reliability of the codebase.
* refactor: update file_types field alias in FileMixin
The `file_types` field in the `FileMixin` class of `input_mixin.py` has been updated to use the `alias` parameter instead of `serialization_alias`. This change ensures consistency and improves the clarity of the codebase.
* refactor(inputs): update field_type declarations in various input classes to use SerializableFieldTypes enum for better type safety and clarity
* refactor(inputs): convert dict to Message object in _validate_value method
* refactor(inputs): convert dict to Message object in _validate_value method
* refactor(inputs): update model_config in BaseInputMixin to enable populating by name
The `model_config` attribute in the `BaseInputMixin` class of `input_mixin.py` has been updated to include the `populate_by_name=True` parameter. This change allows the model configuration to be populated by name, improving the flexibility and usability of the codebase.
* refactor: update _extract_return_type method in CustomComponent to accept Any type
The _extract_return_type method in CustomComponent has been updated to accept the Any type as the return_type parameter. This change improves the flexibility and compatibility of the method, allowing it to handle a wider range of return types.
* refactor(component): add get_input and get_output methods for easier access to input and output values
The `Component` class in `component.py` has been updated to include the `get_input` and `get_output` methods. These methods allow for easier retrieval of input and output values by name, improving the usability and readability of the codebase.
* refactor(vertex): add get_input and get_output methods for easier access to input and output values
* refactor(component): add set_output_value method for easier modification of output values
The `Component` class in `component.py` has been updated to include the `set_output_value` method. This method allows for easier modification of output values by name, improving the usability and flexibility of the codebase.
* feat: add run_until_complete and run_in_thread functions for handling asyncio tasks
The `async_helpers.py` file in the `src/backend/base/langflow/utils` directory has been added. This file includes the `run_until_complete` and `run_in_thread` functions, which provide a way to handle asyncio tasks in different scenarios. The `run_until_complete` function checks if an event loop is already running and either runs the coroutine in a separate event loop in a new thread or creates a new event loop and runs the coroutine. The `run_in_thread` function runs the coroutine in a separate thread and returns the result or raises an exception if one occurs. These functions improve the flexibility and usability of the codebase.
* refactor(component): add _edges attribute to Component class for managing edges
The `Component` class in `component.py` has been updated to include the `_edges` attribute. This attribute is a list of `EdgeData` objects and is used for managing edges in the component. This change improves the functionality and organization of the codebase.
* fix(component.py): fix conditional statement to check if self._vertex is not None before accessing its attributes
* refactor(component): add _get_fallback_input method for handling fallback input
The `Component` class in `component.py` has been updated to include the `_get_fallback_input` method. This method returns an `Input` object with the provided keyword arguments, which is used as a fallback input when needed. This change improves the flexibility and readability of the codebase.
* refactor(component): add TYPE_CHECKING import for Vertex in component.py
* refactor(component): add _map_parameters_on_frontend_node and _map_parameters_on_template and other methods
The `Component` class in `component.py` has been refactored to include the `_map_parameters_on_frontend_node` and `_map_parameters_on_template` methods. These methods are responsible for mapping the parameters of the component onto the frontend node and template, respectively. This change improves the organization and maintainability of the codebase.
* refactor(component): Add map_inputs and map_outputs methods for mapping inputs and outputs
The `Component` class in `component.py` has been updated to include the `map_inputs` and `map_outputs` methods. These methods allow for mapping the given inputs and outputs to the component, improving the functionality and organization of the codebase.
* refactor(component): Add Input, Output, and ComponentFrontendNode imports and run_until_complete function
This commit refactors the `component.py` file in the `src/backend/base/langflow/custom/custom_component` directory. It adds the `Input`, `Output`, and `ComponentFrontendNode` imports, as well as the `run_until_complete` function from the `async_helpers.py` file. These changes improve the functionality and organization of the codebase.
* refactor(component): Add map_inputs and map_outputs methods for mapping inputs and outputs
* refactor(component): Add _process_connection_or_parameter method for handling connections and parameters
The `Component` class in `component.py` has been updated to include the `_process_connection_or_parameter` method. This method is responsible for handling connections and parameters based on the provided key and value. It checks if the value is callable and connects it to the component, otherwise it sets the parameter or attribute. This change improves the functionality and organization of the codebase.
* refactor(frontend_node): Add set_field_value_in_template method for updating field values
The `FrontendNode` class in `base.py` has been updated to include the `set_field_value_in_template` method. This method allows for updating the value of a specific field in the template of the frontend node. It iterates through the fields and sets the value of the field with the provided name. This change improves the flexibility and functionality of the codebase.
* refactor(inputs): Add DefaultPromptField class for default prompt inputs
The `inputs.py` file in the `src/backend/base/langflow/inputs` directory has been refactored to include the `DefaultPromptField` class. This class represents a default prompt input with customizable properties such as name, display name, field type, advanced flag, multiline flag, input types, and value. This change improves the flexibility and functionality of the codebase.
* feat: Add Template.from_dict method for creating Template objects from dictionaries
This commit adds the `from_dict` class method to the `Template` class in `base.py`. This method allows for creating `Template` objects from dictionaries by converting the dictionary keys and values into the appropriate `Template` attributes. This change improves the flexibility and functionality of the codebase.
* refactor(frontend_node): Add from_dict method for creating FrontendNode objects from dictionaries
* refactor: update BaseComponent to use get_template_config method
Refactored the `BaseComponent` class in `base_component.py` to use the `get_template_config` method instead of duplicating the code. This change improves code readability and reduces redundancy.
* feat: add BaseModel class with model_config attribute
A new `BaseModel` class has been added to the `base_model.py` file. This class extends the `PydanticBaseModel` and includes a `model_config` attribute of type `ConfigDict`. This change improves the codebase by providing a base model with a configuration dictionary for models.
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* refactor: update langflow.graph.edge.schema.py
Refactor the `langflow.graph.edge.schema.py` file to include the `TargetHandle` and `SourceHandle` models. This change improves the clarity and consistency of the codebase.
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* refactor: update build_custom_component_template to use add_name instead of keep_name
Refactor the `build_custom_component_template` function in `utils.py` to use the `add_name` parameter instead of the deprecated `keep_name` parameter. This change ensures consistency with the updated method signature and improves code clarity.
* feat(component.py): add method to set output types based on method return type to improve type checking and validation in custom components (#3115)
* feat(component.py): add method to set output types based on method return type to improve type checking and validation in custom components
* refactor: extract method to get method return type in CustomComponent
* refactor: update _extract_return_type method in CustomComponent to accept Any type
The _extract_return_type method in CustomComponent has been updated to accept the Any type as the return_type parameter. This change improves the flexibility and compatibility of the method, allowing it to handle a wider range of return types.
* refactor: add _template_config property to BaseComponent
Add a new `_template_config` property to the `BaseComponent` class in `base_component.py`. This property is used to store the template configuration for the custom component. If the `_template_config` property is empty, it is populated by calling the `build_template_config` method. This change improves the efficiency of accessing the template configuration and ensures that it is only built when needed.
* refactor: add type checking for Output types in add_types method
Improve type checking in the `add_types` method of the `Output` class in `base.py`. Check if the `type_` already exists in the `types` list before adding it. This change ensures that duplicate types are not added to the list.
* update starter projects
* refactor: optimize imports in base.py
Optimize imports in the `base.py` file by removing unused imports and organizing the remaining imports. This change improves code readability and reduces unnecessary clutter.
* fix(base.py): fix condition to check if self.types is not None before checking if type_ is in self.types
* refactor: update build_custom_component_template to use add_name instead of keep_name
* fix(userSettings.spec.ts): update visibility check to ensure the correct element is interacted with in end-to-end test
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* 📝 (flows.py): refactor delete_multiple_flows function to improve readability and efficiency
✨ (use-delete-flows.ts): add useDeleteFlows hook to handle deletion of multiple flows in frontend
♻️ (index.tsx): refactor handleDeleteMultiple function to use useDeleteFlows hook for deleting multiple flows
🔧 (actionsMainPage-shard-1.spec.ts): add test for selecting and deleting a flow in end-to-end tests
* 📝 (flows.py): Remove unused imports and variables to clean up the code and improve readability
♻️ (flows.py): Refactor code to remove unnecessary import and variable declarations, making the code more concise and maintainable
* add unit tests to delete multiple flows with transactions and build
* format
* add assert on tests
* ✨ (constants.ts): add BUILDS endpoint to URLs constants
✨ (index.ts): create index file for builds-related queries
✨ (use-delete-builds.ts): implement useDeleteFLowPool hook for deleting builds
* ✨ (chatView): integrate useDeleteFlowPool hook for deleting flow pool
♻️ (chatView): refactor clearChat function to use mutateFlowPool for deletion
* ♻️ (use-delete-builds.ts): rename useDeleteFLowPool to useDeleteBuilds for clarity
♻️ (index.tsx): update import and usage of useDeleteFLowPool to useDeleteBuilds
* ✨ (API): add use-get-builds query to fetch build data
✨ (PageComponent): integrate use-get-builds query for fetching builds
✨ (flowStore): add setters for inputs, outputs, and hasIO in flowStore
* ♻️ (flowStore.ts): refactor hasIO to derive its value from inputs and outputs
🔥 (flowStore.ts): remove unused resetFlow function to clean up the codebase
* ♻️ (use-get-builds.ts): refactor useGetBuildsQuery to remove unused params
✨ (PageComponent): add logic to handle flow state, inputs, outputs, and viewport
♻️ (flowStore): refactor and add resetFlow method to handle flow state reset
* ✅ (chatComponent): add data-testid attributes for better testability
✅ (generalBugs-shard-3.spec.ts): add end-to-end test for playground button state
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* ♻️ (crud.py): refactor delete_vertex_builds_by_flow_id function to correctly delete vertex builds by flow_id using relationship attribute instead of column comparison.
* 📝 (generalBugs-shard-0.spec.ts): Remove unnecessary test case and add new test case for chat messages clearing functionality
✨ (generalBugs-shard-8.spec.ts): Add new test case for interacting with API request
✨ (generalBugs-shard-9.spec.ts): Add new test case for testing chat memory functionality
* feat: create useDeleteApiKey hook to handle api keys delete
* refactor: use mutation to handle delete api key
* [autofix.ci] apply automated fixes
* feat: create useGetApiKeys hook
* refactor: use useGetApiKeysQuery hook to get api keys data
* [autofix.ci] apply automated fixes
* refactor: change interface name
* refactor: remove unnused loading state and use react state instead of react ref to ensure component render
* fix: multiple refreshs when auto_login=false
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* merge
* [autofix.ci] apply automated fixes
* support for MultilineSecretInput
* add support for MultilineSecretInput
* [autofix.ci] apply automated fixes
* ruff
* align eye-icon
* tweaks and modal
* [autofix.ci] apply automated fixes
* textare edit modal hidden text plus eye icon
* fix pydantic serialization warning
* [autofix.ci] apply automated fixes
* chore: Add password visibility toggle to text area components
* [autofix.ci] apply automated fixes
* fix list assistants
* fix: remove extraneous property from is-unicode-supported dependency
* fix: update TextAreaComponent styling for edit node table
Adjust the styling of the TextAreaComponent in the edit node table to fix the positioning of the side-bar button. The right margin of the button was changed from 5.2rem to 4.2rem to align it correctly with the text area. This change improves the visual consistency of the edit node table.
* fix modal not sync with outside state
* add comment for future devs
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* removed console log and fixed nulland
* Fixed ag grid version mismatch
* Fixed unused import
* Fixed ctrl+a not working on edit node and tweaks
* Fixed styling on editnode
* Made it work on mac
* ✅ (generalBugs-shard-7.spec.ts): add end-to-end test for selecting all with ctrl + A on advanced modal to ensure functionality works as expected
---------
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* changed column defs to receive handleOnNewValue and use it to change Advanced variable
* Exported function isTargetHandleConnected
* Refactored types of setNodeClass
* Exported type of handleOnNewValue
* Refactored useHandleNodeClass to only handle changes to node data
* Refactored toggleCellRender to handle advanced values by itself with the handleOnNewValue
* changed setNodeClass types and disabled hook
* changed handleNodeClass on parametercomponent
* changed handleNodeClass on the two components that used it
* refactor: Update handleNodeClass to accept newNodeClass and type only
* Refactor EditNodeModal component to use new handleNodeClass and columnDefs
* Changed columnDefs to receive new handleNodeClass and not receive useless parameters
* changed cellTypeStr to strRender
* Refactored inputFileComponent to use the new handleOnNewValue
* Refactored keypairList to convert values on the fly
* added parameterRenderComponent that renders all parameters in one place
* Exported parameterRenderComponent
* Changed tableNodeCellRender to use ParameterRenderComponent
* changed parameterredercomponent to receive name
* changed strrendercomponent to receive name
* changed nodecellrender to pass name and to check if value is undefined before assigning on templateData
* chore: Refactor use-handle-new-value to handle undefined values in changes
* Used ParameterRenderComponent at parameterComponent
* Refactored parameterRenderComponent to include refresh button
* Created refresh parameter component
* Added nodeId to parameterrendercomponent call
* Removed unused variable
* Refactored refreshButton
* Fixed parameters not showing when they dont have a value
* Created a tweakComplnent that renders the tweak individually, with the same table as the EditNode
* Created tweaks component, that renders all tweaks
* Changed tableNodeCellRender to pass setNode as well
* changed handleOnNewValue to use custom setNode if specified
* added editNodeComponent that handles the table and rowData and columnDefs
* changed editNodeModal to use editNodeComponent instead of table
* changed columndefs type to handle setNode and hideVisibility optional parameters
* changed useRowData to not use myData, and just use nodeClass
* Changed codeTabsPropsType tweaks property to include only the ncessary
* changed codeTabsComponent to use TweaksComponent and handle an internal nodes state
* changed apiModal to handle the tweaks build by finding the differences between old and current node
* fix bug on API modal that refresh tweaks table all the time
* Created new tweaks store type
* Added tweaks store with all of the logic needed to get the tweaks on the API page
* refactored TweakComponent to hold an temporary state to prevent the table from rerendering
* Added TweakComponent into TweaksComponent
* Removed external state on tableAdvancedToggle, making every state come from the Stores
* Removed external state from TableNodeCellRender and added isTweaks to choose which store to use
* Added SetNode type on HandleOnNewValue
* Added custom setNode to handleNodeClass
* Removed unused logic from apiModal
* removed unused old code
* Changed type of getChangesTypes
* Transformed string into object on get codes
* Changed getNodesWithDefaultValue to return nodes that will appear on Tweaks, as well as just the allowed parameters
* added hasTweaks to tabs
* added check of template keys to update the local nodeClass state, allowing the table to be updated just when the number of parameters changes
* passed isTweaks to columnDefs
* removed unused state and passed isTweaks to value getters
* Removed unused state
* updated tabsArrayType with hasTweaks and removed unused types
* Added local nodes tweaks state to the codetabscomponent and refactored conditions of display
* removed unused console.log
* changed advanced toggle to use parameterid given by the value
* changed nodecellrender to use parameter id given by the value
* passed parameter id by value to the renderers
* removed nodeClass from columnDefs definition
* Fixed isTargetHandleConnected returning error if field is undefined
* Fix performance issues on edit node modal
* Fixed scroll overflow issues on tweaksComponent
* Revert "Revert "refactor: update template api, handleonnewvalue and handlenodeclass hooks (#2628)""
This reverts commit 236ae82cabba2fa1128f498d781099facd222b57.
* 📝 (tweaksTest.spec.ts): remove redundant code and improve readability by simplifying the interaction with elements in the test case
* added custom id for tests
* ✨ (frontend): Add unique id prop to input components for better testability and accessibility.
✨ (Hierarchical Tasks Agent.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (Memory Chatbot.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (Sequential Tasks Agent.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (chatInputOutputUser-shard-0.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (chatInputOutputUser-shard-1.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (chatInputOutputUser-shard-2.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (decisionFlow.spec.ts): Update input list element IDs to improve clarity and consistency
✨ (decisionFlow.spec.ts): Update prompt area element IDs to improve clarity and consistency
✨ (decisionFlow.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (freeze-path.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (generalBugs-shard-0.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (generalBugs-shard-1.spec.ts): Update dropdown element IDs to improve clarity and consistency
✨ (generalBugs-shard-3.spec.ts): Update dropdown element IDs to improve clarity and consistency
🔧 (logs.spec.ts, textInputOutput.spec.ts): update dropdown test selectors to match changes in the frontend codebase
* Fixed prompt not holding the value when validating
* Fixed range spec on int component
* Fixed OpenAI Model max tokens range spec
* ✨ (dropdownComponent.spec.ts): Update dropdown test cases to use more descriptive test IDs for better clarity and maintainability
📝 (fileUploadComponent.spec.ts): Add explicit wait for "Run Flow" button to ensure it is loaded before clicking
📝 (folders.spec.ts): Update file path in readFileSync function to use an absolute path for better reliability
📝 (freeze-path.spec.ts): Refactor test code to remove commented out code and improve readability by using more descriptive test IDs and removing unnecessary code snippets
✨ (inputListComponent.spec.ts): Update test file to use consistent naming convention for input elements in the InputListComponent
📝 (intComponent.spec.ts): Refactor test file to use consistent naming convention for input elements in the IntComponent
✨ (nestedComponent.spec.ts): Update test steps and interactions for nestedComponent to improve test coverage and accuracy.
📝 (promptModalComponent.spec.ts): Update test selectors for prompt modal component to improve consistency and readability
📝 (textAreaModalComponent.spec.ts): Update test selectors for text area modal component to improve consistency and readability
📝 (toggleComponent.spec.ts): Update test selectors for toggle component to improve consistency and readability
* 🐛 (intComponent.spec.ts): fix incorrect value comparison in test for IntComponent
🐛 (intComponent.spec.ts): fix missing test step for clicking on a specific element in IntComponent test
* 📝 (Vector Store.spec.ts): increase timeout for waiting for "built successfully" text to improve test reliability and prevent false negatives
* Fixed folders test
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* ✨ (sidebarComponent): Add support for downloading folders in the sidebar component to allow users to download folder data as JSON files
🔧 (sidebarComponent): Remove unused import and function related to downloading folders to clean up the codebase
📝 (use-get-download-folders): Add a new function to handle downloading folders from the API in a separate file for better code organization
♻️ (MainPage/services): Remove unused functions related to downloading and uploading flows from folders to simplify the services file and improve maintainability
🔧 (foldersStore): Remove unused import and function related to uploading flows from folders to clean up the codebase
* 📝 (sideBarFolderButtons/index.tsx): add error handling logic to display error message when downloading folder fails
* update error message
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* 🐛 (generalBugs-shard-5.spec.ts): fix test to wait for elements to be interactable before performing actions to prevent flakiness
* 📝 (API/api.tsx): return error in promise rejection to handle errors properly
📝 (codeAreaModal/index.tsx): add data-testid attribute to title element for testing purposes
✨ (generalBugs-shard-6.spec.ts): add end-to-end test for error handling in Code Modal
* 📝 (generalBugs-shard-6.spec.ts): update test description for better clarity and grammar
* 🔧 (.github/workflows/typescript_test.yml): add BRAVE_SEARCH_API_KEY secret to workflow environment variables
✨ (frontend/src/modals/IOModal/components/chatView/chatMessage/index.tsx): add data-testid attribute to div element for testing purposes
✨ (frontend/tests/end-to-end/Hierarchical Tasks Agent.spec.ts): add end-to-end test for Hierarchical Tasks Agent
✨ (frontend/tests/end-to-end/Sequential Tasks Agent.spec.ts): add end-to-end test for Sequential Tasks Agent
* updating hierarchical task json
* 🔧 (.github/workflows/typescript_test.yml): add secrets for ASTRA_DB_APPLICATION_TOKEN and ASTRA_DB_API_ENDPOINT
♻️ (playwright.config.ts): refactor timeout value to 3 minutes
📝 (Complex Agent.spec.ts): update test to use BRAVE_SEARCH_API_KEY instead of OPENAI_API_KEY
📝 (Complex Agent.spec.ts): update test to use "apple" instead of "agile"
📝 (Hierarchical Tasks Agent.spec.ts): update test to use "langflow" instead of "agile"
📝 (Sequential Tasks Agent.spec.ts): update test to use waitForTimeout instead of isVisible
✨ (Vector Store.spec.ts): Add checks to skip tests if required environment variables are not set
🔧 (Vector Store.spec.ts): Update test logic to fill in required environment variables before running tests to ensure proper test execution
* 🐛 (generalBugs-shard-5.spec.ts): fix test to wait for elements to be interactable before performing actions to prevent flakiness
* change temperature on canvas beside on component
* 📝 (floatComponent/index.tsx): Add data-testid attribute to float input for testing purposes
🐛 (end-to-end tests): Update test selectors to match changes in component names for consistency and accuracy
✨ (freeze-path.spec.ts): Add end-to-end test for user ability to freeze a path in the application
🐛 (generalBugs-shard-0.spec.ts): Fix outdated component selector in end-to-end test for clearing chat messages
🐛 (generalBugs-shard-1.spec.ts): Fix outdated component selector in end-to-end test for deleting rows from a table message
🐛 (generalBugs-shard-3.spec.ts): Fix outdated component issue by updating the selector for the AlertTriangle icon and the API key input field, and selecting a different model option
🐛 (logs.spec.ts): Fix outdated component issue by updating the selector for the AlertTriangle icon and the API key input field, and selecting a different model option. Also, ensure the "built successfully" text is clicked within a specified timeout
🐛 (textInputOutput.spec.ts): Fix outdated component issue by updating the selector for the AlertTriangle icon and the API key input field, and selecting a different model option
* ⬆️ (typescript_test.yml): increase shardTotal value to 16 to match the updated shardIndex values for better test distribution.
* 📝 (inputComponent.spec.ts): remove unnecessary test case for clicking and checking collection name input field in InputComponent test to improve test focus and readability.
* Revert "refactor: update template api, handleonnewvalue and handlenodeclass hooks (#2628)"
This reverts commit b3c1b941b3.
* ✅ (inputComponent.spec.ts): add test case to check if the input element is checked after clicking on it
* ✨ (multiselectComponent/index.tsx): Refactor value assignment to handle both array and non-array values more efficiently
🔧 (inputComponent.spec.ts, intComponent.spec.ts, saveComponents.spec.ts): Update file paths to point to the correct location of test assets
* ✅ (filterSidebar.spec.ts): comment out two failing test expectations for helpersChat Memory and agentsTool Calling Agent to prevent test failures
📝 (folders.spec.ts): update file path to read collection.json from the correct location
📝 (saveComponents.spec.ts): update file path to read flow_group_test.json from the correct location
* ⬆️ (typescript_test.yml): increase the number of shardIndex values from 16 to 20 to distribute tests more evenly across shards.
* 📝 (folders.spec.ts): update file path to read collection.json file to fix file not found error
* add condition to merge-reports
* ✅ (filterSidebar.spec.ts): update test to check for visibility of agentsCSVAgent element instead of agentsTool Calling Agent element
🐛 (folders.spec.ts): increase timeout for page.waitForTimeout to 5000ms and add a comment suggesting to consider using a more reliable waiting mechanism. Also, add a comment to wait for the target element to be available before evaluation.
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
🔧 (typescript_test.yml): Remove unnecessary steps and conditions in GitHub Actions workflow file
🔧 (authContext.tsx): Update cookie key from LANGFLOW_ACCESS_TOKEN to LANGFLOW_API_TOKEN for consistency
🔧 (Basic Prompting.spec.ts): Update test to click on correct dropdown option
🔧 (filterEdge-shard-0.spec.ts): Update test to check for correct element
🔧 (filterSidebar.spec.ts): Update test to check for correct elements
🔧 (generalBugs-shard-5.spec.ts): Update test to interact with correct element
🔧 (inputComponent.spec.ts): Update test to interact with correct elements
🔧 (store-shard-1.spec.ts): Update test to interact with correct elements and remove unnecessary code
* add new test for bug on output inspection + grouped components
* [autofix.ci] apply automated fixes
* 🔧 (typescript_test.yml): increase shard count from 14 to 15 to distribute tests more evenly
🔧 (typescript_test.yml): fix syntax issues in conditional expressions
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* 🐛 (reactflowUtils.ts): fix addVersionToDuplicates to exclude the updated flow from existing names to prevent naming conflicts
* ✅ (menuBar): add data-testid to flow configuration button for testing
✅ (sideBarFolderButtons): add data-testid to delete folder button for testing
✅ (folders.spec.ts): update test to use new data-testid for delete folder button
✅ (generalBugs-shard-4.spec.ts): add new end-to-end test for flow operations
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* ✅ (tests): remove redundant test assertions in filterEdge-shard-0.spec.ts
✅ (tests): add new test assertions and remove redundant ones in filterEdge-shard-1.spec.ts
* ✅ (filterSidebar.spec.ts): add test for visibility of helpersID Generator
♻️ (filterSidebar.spec.ts): remove redundant visibility test for textsplittersCharacterTextSplitter
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* bugfix: add env import to spec files correctly
* 🔧 (ci.yml): fix indentation for consistency and readability in CI workflow
* ci: add inputs to workflow
* bugfix: improve flaky test general bugs to run smoothier on CI
* ci: add more shards to improve tests on CI
* Fixed dbvalue on table node cell renderer
* Added Change Advanced hook
* Added Handle New Value hook
* Added Handle Node Class hook
* Added Node Class handler to TableNodeCellRender
* Removed internal state of EditNode, added internal state for NodeClass and made the rows and columns be updated when NodeClass changes
* Added NodeClass as dependencies on useMemo to update columns when NodeClass changes
* Fixed advanced not changing the node
* feat: updating tests without save btn
* Added Close button on editNode
---------
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* 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>
* bugfix: update tests FE
* ✅ (tests): add end-to-end tests for deleting components and flows
✅ (tsconfig.json): update tsconfig to include new deleteFlows.spec.ts test file
* ♻️ (dropdownComponent.spec.ts): remove redundant test cases for showendpoint_url to streamline test suite
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* add test to decision flow
* add test to decision flow
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
✅ (tests): add end-to-end tests for basic prompting and general bugs
✅ (tests): add end-to-end test for deleting rows from table message
🔧 (tsconfig.json): update test file name for generalBugs to shard-0 spec
✅ (index.tsx): add data-testid attribute to checkbox component
✅ (basicExamples.spec.ts): add waitForSelector for send icon to improve test stability
✅ (chatInputOutputUser.spec.ts): add waitForSelector for send icon to improve test stability
✅ (deleteComponentFlows.spec.ts): add waitForSelector for various elements to improve test stability
✅ (generalBugs.spec.ts): add waitForSelector for send icon to improve test stability