* chore: update version to 1.4.2 in package.json and package-lock.json
* chore: update version to 1.4.2 for langflow and langflow-base in project files
✨ (index.tsx): introduce customGetHostProtocol function to get host protocol dynamically for URL construction
♻️ (index.tsx): refactor URL construction in index.tsx to use customGetHostProtocol function for better code organization and reusability
📝 (custom-mcp-url.ts): add customGetMCPUrl function to generate MCP URL based on project ID
📝 (McpServerTab.tsx): update McpServerTab component to use customGetMCPUrl function for constructing MCP URL based on project ID and improve code readability
✨ (index.tsx): Add support for custom download folder functionality to improve file download process
📝 (use-get-download-folders.ts): Update useGetDownloadFolders function to use customGetDownloadTypeFolders for downloading folders
📝 (custom-get-download-folders.ts): Add customGetDownloadTypeFolders and customGetDownloadFolderBlob functions for handling custom download folder logic
* ✨ (NodeStatus): Add customOpenNewTab function to handle opening links in a new tab
🔧 (connectionComponent): Use customOpenNewTab function to open links in a new tab
🔧 (linkComponent): Use customOpenNewTab function to open links in a new tab
🔧 (custom-open-new-tab.ts): Create customOpenNewTab function to open links in a new tab
🔧 (new-modal): Use customOpenNewTab function to open LangflowButtonRedirectTarget link in a new tab
🔧 (nodeToolbarComponent): Remove unnecessary dependency openInNewTab from useEffect in NodeToolbarComponent
* ✨ (frontend): Add customOpenNewTab function to handle opening links in a new tab for better customization and control. Remove openInNewTab function to avoid redundancy and simplify code.
* Updated updateAllComponents to not include user edited components
* Changed GenericNode to display isOutdated to node toolbar if user edited
* Changed Restore color
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* ✨ (frontend): Add new customization components and hooks for the frontend application. This includes DashboardWrapperPage, McpServerTab, BaseModal, EmptyPageCommunity, FileCard, IOFileInput, IOModal, ProfilePictureChooserComponent, VoiceAssistant, App, router, CustomPreloadImages, useStartConversation, useStartRecording, CustomAudioWorkletProcessor.
* ✨ (frontend): Add new customization components and utilities for NodeStatus, curl code, JS API code, Python API code, and widget code.
* ✨ (frontend): Add new customization components and controllers for the frontend application.
* ✨ (frontend): Add new customization components and controllers for the frontend application.
* add customization folder desktop
* ✨ (AccountMenu): Introduce CustomAccountMenu component to customize the account menu in the app header
🔄 (ProfileIcon): Refactor ProfileIcon component to CustomProfileIcon for customization purposes
🔄 (langflow-counts): Refactor LangflowCounts component to CustomLangflowCounts for customization purposes
* 🔧 Remove unused files related to dialog, langflow, buildUtils, and reactflowUtils components
* ✨ (frontend): Add new images and components for the frontend UI
📝 (frontend): Update custom hooks to have more descriptive names for better clarity and organization
* 🔧 Remove package-lock.json as it is not needed and can be generated dynamically by npm or yarn when installing dependencies
* [autofix.ci] apply automated fixes
* 📝 (frontend): Add custom dialog content component without fixed positioning
🔧 (frontend): Update dialog class utility to improve dialog styling
🔧 (frontend): Update custom build utils for API endpoints
🔧 (frontend): Add custom get access token utility function
🔧 (frontend): Add custom get host protocol utility function
🔧 (frontend): Add custom pre-load image URL utility function
🔧 (frontend): Add custom react flow utility functions
🔧 (frontend): Add custom refresh latest version utility function
🔧 (frontend): Add custom routes for store pages
🔧 (frontend): Add custom routes for store pages components
🔧 (frontend): Update build utils for API endpoints
🔧 (frontend): Update react flow utility functions for downloading flows
* ✨ (custom-routes-store-pages.tsx): Rename customRoutesStorePages to CustomRoutesStorePages for consistency and clarity
✨ (custom-routes-store.tsx): Rename customRoutesStore to CustomRoutesStore for consistency and clarity
🔧 (routes.tsx): Remove unused import of StoreGuard to clean up the code and improve maintainability
🔧 (routes.tsx): Update imports of customRoutesStore and customRoutesStorePages to use named imports for consistency and clarity
* ✨ (API/index.ts): Add custom functions to fetch app versions and latest version from a custom source
🔧 (feature-flags.ts): Remove ENABLE_LANGFLOW_DESKTOP feature flag as it is no longer needed
📝 (custom-get-app-latest-version.ts): Add custom functions to fetch app versions and latest version from a custom source
* ♻️ (frontend): refactor API controller to export getAppVersions and getLatestVersion functions instead of calling custom functions directly
* ✨ (deploy-dropdown.tsx): Add customMcpOpen function to handle target attribute in CustomLink component
✨ (sideBarFolderButtons/index.tsx): Add CustomStoreButton component to render a custom store button if ENABLE_DATASTAX_LANGFLOW is false
📝 (custom-store-button.tsx): Create CustomStoreButton component to render a custom store button
📝 (custom-store-sidebar.tsx): Create CustomStoreSidebar component to define custom store sidebar items
📝 (custom-mcp-open.ts): Create customMcpOpen function to return "_blank" for target attribute
📝 (custom-refresh-latest-version.ts): Add useDarkStore import and use it to refresh latest version
📝 (SettingsPage/index.tsx): Import CustomStoreSidebar and use it to populate langflowItems
📝 (ProfilePictureChooserComponent/index.tsx): Import customPreLoadImageUrl and use it to preload images
📝 (use-preload-images.ts): Remove unused import of BASE_URL_API
📝 (use-preload-images.ts): Remove unused constant BASE_URL_API
* 🔧 (LangflowDesktopLogo.png): remove LangflowDesktopLogo.png as it is no longer needed in the project
* ✨ (custom-fetch-error-component.tsx): add CustomFetchErrorComponent to customize error handling in the frontend
🔧 (GenericErrorComponent/index.tsx): replace FetchErrorComponent with CustomFetchErrorComponent for more flexibility and customization in error handling
* ✨ (updater.ts): introduce new types Version and UpdaterStoreType for managing version information and updater modal state in the frontend customization module
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fixed styling
* Enabled header checkbox selection
* Changed styling of selection
* Implemented bulk downloading and deleting
* Added delete bulk hook
* Added download bulk hook
* Fix backend to send extension in download single file
* Fix hook to download single file directly
* Added header and selection handling
* Added delete confirmation
* [autofix.ci] apply automated fixes
* Fixed selection with shift
* Show disabled files
* Show disabled files as not clickable
* Changed color of icon when disabled
* Implemented pressed shift handling
* Fixed shift selection and disabled text selection when holding shift
* Created test for bulk selection on files modal
* add test of disabled components in file component
* Fixed files page test to include bulk editing test
* removed ring on focus visible
* Changed delete files having the right select
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Fixed not being able to edit options because of overflow in Table Node Cell Editor
* Updated structured output to not have Multiple selection since it's enabled by default
* 🔧 (use-get-messages-polling.ts): refactor enqueuePolling method to simplify logic and improve readability
🔧 (use-get-messages-polling.ts): refactor startNextPolling method to remove unnecessary code and improve efficiency
🔧 (use-get-messages-polling.ts): refactor removeFromQueue method to simplify and improve maintainability
🔧 (use-get-messages-polling.ts): refactor useGetMessagesPollingMutation to handle stopping polling and removing from queue
🔧 (use-get-transactions.ts): add early return to getTransactionsFn to handle empty id case
🔧 (use-get-voice-list.ts): refactor useGetVoiceList function to handle empty elevenlabsApiKey case and improve readability
🔧 (audio-settings-dialog.tsx): update useGetVoiceList call to pass elevenLabsApiKey as argument
* queues should hold payloads not strings
* ✨ (use-get-global-variables.ts): add setGlobalVariablesEntities function to store global variables entities for use in the application
✨ (audio-settings-dialog.tsx): introduce debounced function to update ElevenLabs API key in global variables entities
📝 (globalVariables.ts): add setGlobalVariablesEntities function to the global variables store for managing entities
📝 (index.ts): define GlobalVariable type for global variables entities in the store
* ✨ (frontend): add support for extracting flowId from URL query parameters to allow direct linking to specific flow logs.
---------
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* update input to have h-fit
* Update McpServerTab text size
* Update Tools Component
* Update header text sizes
* Update list component to match design
* Update home page paddings
* Update home page to use ListComponent in both views
* Delete Grid
* Update skeleton to match design
* Remove old grid reference
* Implemented different border on checkbox
* Added selected flows
* Added selected flows action buttons
* Added flow selection on list component
* Added get download flows
* Added download and delete functions
* change download flows to download one flow directly
* implement shift selection
* Fix ctrl and meta behavior on selection
* remove selected flows if they dont exist
* added control just if its not mac
* Updated deletion modal
* Fixed delete confirmation modal taking up space in grid
* Fixed data-testids and success messages
* Added bulk actions test and fixed actionsMainPage
* added max width to home page
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: add endpoint name support in API code generation
* fix: ensure endpoint_name is properly handled in flow saving and API tabs
* fix: simplify endpoint_name handling in useSaveFlow hook
* feat: add streaming support to code options in APITabsComponent
* fix: remove unused setCurrentFlow call in FlowSettingsModal
* fix: add optional method property to OutputFieldType
* feat: Enhance GenericNode with breaking change detection
- Added state management for breaking changes in GenericNode.
- Updated useCheckCodeValidity hook to evaluate breaking changes based on outputs and template keys.
- Improved node status color logic to reflect breaking changes and outdated code.
- Enhanced UI feedback for users with appropriate alerts and dismiss options.
* refactor: Improve breaking change handling in useCheckCodeValidity hook
- Simplified logic for detecting breaking changes and outdated code.
- Updated state management to ensure accurate status updates based on user inputs and templates.
- Enhanced readability by consolidating related checks into a single conditional structure.
* Fix outdated check
* Componentized breaking change
* Updated design of update handle on node
* Added small-update to modal sizes
* updated duplicate flow hook to duplicate just a flow
* Added update component modal with updating for single component
* Added new duplicateFlow on dropdown on main page
* use new update code modal on generic node
* delete check code validity
* add new check code vaildity util function
* removed unused sets from update node code
* Make componentsToUpdate contain breaking info
* Make Generic Node use Components to Update
* Change border in Node Status
* Stop propagation on node update
* Update update all components to have changes from figma
* updated flow store type and added components to update
* Update update component modal
* added icon on outdatedNodes
* Added id filtering on update components
* Added table with components to update
* Update styling
* Update update component modal to use table component
* Updated styles
* filter map
* Update select to not allow selecting texts on backup flow
* Update cursor for label
* Update text of backup flow
* Try to update selection
* Fix selection of components on opening modal
* Insert Update button on node toolbar if dismissed
* Added new parameters of node toolbar
* Added new types of node toolbar
* Removed update button from node status
* Updated shadcn theme
* Added dismiss by node, added dismissing to local storage, added correct update display
* Clarified update warnings in the UpdateComponentModal to better inform users about potential breaking changes and the need to reconnect components.
* Refactored update component visibility logic in GenericNode to use a memoized value for improved performance and readability.
* Updated test for outdated components to reflect changes in button selectors and improved visibility assertions for update notifications.
* Simplified visibility assertion in outdated components test to check for a more concise update message.
* Fixed edges not coming back after undoing
* Fixed breaking change check to not be checked if code is the same
* Fixed imports
* removed unused functions
* updated icon color
* updated test id
* updated for function to foreach
* updated data testid
* updated outdated flow
* removed flowToCanvas that caused bug when going from main page to flow page
* [autofix.ci] apply automated fixes
* Fixed outdated actions test
* fixed timeouts
* Added check for Backup
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fixed icon color
* fixed id
* Fixed name not being resized
* Update isEmptyFlow when currentFlowId changes
* Adds cache to ForwardedIconComponent
* Updated cache to come from styleUtils
---------
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
* updated vite-env to stop svg loading lint errors
* added scroll direction package
* added new Chat Scroll Anchor
* removed scroll handling from chat message
* added scroll handling on chat view
* removed console.log
* Removed validator from table and added on messagebase
* removed validator from model
* changed to scroll down after error
* [autofix.ci] apply automated fixes
* fixed not scrolling to bottom
* fix constant
* refactor: update MessageTable model configuration for validation and type allowance
* refactor: update properties type in MessageTable model and adjust validation logic
* refactor: update content_blocks type in MessageTable model to allow dict or ContentBlock
* Fix playground failing when it's Run Flow
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* Fixed hidden to be output.hidden
* Fixed disabled Hide button to look disabled
* Fixed lastInput being true to all fields
* Changed text
* fixed multiple renders
* fixed show hidden
✨ (auto-login-off.spec.ts): update text selector to match new welcome message for improved test accuracy
♻️ (user-flow-state-cleanup.spec.ts): refactor test to use the new welcome message selector for consistency and accuracy
📝 (autoLogin.spec.ts): add import statement for awaitBootstrapTest utility function to fix test failures due to missing import
* menubar and hook optimizations
* sidebar optimizations
* [autofix.ci] apply automated fixes
* cleanup
* [autofix.ci] apply automated fixes
* sidebare button optimization
* 🐛 (typescript_test.yml): increase the maximum shard count to 40 to improve test distribution and performance
* Get state on focus instead of on keypress
* revert test shard change
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* refactor: enhance event polling to retrieve all available events and return in NDJSON format
Updated the event polling logic to collect all available events from the queue instead of just one. The response format has been changed to NDJSON, allowing multiple events to be returned in a single response. Improved error handling for timeouts by returning an empty response instead of raising an error.
* refactor: improve NDJSON event processing in build polling
Enhanced the event polling logic to handle NDJSON responses by processing multiple events in a single fetch. Updated the response handling to read the response as text, split it into individual JSON objects, and process each event accordingly. This change improves the efficiency of event handling and maintains a consistent polling interval.
* fix: change event list type from list[str] to list in get_flow_events_response
* refactor: enhance event stream consumption with timeout and error handling
Updated the consume_and_assert_stream function to include a timeout for processing events and improved error handling for JSON parsing failures. Added logging for better debugging and tracking of processed events. Adjusted the event validation logic to ensure both the first and last expected events are present.
* refactor: enhance event polling logic with improved limits and JSON validation
Updated the event polling mechanism to include configurable limits for total events and empty polls, along with a timeout for requests. Enhanced JSON validation for individual events and added logging for better debugging of polling behavior. This refactor aims to improve robustness and maintainability of the event consumption process.
* refactor: update polling interval and streamline event handling
Modified the polling interval constant to improve responsiveness and adjusted event handling logic in the get_flow_events_response function to simplify the processing of event values. This change enhances the efficiency of event consumption and maintains a consistent approach to handling NDJSON responses.
* refactor: simplify event retrieval in get_flow_events_response
Removed unused event_id and put_time variables from the event retrieval logic in the get_flow_events_response function. This change streamlines the code and enhances readability while maintaining the functionality of event handling.
* refactor: update consume_and_assert_stream to use asyncio.wait_for for timeout handling
Modified the consume_and_assert_stream function to utilize asyncio.wait_for for managing timeouts in event processing. This change improves compatibility with Python 3.10 and enhances the robustness of the event consumption logic while maintaining existing functionality.
* Changed backend to contain readonly props for tools
* Show name editing for not readonly tools
* Fixed edit-tools test
* Updated command to use "uvx" instead of "npx" for stability
* Fixed mcp code for authentication on auto_login=false
* removed args from component desc
* [autofix.ci] apply automated fixes
* making tool mode inputs the priority.
* fix: Clean up comments and whitespace in component_tool.py
* Fix column name
* update the dispaly name in composio
* fix format
* ✨ (get-started-progress.tsx): add data-testid attribute to improve testability and accessibility
🔧 (user-progress-track.spec.ts): update test assertions to use the new data-testid attribute for get started progress title
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* ♻️ (appHeaderComponent/index.tsx): remove unused variables and condition for isEmpty to simplify the code and improve readability
* 📝 (empty-page.tsx): Update page title and descriptions to reflect the new branding and messaging for Langflow
🗑️ (github-bg.png): Delete unused background image file from the frontend assets folder
* 📝 (empty-page.tsx): update text size class from text-xs to text-sm for better readability
* 📝 (empty-page.tsx): Update EMPTY_PAGE_DESCRIPTION to remove extra period for consistency
📝 (empty-page.tsx): Increase font size for text elements for better readability and user experience
* 🐛 (empty-page.tsx): fix incorrect user tracking event name from "discord_joined" to "discord_clicked" to accurately track user actions
* ♻️ (get-started-progress.tsx): refactor height value from pixels to rem units for better consistency and maintainability
* Fix use drag and drop to check for playground page
* fix chat input to change file only if enable_image_on_playground is enabled and its on playground page
* change input wrapper to show upload file if constant is enabled
* changed onDrop to not allow sending files if enable_image_on_playground is disabled
* refactor: Update Simple Agent configuration and enhance tool integration
- Changed source and target handles to improve data flow between components.
- Updated input types for better compatibility with new data structures.
- Enhanced tool metadata and descriptions for clarity.
- Adjusted layout dimensions and properties for improved UI consistency.
- Updated agent and tool identifiers to reflect recent changes in the system.
* refactor: Update Invoice Summarizer project configuration and component identifiers
- Changed component IDs and source/target handles for improved data flow.
- Updated tool and agent identifiers to align with recent system changes.
- Adjusted layout properties and descriptions for better clarity and consistency.
- Enhanced metadata for tools and components to facilitate better integration.
* refactor: Update Pokédex Agent configuration and component identifiers
- Changed component IDs and source/target handles to enhance data flow.
- Updated input types and tool identifiers for improved compatibility with recent system changes.
- Enhanced layout properties and descriptions for better clarity and consistency.
- Adjusted metadata for tools and components to facilitate better integration.
* refactor: Update Search Agent configuration for improved compatibility
- Removed input types for the OpenAI API Key to streamline configuration.
- Added new model options including "gpt-4.1", "gpt-4.1-mini", and "gpt-4.1-nano" for enhanced flexibility.
- Updated default model value to "gpt-4.1" for better alignment with current capabilities.
* refactor: Update Financial Agent configuration and component identifiers
- Changed component IDs and source/target handles to enhance data flow.
- Updated tool and agent identifiers for improved compatibility with recent system changes.
- Adjusted layout properties and descriptions for better clarity and consistency.
- Enhanced metadata for tools and components to facilitate better integration.
* refactor: Update Gmail Agent configuration for improved model options
- Removed input types for the OpenAI API Key to streamline the configuration.
- Added new model options including "gpt-4.1", "gpt-4.1-mini", "gpt-4.1-nano", and "o1" for enhanced flexibility.
- Updated default model value to "gpt-4.1" for better alignment with current capabilities.
* refactor: Update Invoice Summarizer project configuration for improved clarity
- Standardized formatting of source and target handles for consistency.
- Adjusted score representation for better readability.
- Removed unnecessary hidden properties to streamline configuration.
- Enhanced metadata for components to facilitate better integration.
* refactor: Standardize source and target handles in agent configurations
- Updated formatting of source and target handles in both Pokédex and Simple Agent configurations for improved consistency.
- Removed unnecessary hidden properties to streamline the configuration.
- Enhanced metadata for components to facilitate better integration and clarity.
* refactor: Streamline OpenAI API Key configuration and enhance model options
- Removed input types for the OpenAI API Key to simplify the configuration.
- Added new model options including "gpt-4.1", "gpt-4.1-mini", "gpt-4.1-nano", and "o1" for increased flexibility.
- Updated default model value to "gpt-4.1" for better alignment with current capabilities.
* refactor: Simplify OpenAI API Key configuration and expand model options
- Removed input types for the OpenAI API Key to streamline the configuration.
- Added new model options "gpt-4.1", "gpt-4.1-mini", "gpt-4.1-nano", and "o1" for enhanced flexibility.
- Updated default model value to "gpt-4.1" for better alignment with current capabilities.
* refactor: Update YouTube Analysis project configuration for improved model options
- Removed input types for the OpenAI API Key to simplify the configuration.
- Added new model options "gpt-4.1", "gpt-4.1-mini", "gpt-4.1-nano", and "o1" for enhanced flexibility.
- Updated default model value to "gpt-4.1-mini" for better alignment with current capabilities.
* fix: update tools in Travel Planning Agents
* update mutateTemplate to be debounced by nodeId
* update fetch data on mount to fetch node data if its tool mode
* Update mutateTemplate instances to contain nodeId
* update starter projects to use gpt-4.1-mini model
* fix: update test expectation for Portfolio Website Code Generator
---------
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>