* ✨ (reactflowUtils.ts): add new function filterHiddenFieldsEdges to filter out edges based on hidden fields in node templates
* ♻️ (reactflowUtils.ts): refactor filterHiddenFieldsEdges function to accept targetNode directly instead of nodes array to improve code readability and maintainability
* 🐛 (reactflowUtils.ts): fix a bug where nodeInputType is accessed without null check, causing potential runtime error
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* 📝 (vertex_types.py): improve default value assignment logic based on edge type for ComponentVertex class
* [autofix.ci] apply automated fixes
* 📝 (schema.py): remove TextInput from INPUT_COMPONENTS list as it is no longer used
♻️ (vertex_types.py): refactor default_value assignment logic for ComponentVertex class to improve readability and maintainability
* ✨ (schema.py): introduce new TextInput component to the list of INPUT_COMPONENTS for the graph schema
* 📝 (vertex_types.py): improve default value assignment logic based on edge type for ComponentVertex class
* [autofix.ci] apply automated fixes
* 🐛 (utils.py): fix layered topological sort to prevent TextInput from being incorrectly placed at the start
* ♻️ (vertex_types.py): Remove unnecessary comment about getting default value based on edge type to improve code readability and maintainability.
* 🐛 (vertex_types.py): simplify default value assignment logic for cycle edges
---------
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: FIrst pass at file management API
* [autofix.ci] apply automated fixes
* Add delete and edit endpoints
* [autofix.ci] apply automated fixes
* Add file size and duplicate name handling
* Ensure the File model has a unique name
* Ensure count is before extension
* [autofix.ci] apply automated fixes
* Add the correct path to the return
* Added function to handle list of paths in File component
* [autofix.ci] apply automated fixes
* Update input_mixin.py
* Refactor to a v2 endpoint
* Add unit tests
* Update test_files.py
* Update frontend.ts
* [autofix.ci] apply automated fixes
* Remove extension from name
* Cast the string type for like
* Update files.py
* Update base.py
* Update base.py
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
* fix note node size
* ♻️ (NoteNode/index.tsx): remove commented out code for debounced resize handler to improve code readability and maintainability
* feat: update NoteNode to resize and persist dimensions in state
* 🐛 (generalBugs-shard-10.spec.ts): fix clicking on the last element with the text "openai" instead of the first one to match the intended behavior
✨ (generalBugs-shard-10.spec.ts): refactor test to use forEach loop for better readability and accuracy in comparing text contents
* 🐛 (general-bugs-save-changes-on-node.spec.ts): add 500ms delay to fix flakiness in tests related to clicking elements and waiting for selectors to appear
* ✨ (appHeaderComponent/index.tsx): add data-testid attribute to app header for testing purposes
📝 (general-bugs-save-changes-on-node.spec.ts): update verifyTextareaValue function to accept an additional parameter flowName for better test coverage and clarity
📝 (general-bugs-save-changes-on-node.spec.ts): add functionality to input and fill a random flow name in the test scenario for improved test coverage and reliability
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* chore: update Google AI models list
* [autofix.ci] apply automated fixes
* chore: update Gemini model name from exp to standard version
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ✨ (NodeName/index.tsx): add cursor-grab class to improve user experience when dragging the node
✨ (NodeName/index.tsx): add nodrag class to prevent text selection when dragging the node
✨ (NodeStatus/index.tsx): add nodrag class to prevent text selection when dragging the node
✨ (GenericNode/index.tsx): add nopan, nodelete, nodrag, noflow classes to improve node dragging behavior
* 📝 (NodeDescription/index.tsx): Update cursor style to 'auto' for better user experience
📝 (NodeName/index.tsx): Update cursor style to 'auto' for better user experience
📝 (NodeOutputfield/index.tsx): Add cursor style 'pointer' to improve interactivity
* ✨ (NodeDescription/index.tsx): Add support for editing node description when selected and editNameDescription is true
✨ (NodeName/index.tsx): Add support for editing node name when selected and editNameDescription is true
🔧 (GenericNode/index.tsx): Introduce useAlternate hook to handle toggling editNameDescription state
📝 (use-alternate.tsx): Add custom hook useAlternate to handle toggling boolean state
🔧 (style/index.css): Add new CSS variable --zinc-foreground for styling purposes
🔧 (tailwind.config.mjs): Add new tailwind color variable "zinc-foreground" for styling purposes
* 📝 (NodeDescription/index.tsx): Remove unnecessary setInputDescription call and update useEffect dependencies for better performance
📝 (NodeDescription/index.tsx): Update className for Textarea component to improve styling and readability
📝 (NodeDescription/index.tsx): Update className for generic-node-desc-text to improve styling and cursor behavior
📝 (NodeName/index.tsx): Remove unnecessary setInputName call and update useEffect dependencies for better performance
📝 (NodeName/index.tsx): Update className for span element to improve cursor behavior and styling
📝 (GenericNode/index.tsx): Add useRef for node element and implement useChangeOnUnfocus hook for better handling of focus events
📝 (GenericNode/index.tsx): Update className for pencil icon based on editNameDescription state for better visual feedback
📝 (GenericNode/index.tsx): Add editNameDescription to dependencies of useCallback to prevent unnecessary re-renders
📝 (GenericNode/index.tsx): Add editNameDescription to dependencies of useEffect to handle changes in editNameDescription state
📝 (use-change-on-unfocus.tsx): Implement custom hook useChangeOnUnfocus for handling focus events and state changes
* Refactor NodeDescription to remove old logic and variables
* Refactor NodeName component to remove unnecessary logic and variables
* [autofix.ci] apply automated fixes
* ✨ (NodeDescription/index.tsx): Add functionality to edit node description and handle events like blur, key down, and double click for sticky notes
📝 (NoteNode/index.tsx): Introduce useAlternate hook to toggle edit mode for node description in NoteNode component
* ♻️ (NoteNode/index.tsx): refactor useAlternate hook usage to simplify code and improve readability
* 🔧 (GenericNode/index.tsx): refactor className to conditionally apply translate-x styles based on showNode state for improved UI responsiveness
* 📝 (NodeDescription/index.tsx): Refactor handleBlurFn and handleKeyDownFn to improve code readability and maintainability
📝 (NodeName/index.tsx): Refactor handleBlur and handleKeyDown functions for better code organization and readability
📝 (GenericNode/index.tsx): Update toggleEditNameDescription prop to setEditNameDescription for consistency and clarity
📝 (use-change-on-unfocus.tsx): Remove unnecessary handleEscape function and handleBlur event listener for better code simplicity and performance
* 📝 (NodeDescription/index.tsx): Update CSS class name to use 'focus-border-primary' instead of 'focus-border-black' for consistency and clarity
📝 (GenericNode/index.tsx): Add data-testid attribute to save and edit name description buttons for testing purposes
📝 (edit-name-description-node.spec.ts): Add test to verify user can edit name and description of a node in the UI
* ✨ (GenericNode/index.tsx): Add functionality to show and hide toolbar with animation based on node selection status
📝 (get-class-toolbar-transform.ts): Create helper function to determine transform classes for toolbar animation based on showToolbar and showNode status
* ✨ (NodeDescription/index.tsx): add setHasChangedNodeDescription prop to update parent component when node description changes
✨ (NodeName/index.tsx): add setHasChangedNodeDescription prop to update parent component when node name changes
✨ (GenericNode/index.tsx): add hasChangedNodeDescription state and setHasChangedNodeDescription function to track changes in node description and update parent component
📝 (edit-name-description-node.spec.ts): add wait for sidebar custom component button and timeout to improve test reliability
* ✨ (group.spec.ts): Update click event on "title-Group" element to improve user interaction
🐛 (group.spec.ts): Fix click event on "save-name-description-button" element to properly save changes
🐛 (general-bugs-save-changes-on-node.spec.ts): Increase timeout for selectors to prevent test failures due to slow loading
🐛 (general-bugs-save-changes-on-node.spec.ts): Fix random value generation to ensure consistent length
🐛 (general-bugs-save-changes-on-node.spec.ts): Fix click event on "add-component-button-text-output" element to add component correctly
🐛 (general-bugs-save-changes-on-node.spec.ts): Fix timeout for selector to prevent test failures due to slow loading
🐛 (general-bugs-save-changes-on-node.spec.ts): Fix verifyTextareaValue function to properly verify textarea values
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ✨ (NodeStatus): Add support for utility store in NodeStatus component to manage dismissAll state
🔧 (GenericNode): Import and use utility store in GenericNode component to access dismissAll state
🔧 (use-reset-dismiss-update-all): Create hook to reset dismissAll state in utility store
🔧 (UpdateAllComponents): Import and use utility store in UpdateAllComponents component to access dismissAll state
🔧 (header): Import useResetDismissUpdateAll hook in header component to reset dismissAll state
🔧 (list): Import useResetDismissUpdateAll hook in list component to reset dismissAll state
🔧 (utilityStore): Add dismissAll state and setDismissAll method to utility store
🔧 (utility/index): Add dismissAll state and setDismissAll method to UtilityStoreType
* ✨ (NodeStatus/index.tsx): add dismissAll prop to NodeStatus component to handle dismissing all notifications
✨ (GenericNode/index.tsx): add dismissAll prop to GenericNode component to handle dismissing all notifications
✨ (UpdateAllComponents/index.tsx): add e.stopPropagation() to onClick event handler to prevent event bubbling
🔧 (header/index.tsx): remove unused import useResetDismissUpdateAll from header component
* ✨ (NodeStatus/index.tsx): Add functionality to handle updating a component when it is outdated and not user-edited
🔧 (GenericNode/index.tsx): Update handleUpdateComponent function to handleUpdateCode for consistency
🔧 (appHeaderComponent/index.tsx): Add useResetDismissUpdateAll hook to reset dismiss update all functionality
🔧 (use-reset-dismiss-update-all.ts): Update useResetDismissUpdateAll hook to only reset dismiss update all in flow location path
🔧 (list/index.tsx): Remove useResetDismissUpdateAll hook from ListComponent as it is no longer needed
🔧 (index.css): Remove extra whitespace in CSS file
* 🔧 (GenericNode/index.tsx): improve conditional class logic to include dismissAll variable in className calculation
---------
Co-authored-by: anovazzi1 <otavio2204@gmail.com>
* feat: implement get_or_create_default_folder function to ensure default folder exists for users
* refactor: replace create_default_folder_if_it_doesnt_exist with get_or_create_default_folder for user folder creation
* test: add unit tests for get_or_create_default_folder function
* ✨ (generalBugs-shard-10.spec.ts): refactor test script to improve readability and maintainability by chaining actions on page elements instead of using separate lines for each action
---------
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* feat: Implement serialization functions for various data types and add a unified serialize method
* feat: Enhance serialization by adding support for primitive types, enums, and generic types
* fix: Update Pinecone integration to use VectorStore and handle import errors gracefully
* test: Add hypothesis-based tests for serialization functions across various data types
* refactor: Replace custom serialization logic with unified serialize function for consistency and maintainability
* refactor: Replace recursive serialization function with unified serialize method for improved clarity and maintainability
* refactor: Replace custom serialization logic with unified serialize function for improved consistency and clarity
* refactor: Enhance serialization logic by adding instance handling and streamlining type checks
* refactor: Remove custom dictionary serialization from ResultDataResponse for streamlined handling
* refactor: Enhance serialization in ResultDataResponse by adding max_items_length for improved handling of outputs, logs, messages, and artifacts
* refactor: Move MAX_ITEMS_LENGTH and MAX_TEXT_LENGTH constants to serialization module for better organization
* refactor: Simplify message serialization in Log model by utilizing unified serialize function
* refactor: Remove unnecessary pytest marker from TestSerializationHypothesis class
* optimize _serialize_bytes
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* feat: Add support for numpy integer type serialization
* feat: Enhance serialization with support for pandas and numpy types
* test: Add comprehensive serialization tests for numpy and pandas types
* fix: Update _serialize_dispatcher to return string representation for unsupported types
* fix: Update _serialize_dispatcher to return the object directly instead of its string representation
* optmize conditional
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* optimize length check
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* fix: Update string and list truncation to include ellipsis for clarity
* ⚡️ Speed up function `_serialize_dataframe` by 123% in PR #6044 (`refactor-serialization`)
Certainly! Here's a more efficient version of the given program. The primary optimization performed here is removing the redundant `.apply()` call and directly truncating values in a more performant way.
### Changes Made.
1. **Removed redundant `apply` calls**: In the original code, there were nested `apply` calls which can be very slow on larger DataFrames. The new implementation converts the DataFrame to a list of dictionaries first and then truncates the values if needed.
2. **Optimized truncation logic**: Applied truncation directly while iterating over the dictionary after conversion from a DataFrame. This reduces overhead and improves readability.
These changes should enhance the runtime performance of the serialization process, especially for larger DataFrames.
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* feat: Implement serialization functions for various data types and add a unified serialize method
* optmize conditional
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* fix: Update string and list truncation to include ellipsis for clarity
* ⚡️ Speed up function `_serialize_series` by 234% in PR #6044 (`refactor-serialization`)
Certainly! Here is a more optimized version of the program.
Changes made.
1. Replaced the `apply` method with dictionary comprehension. This avoids creating an intermediate Series, which can be an expensive operation.
2. Moved `_truncate_value` outside of the main function to keep the main function concise and focused.
* refactor: Remove unused `_truncate_value` function from serialization module
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* feat: Implement serialization functions for various data types and add a unified serialize method
* feat: Enhance serialization by adding support for primitive types, enums, and generic types
* fix: Update Pinecone integration to use VectorStore and handle import errors gracefully
* test: Add hypothesis-based tests for serialization functions across various data types
* refactor: Replace custom serialization logic with unified serialize function for consistency and maintainability
* refactor: Replace recursive serialization function with unified serialize method for improved clarity and maintainability
* refactor: Replace custom serialization logic with unified serialize function for improved consistency and clarity
* refactor: Enhance serialization logic by adding instance handling and streamlining type checks
* refactor: Remove custom dictionary serialization from ResultDataResponse for streamlined handling
* refactor: Enhance serialization in ResultDataResponse by adding max_items_length for improved handling of outputs, logs, messages, and artifacts
* refactor: Move MAX_ITEMS_LENGTH and MAX_TEXT_LENGTH constants to serialization module for better organization
* refactor: Simplify message serialization in Log model by utilizing unified serialize function
* refactor: Remove unnecessary pytest marker from TestSerializationHypothesis class
* optimize _serialize_bytes
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* feat: Add support for numpy integer type serialization
* feat: Enhance serialization with support for pandas and numpy types
* test: Add comprehensive serialization tests for numpy and pandas types
* fix: Update _serialize_dispatcher to return string representation for unsupported types
* fix: Update _serialize_dispatcher to return the object directly instead of its string representation
* optmize conditional
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* optimize length check
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* fix: Update string and list truncation to include ellipsis for clarity
* fix: Update _serialize_primitive to exclude string type from primitive handling
* feat: Enhance serialization to handle numpy types and introduce unserializable sentinel
* fix: Update test cases for serialization of numpy boolean values for consistency
---------
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* 🐛 (component.py): fix logic in _process_raw_result method to correctly extract data from result object based on conditions and return it
* [autofix.ci] apply automated fixes
* ♻️ (component.py): refactor extract_data method to improve readability and maintainability by using more descriptive variable names and simplifying the logic.
* [autofix.ci] apply automated fixes
* 🐛 (component.py): update isinstance check to use union type for better type handling
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Add tests for run_flow_from_json with fake environment variables
- Implemented test_run_flow_with_fake_env to validate flow execution with a fake .env file.
- Added test_run_flow_with_fake_env_TWEAKS to check flow execution using environment variables loaded from the fake .env file.
* Replace keys in tweaks with their corresponding environment variable values
- Implemented a function to recursively replace keys in the tweaks dictionary with values from the provided environment variables.
* updated to use better way to load test json file
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* refactor: improve test readability and consistency in load tests
- Renamed variable `TWEAKS` to `tweaks_dict` for clarity and consistency across tests.
- Updated test function names to follow a consistent naming convention.
- Enhanced comments for better understanding of test intentions.
- Minor formatting adjustments to improve code readability.
* feat: add aload_flow_from_json and arun_flow_from_json to module exports
* fix: correct file path handling in aload_flow_from_json function
* fix: improve environment variable handling in aload_flow_from_json function
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* feat: Add get_base_args method to Component class
Introduces a new method to retrieve base initialization arguments for components, including user ID, session ID, and tracing service. This method provides a convenient way to access essential context information during component initialization.
* refactor: Update AgentComponent to use get_base_args method
Modify AgentComponent to pass base initialization arguments when creating CurrentDateComponent and MemoryComponent, ensuring consistent context initialization across components.
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: Add tool_mode field to Output model for tool usage specification
* fix: Specify type for component_toolkit in to_toolkit method
* feat: Add method to determine if output should be skipped in ComponentToolkit
* [autofix.ci] apply automated fixes
* test: Add tool_mode field to Output model in test schema
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: Problem checking clickhouse connection when port is different from default
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>