* 🐛 (chat-view.tsx): fix parameter name from stream_url to _stream_url to improve clarity
✨ (chat-view.tsx): add logic to handle scrolling behavior based on chat history updates and message content changes
* ♻️ (chat-view.tsx): refactor updateChat function parameters to remove unused _stream_url parameter and improve code readability
* Update styleUtils.ts
* update to prompt component
* update to template
* update to mcp component
* update to smart function
* [autofix.ci] apply automated fixes
* update to templates
* fix sidebar
* change name
* update import
* update import
* update import
* [autofix.ci] apply automated fixes
* fix import
* fix ollama
* fix ruff
* refactor(agent): standardize memory handling and update chat history logic (#8715)
* update chat history
* update to agents
* Update Simple Agent.json
* update to templates
* ruff errors
* Update agent.py
* Update test_agent_component.py
* [autofix.ci] apply automated fixes
* update templates
* test fix
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
* fix prompt change
* feat(message): support sequencing of multiple streamable models (#8434)
* feat: update OpenAI model parameters handling for reasoning models
* feat: extend input_value type in LCModelComponent to support AsyncIterator and Iterator
* refactor: remove assert_streaming_sequence method and related checks from Graph class
* feat: add consume_iterator method to Message class for handling iterators
* test: add unit tests for OpenAIModelComponent functionality and integration
* feat: update OpenAIModelComponent to include temperature and seed parameters in build_model method
* feat: rename consume_iterator method to consume_iterator_in_text and update its implementation for handling text
* feat: add is_connected_to_chat_output method to Component class for improved message handling
* feat: refactor LCModelComponent methods to support asynchronous message handling and improve chat output integration
* refactor: remove consume_iterator_in_text method from Message class and clean up LCModelComponent input handling
* fix: update import paths for input components in multiple starter project JSON files
* fix: enhance error message formatting in ErrorMessage class to handle additional exception attributes
* refactor: remove validate_stream calls from generate_flow_events and Graph class to streamline flow processing
* fix: handle asyncio.CancelledError in aadd_messagetables to ensure proper session rollback and retry logic
* refactor: streamline message handling in LCModelComponent by replacing async invocation with synchronous calls and updating message text handling
* refactor: enhance message handling in LCModelComponent by introducing lf_message for improved return value management and updating properties for consistency
* feat: add _build_source method to Component class for enhanced source handling and flexibility in source object management
* feat: enhance LCModelComponent by adding _handle_stream method for improved streaming response handling and refactoring chat output integration
* feat: update MemoryComponent to enhance message retrieval and storage functionality, including new sender type handling and output options for text and dataframe formats
* test: refactor LanguageModelComponent tests to use ComponentTestBaseWithoutClient and add tests for Google model creation and error handling
* test: add fixtures for API keys and implement live API tests for OpenAI, Anthropic, and Google models
* fix: reorder JSON properties for consistency in starter projects
* Updated JSON files for various starter projects to ensure consistent ordering of properties, specifically moving "type" to follow "selected_output" for better readability and maintainability.
* Affected files: Basic Prompt Chaining.json, Blog Writer.json, Financial Report Parser.json, Hybrid Search RAG.json, SEO Keyword Generator.json.
* refactor: simplify input_value type in LCModelComponent
* Updated the input_value parameter in LCModelComponent to remove AsyncIterator and Iterator types, streamlining the input options to only str and Message for improved clarity and maintainability.
* This change enhances the documentation and understanding of the expected input types for the component.
* fix: clarify comment for handling source in Component class
* refactor: remove unnecessary mocking in OpenAI model integration tests
* auto update
* update
* [autofix.ci] apply automated fixes
* fix openai import
* revert template changes
* test fixes
* update templates
* [autofix.ci] apply automated fixes
* fix tests
* fix order
* fix prompts import
* fix frontend tests
* fix frontend
* [autofix.ci] apply automated fixes
* add charmander
* [autofix.ci] apply automated fixes
* fix prompt frontend
* fix frontend
* test fix
* [autofix.ci] apply automated fixes
* change pokedex
* remove pokedex extra
* update template
* name fix
* update template
* mcp test fix
---------
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: Yuqi Tang <yuqi.tang@datastax.com>
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* Added mcp error handling
* Added error param to servers
* Added error display on mcp servers page
* Added error display on mcp component
* Added error handling for other types of errors
* uv lock update and add error handling
* update mcp version
* fixed tool mode not working on mcp component
* update mcp to 1.9.4
* Removed server parameters custom commands on connection to stdio
* removed unused import
* disable mcp notice
* Removed drop state when home type is mcp
* Added loading before showing tools
* Updated mcp to 1.9.4
* Decreased mcp timeout
* Implemented error surfacing with exec command
* removed non default keys either way when mcp_server is used
* update to session handling
* [autofix.ci] apply automated fixes
* updated it to check if it is the same server to not clear on startup
* update to components
* Update mcp_component.py
* Update mcp_component.py
* Update mcp_component.py
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* ✨ (frontend): add new function clearHandlesFromAdvancedFields to handle clearing handles from advanced fields when code is updated
📝 (frontend): update documentation and add tests for deleting handles from advanced fields when code is updated
🔧 (frontend): remove unused style for Outlook in styleUtils to clean up code
🔧 (frontend): add test for deleting handles from advanced fields when code is updated in general-bugs-delete-handle-advanced-input.spec
* ✨ (frontend): add support for managing edges and nodes in the flowStore to improve data handling and flow visualization
♻️ (frontend): refactor cleanEdges function to accept an object with nodes, edges, componentId, and data parameters for better modularity and reusability
* ✨ (codeAreaModal/index.tsx): Refactor import statements and function names for better clarity and organization
♻️ (flowStore.ts): Refactor cleanEdges function to accept nodes and edges as separate arguments instead of an object
♻️ (flowStore.ts): Update all calls to cleanEdges function to pass nodes and edges separately
♻️ (reactflowUtils.ts): Refactor clearHandlesFromAdvancedFields function to accept only necessary arguments and remove unnecessary logic
* Added validation for nodes before building, make validation message appear as toast instead of build error
* Make subgraph validation not occur in flowStore
* Added function to search for connected nodes down or upstream
* Added validation before flow starts of the connected flows
* Catch error when sending message and restore chat value
* Made enter not behave as enter on chat input text area
* made sendMessage be async and throw errors
* Added build status error to the nodes that didn't make it past validation.
* Fixed flow not running when not every edge is showed
---------
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
* Added handling for wsl isntallation of claude
* Fixed installed server not appearing
* Added message to restart
* fix formatting and error handling
* fixed lint
* update display time for very short operations and fix outputs and titles
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* cleanup
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* ✨ (custom-get-download-folders.ts): update default filename to include folderName variable to provide more context and improve user experience
* ✨ (custom-get-download-folders.ts): update folder name from "My Projects" to "Starter Project" for better clarity and consistency
* 🐛 (custom-get-download-folders.ts): fix issue where folderName could be undefined, causing incorrect filename for download folder
* feat(auth): update AUTO_LOGIN authentication to enforce API key or JWT requirement
* Removed deprecated warning messages and implemented explicit HTTP exceptions for missing API key or JWT in both API and WebSocket authentication methods.
* Enhanced error handling to ensure compliance with the new authentication requirements introduced in v1.5.
* fix(auth): refine error message for AUTO_LOGIN API key requirement
* Updated the error message in the API key security function to clarify that AUTO_LOGIN requires a valid API key, removing the mention of JWT for consistency with the latest authentication requirements.
* feat(auth): introduce SKIP_AUTH_AUTO_LOGIN setting for enhanced authentication flexibility
* Added a new configuration option `SKIP_AUTH_AUTO_LOGIN` to the AuthSettings class, allowing the application to bypass API key validation for auto login.
* Updated the API and WebSocket security functions to utilize this setting, improving error handling and providing a fallback for superuser credentials when authentication is skipped.
* refactor(auth): rename SKIP_AUTH_AUTO_LOGIN to skip_auth_auto_login for consistency
* Updated the `SKIP_AUTH_AUTO_LOGIN` setting in the `AuthSettings` class to `skip_auth_auto_login` to follow Python naming conventions.
* Adjusted references in the API and WebSocket security functions to use the new attribute name, ensuring consistent behavior across the authentication logic.
* feat(auth): add deprecation warning for SKIP_AUTH_AUTO_LOGIN removal
* Introduced a warning log in both API and WebSocket security functions to inform users that the `LANGFLOW_SKIP_AUTH_AUTO_LOGIN` feature will be removed in version 1.6, prompting necessary updates to authentication methods.
* feat(auth): enhance deprecation warnings for AUTO_LOGIN features
* Added constants for deprecation warning and error messages related to `LANGFLOW_SKIP_AUTH_AUTO_LOGIN` and `AUTO_LOGIN` requirements, improving code maintainability and clarity.
* Updated API and WebSocket security functions to utilize these constants for logging and exception handling, ensuring consistent messaging across authentication methods.
* fix(auth): update AUTO_LOGIN_ERROR message to include LANGFLOW_SKIP_AUTH_AUTO_LOGIN usage
* fix(auth): correct logic for API key validation in WebSocket security function
* Adjusted the conditional flow in the `ws_api_key_security` function to ensure that the API key is checked only when necessary, improving the clarity and correctness of the authentication logic.
* [autofix.ci] apply automated fixes
* feat(tests): add authentication token retrieval for starter projects integration tests
* Implemented a helper function to obtain a JWT token for API requests, enhancing the security of the integration tests.
* Updated the test for starter projects to include the token in API requests, ensuring proper authentication during testing.
* feat(auth): add MCP-specific user authentication and active user dependency
* Introduced `get_current_user_mcp` function for MCP-specific user authentication, allowing fallback to username lookup when no API key is provided.
* Added `get_current_active_user_mcp` dependency to manage active user checks for MCP, ensuring proper integration with the authentication flow.
* refactor(api): replace user dependency with CurrentActiveMCPUser in mcp project endpoints
* Updated project-related API endpoints to use CurrentActiveMCPUser for user authentication, enhancing clarity and consistency in user management.
* Removed unused imports and dependencies related to the previous user authentication method, streamlining the codebase.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Fixed template content component search bar
* Fixed size of notenode not applying to some instances
* Fixed generic node description not having char limit
* Update Vector Store RAG.json
* fix: make starter projects auto refactor not remove selected output (#8400)
* Fixed bug where starter projects were refactored incorrectly
* fix: improve handling of selected outputs in custom component template builder
- Added checks to ensure selected output is valid before attempting to set its state.
- Enhanced code readability with comments explaining the logic for selecting outputs.
* Set selected output as the previous selected output
* Update base.py
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* fix: made clean edges clean after changing dropdown of output (#8460)
fixed output considering all outputs not just selected one
* refactor(docker): remove --extra deploy flag from uv sync commands (#8485)
🔧 (build_and_push_with_extras.Dockerfile): remove unnecessary uv sync command options to improve build efficiency and reduce redundancy
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fix: refactor mcp and freeze tests to be less prone to flaky results (#8486)
* Fixed mcp test to be less prone to errors
* Fix freeze spec
* fix: made button disabled state more congruent, made edit flow details submit on enter (#8339)
* Changed textarea classes
* Changed flowsettingscomponent to use form
* changed edit flow settings to use form and to submit on enter
* Reset form data on close
* Updated disabled state to have lower opacity instead of to have set background
* Fixed loading state of button
* Fix: chat memory store issue and fix output types (#8463)
* fix chat memory
* update template
* update update outputs
* update update outputs
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* ci: update setup-uv to possibly fix caching (#8490)
* update templates
* update templates
* First round of template updates
* Update templates
* fix: Update SaaS, Social Media, and YouTube json file (#8441)
* update SaaS, Social Media, and YouTube json file
* fix: make starter projects auto refactor not remove selected output (#8400)
* Fixed bug where starter projects were refactored incorrectly
* fix: improve handling of selected outputs in custom component template builder
- Added checks to ensure selected output is valid before attempting to set its state.
- Enhanced code readability with comments explaining the logic for selecting outputs.
* Set selected output as the previous selected output
* Update base.py
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* fix: made clean edges clean after changing dropdown of output (#8460)
fixed output considering all outputs not just selected one
* refactor(docker): remove --extra deploy flag from uv sync commands (#8485)
🔧 (build_and_push_with_extras.Dockerfile): remove unnecessary uv sync command options to improve build efficiency and reduce redundancy
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fix: refactor mcp and freeze tests to be less prone to flaky results (#8486)
* Fixed mcp test to be less prone to errors
* Fix freeze spec
* fix: made button disabled state more congruent, made edit flow details submit on enter (#8339)
* Changed textarea classes
* Changed flowsettingscomponent to use form
* changed edit flow settings to use form and to submit on enter
* Reset form data on close
* Updated disabled state to have lower opacity instead of to have set background
* Fixed loading state of button
* Fix: chat memory store issue and fix output types (#8463)
* fix chat memory
* update template
* update update outputs
* update update outputs
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* ci: update setup-uv to possibly fix caching (#8490)
* update json
* fix custom component
* revert change
---------
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
* fix: templates (#8499)
* basic-prompting-template-updated
* show-system-message
* names
* blog-writer-tested
* financial-report-parser
* image-sentiment-analysis
* seo-keyword-generator
* seo-keyword-generator
* Merge branch 'fix-vector-search-template' into mendons-template-branch
---------
Co-authored-by: Eric Hare <ericrhare@gmail.com>
* Update Basic Prompting.json
* Update Blog Writer.json
* Further template updates
* Update Image Sentiment Analysis.json
* Update templates
* Update Financial Report Parser.json
* Update Market Research.json
* Update Market Research.json
* update several templates
* Update Image Sentiment Analysis.json
* Update Market Research.json
* Update image sentiment analysis template
* Update Market Research.json
* Update Custom Component Maker.json
* Update Custom Component Maker.json
* Update Hybrid Search RAG.json
* Update Hybrid Search RAG.json
* Update Hybrid Search RAG.json
* More template updates
* Update Financial Report Parser.json
* updated templates
* change custom component maker
* Update Twitter Thread Generator.json
* updates from main
* change model
* Update Research Translation Loop.json
* expanded output component to fix tests
* update template
* autofix
* fix error
* fix change back
* change back
* ci: Skip truncated values test for refactoring (#8670)
* refactor: simplify init target by removing cache cleanup and adding pre-commit hook (#8590)
* build: add pyyaml dependency
* refactor: simplify init command by removing cache cleaning and langflow run call
* refactor: simplify init target by removing cache cleanup and adding pre-commit hook
* refactor: update langchain_core.prompts import paths to use specific modules
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* feat: update structured output to multiline input and revise system prompt (#8585)
* Update structured_output.py
* [autofix.ci] apply automated fixes
* Update structured_output.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* update to prompt
* template updates
* Update src/backend/base/langflow/components/processing/structured_output.py
* [autofix.ci] apply automated fixes
* Update src/backend/base/langflow/components/processing/structured_output.py
* Update src/backend/base/langflow/components/processing/structured_output.py
* Update src/backend/base/langflow/components/processing/structured_output.py
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: add sessions endpoint with session management enhancements (#8596)
* 📝 (monitor.py): Add endpoint to get sessions and handle session_id encoding for API requests
📝 (use-get-messages-mutation.ts): Implement a mutation function to fetch messages with query parameters and handle session_id encoding for API requests
📝 (use-get-messages-polling.ts): Ensure proper encoding of session_id for API requests in polling mutation
📝 (use-get-messages.ts): Handle session_id encoding for API requests in messages query
📝 (new-modal.tsx): Implement functions to handle session deletion and proper encoding of session_id for API requests
📝 (utils.ts): Add functions to encode, decode, validate, format, and prepare session IDs for API requests
* 📝 (constants.ts): Add SESSIONS constant to API URLs for monitoring sessions
🔧 (use-delete-messages.ts): Add queryClient to UseRequestProcessor to invalidate sessions query
✨ (use-get-sessions-from-flow.ts): Introduce useGetSessionsFromFlowQuery to fetch sessions from flow
🔧 (use-rename-session.ts): Change refetchQueries to invalidateQueries for useGetSessionsFromFlowQuery
🔧 (custom-new-modal.tsx): Update import path for IOModal to playground-modal
🔧 (session-selector.tsx): Add setActiveSession function to handle setting active session
🔧 (sidebar-open-view.tsx): Add setActiveSession function to handle setting active session
♻️ (new-modal.tsx): Refactor IOModal into playground-modal and update functionality
♻️ (playground-modal.tsx): Refactor IOModal to handle playground-specific functionality
⬆️ (flowStore.ts): Add newChatOnPlayground state and setNewChatOnPlayground function
⬆️ (index.ts): Update FlowStoreType to include newChatOnPlayground and setNewChatOnPlayground
* 🔧 (pyproject.toml): update testpaths to point to the correct directory for tests
✨ (test_session_endpoint.py): add unit tests for sessions endpoint with flow_id filtering
♻️ (session-selector.tsx): refactor to trim editedSession before setting it
♻️ (sidebar-open-view.tsx): refactor to set visibleSession instead of activeSession
* ✨ (use-get-sessions-from-flow.ts): Always include the flow ID as the default session if it's not already present
♻️ (playground-modal.tsx): Refactor setting sessions to include currentFlowId as the default session if not present, and handle visibility of sessions more efficiently
* ♻️ (use-get-messages-mutation.ts): remove unused imports and refactor code for better readability and maintainability
* ✨ (test_session_endpoint.py): refactor test function names for better clarity and consistency
* ✨ (create-new-session-name.ts): add function to generate a new session name based on the current date and time
🔧 (playground-modal.tsx): import createNewSessionName function to dynamically set a new session name when no session is visible
* [autofix.ci] apply automated fixes
* ✨ (monitor.py): rename get_sessions endpoint to get_message_sessions for clarity and consistency
🔧 (constants.ts): remove unused SESSIONS constant from API URLs
🔧 (use-delete-messages.ts): remove commented out code and unnecessary comments
✨ (use-delete-sessions.ts): add functionality to delete sessions in frontend
🔧 (use-get-sessions-from-flow.ts): update API endpoint for getting sessions to match backend changes
🔧 (playground-modal.tsx): add functionality to delete sessions and associated messages in the UI, update UI optimistically, and handle errors appropriately
* [autofix.ci] apply automated fixes
* 🐛 (monitor.py): Fix type hinting issue in delete_messages function
📝 (monitor.py): Add comments and improve readability in test_messages_endpoints.py
📝 (session_endpoint.py): Update endpoint paths for consistency and clarity in test_session_endpoint.py
* [autofix.ci] apply automated fixes
* fix: update SQL statement to use col() for session_id filtering in get_message_sessions function
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fix: implemented cached values and temporary MCP servers on MCP component (#8628)
* Added actionCount to fetch only servers without actionCount
* Updated queries and uses to use servers without action data first, and then to fetch them
* removed comment
* updated constants
* Added loading dropdown
* Make options persist
* Implemented new value format for McpComponent and implemented saving and removing temp Mcp Server if config is existent
* Changed value type
* Implemented cache and saving the server config
* Fixed mcp server test
* fix backend formatting
* fixed lint
* Added await
* Fixed save button not appearing when no servers are available
* added condition to only show save button when options is not null
* template autofix
* change template
* update text sentiment analysis
* change basic prompt back
* change image sentiment back
* update text sentiment and twitter
* Update Twitter Thread Generator.json
* Add back the input for the chat
* add change
* fix text sentiment
* update research translation
* Update Research Translation Loop.json
---------
Co-authored-by: Eric Hare <ericrhare@gmail.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ✨ (custom-get-download-folders.ts): update default filename to include folderName variable to provide more context and improve user experience
* ✨ (custom-get-download-folders.ts): update folder name from "My Projects" to "Starter Project" for better clarity and consistency
* 📝 (.github/changes-filter.yaml): add new directory 'serialization' to components list for changes filtering
🐛 (general-bugs-truncate-results.spec.ts): fix typo in 'truncated' word and update timeout for better test reliability
* 🔧 (custom-get-download-folders.ts): Remove unnecessary conditional statement and update default filename for download to "flows.zip" for better clarity.
* ✨ Add IS_AUTO_LOGIN constant to handle auto login feature in NodeInputField and TableNodeCellRender components
🔧 Add loginLangflow utility function to facilitate login process in tests
* ✨ (NodeInputField/index.tsx): introduce useIsAutoLogin hook to simplify logic for determining auto login status
✨ (tableNodeCellRender/index.tsx): introduce useIsAutoLogin hook to simplify logic for determining auto login status
📝 (use-is-auto-login.ts): add custom hook useIsAutoLogin to encapsulate logic for determining auto login status
* 📝 (handleRenderComponent/index.tsx): Add useShallow import for zustand/react/shallow to optimize re-renders
📝 (handleRenderComponent/index.tsx): Introduce isLocked state to handle locked flow functionality
📝 (handleRenderComponent/index.tsx): Update tooltip visibility based on isLocked state
📝 (handleRenderComponent/index.tsx): Update handle style based on isLocked state
📝 (PageComponent/index.tsx): Add useShallow import for zustand/react/shallow to optimize re-renders
📝 (PageComponent/index.tsx): Introduce isLocked state to handle locked flow functionality
📝 (PageComponent/index.tsx): Prevent edge click actions when flow is locked
📝 (PageComponent/index.tsx): Disable edge actions when flow is locked
📝 (PageComponent/index.tsx): Update edge actions based on isLocked state
📝 (lock-flow.spec.ts): Add test to simulate deleting edges when flow is locked
* ✨ (lock-flow.spec.ts): add functionality to try connecting nodes and handle edge cases when connecting nodes in the flow diagram.
* Update Vector Store RAG.json
* fix: make starter projects auto refactor not remove selected output (#8400)
* Fixed bug where starter projects were refactored incorrectly
* fix: improve handling of selected outputs in custom component template builder
- Added checks to ensure selected output is valid before attempting to set its state.
- Enhanced code readability with comments explaining the logic for selecting outputs.
* Set selected output as the previous selected output
* Update base.py
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* fix: made clean edges clean after changing dropdown of output (#8460)
fixed output considering all outputs not just selected one
* refactor(docker): remove --extra deploy flag from uv sync commands (#8485)
🔧 (build_and_push_with_extras.Dockerfile): remove unnecessary uv sync command options to improve build efficiency and reduce redundancy
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fix: refactor mcp and freeze tests to be less prone to flaky results (#8486)
* Fixed mcp test to be less prone to errors
* Fix freeze spec
* fix: made button disabled state more congruent, made edit flow details submit on enter (#8339)
* Changed textarea classes
* Changed flowsettingscomponent to use form
* changed edit flow settings to use form and to submit on enter
* Reset form data on close
* Updated disabled state to have lower opacity instead of to have set background
* Fixed loading state of button
* Fix: chat memory store issue and fix output types (#8463)
* fix chat memory
* update template
* update update outputs
* update update outputs
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* ci: update setup-uv to possibly fix caching (#8490)
* update templates
* update templates
* First round of template updates
* Update templates
* fix: Update SaaS, Social Media, and YouTube json file (#8441)
* update SaaS, Social Media, and YouTube json file
* fix: make starter projects auto refactor not remove selected output (#8400)
* Fixed bug where starter projects were refactored incorrectly
* fix: improve handling of selected outputs in custom component template builder
- Added checks to ensure selected output is valid before attempting to set its state.
- Enhanced code readability with comments explaining the logic for selecting outputs.
* Set selected output as the previous selected output
* Update base.py
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* fix: made clean edges clean after changing dropdown of output (#8460)
fixed output considering all outputs not just selected one
* refactor(docker): remove --extra deploy flag from uv sync commands (#8485)
🔧 (build_and_push_with_extras.Dockerfile): remove unnecessary uv sync command options to improve build efficiency and reduce redundancy
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fix: refactor mcp and freeze tests to be less prone to flaky results (#8486)
* Fixed mcp test to be less prone to errors
* Fix freeze spec
* fix: made button disabled state more congruent, made edit flow details submit on enter (#8339)
* Changed textarea classes
* Changed flowsettingscomponent to use form
* changed edit flow settings to use form and to submit on enter
* Reset form data on close
* Updated disabled state to have lower opacity instead of to have set background
* Fixed loading state of button
* Fix: chat memory store issue and fix output types (#8463)
* fix chat memory
* update template
* update update outputs
* update update outputs
---------
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* ci: update setup-uv to possibly fix caching (#8490)
* update json
* fix custom component
* revert change
---------
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
* fix: templates (#8499)
* basic-prompting-template-updated
* show-system-message
* names
* blog-writer-tested
* financial-report-parser
* image-sentiment-analysis
* seo-keyword-generator
* seo-keyword-generator
* Merge branch 'fix-vector-search-template' into mendons-template-branch
---------
Co-authored-by: Eric Hare <ericrhare@gmail.com>
* Update Basic Prompting.json
* Update Blog Writer.json
* Further template updates
* Update Image Sentiment Analysis.json
* Update templates
* Update Financial Report Parser.json
* Update Market Research.json
* Update Market Research.json
* Update Image Sentiment Analysis.json
* Update Market Research.json
* Update image sentiment analysis template
* Update Market Research.json
* Update Custom Component Maker.json
* Update Custom Component Maker.json
* Update Hybrid Search RAG.json
* Update Hybrid Search RAG.json
* Update Hybrid Search RAG.json
* More template updates
* Update Financial Report Parser.json
* Update Custom Component Maker.json
* Template updates
* Update Custom Component Maker.json
* Template updates
* fix custom component
* Update Financial Agent.json
* More template updates
* finance report parser fix
---------
Co-authored-by: Yuqi Tang <yuqi.tang@datastax.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
* Added actionCount to fetch only servers without actionCount
* Updated queries and uses to use servers without action data first, and then to fetch them
* removed comment
* updated constants
* Added loading dropdown
* Make options persist
* Implemented new value format for McpComponent and implemented saving and removing temp Mcp Server if config is existent
* Changed value type
* Implemented cache and saving the server config
* Fixed mcp server test
* fix backend formatting
* fixed lint
* Added await
* Fixed save button not appearing when no servers are available
* added condition to only show save button when options is not null
* 📝 (monitor.py): Add endpoint to get sessions and handle session_id encoding for API requests
📝 (use-get-messages-mutation.ts): Implement a mutation function to fetch messages with query parameters and handle session_id encoding for API requests
📝 (use-get-messages-polling.ts): Ensure proper encoding of session_id for API requests in polling mutation
📝 (use-get-messages.ts): Handle session_id encoding for API requests in messages query
📝 (new-modal.tsx): Implement functions to handle session deletion and proper encoding of session_id for API requests
📝 (utils.ts): Add functions to encode, decode, validate, format, and prepare session IDs for API requests
* 📝 (constants.ts): Add SESSIONS constant to API URLs for monitoring sessions
🔧 (use-delete-messages.ts): Add queryClient to UseRequestProcessor to invalidate sessions query
✨ (use-get-sessions-from-flow.ts): Introduce useGetSessionsFromFlowQuery to fetch sessions from flow
🔧 (use-rename-session.ts): Change refetchQueries to invalidateQueries for useGetSessionsFromFlowQuery
🔧 (custom-new-modal.tsx): Update import path for IOModal to playground-modal
🔧 (session-selector.tsx): Add setActiveSession function to handle setting active session
🔧 (sidebar-open-view.tsx): Add setActiveSession function to handle setting active session
♻️ (new-modal.tsx): Refactor IOModal into playground-modal and update functionality
♻️ (playground-modal.tsx): Refactor IOModal to handle playground-specific functionality
⬆️ (flowStore.ts): Add newChatOnPlayground state and setNewChatOnPlayground function
⬆️ (index.ts): Update FlowStoreType to include newChatOnPlayground and setNewChatOnPlayground
* 🔧 (pyproject.toml): update testpaths to point to the correct directory for tests
✨ (test_session_endpoint.py): add unit tests for sessions endpoint with flow_id filtering
♻️ (session-selector.tsx): refactor to trim editedSession before setting it
♻️ (sidebar-open-view.tsx): refactor to set visibleSession instead of activeSession
* ✨ (use-get-sessions-from-flow.ts): Always include the flow ID as the default session if it's not already present
♻️ (playground-modal.tsx): Refactor setting sessions to include currentFlowId as the default session if not present, and handle visibility of sessions more efficiently
* ♻️ (use-get-messages-mutation.ts): remove unused imports and refactor code for better readability and maintainability
* ✨ (test_session_endpoint.py): refactor test function names for better clarity and consistency
* ✨ (create-new-session-name.ts): add function to generate a new session name based on the current date and time
🔧 (playground-modal.tsx): import createNewSessionName function to dynamically set a new session name when no session is visible
* [autofix.ci] apply automated fixes
* ✨ (monitor.py): rename get_sessions endpoint to get_message_sessions for clarity and consistency
🔧 (constants.ts): remove unused SESSIONS constant from API URLs
🔧 (use-delete-messages.ts): remove commented out code and unnecessary comments
✨ (use-delete-sessions.ts): add functionality to delete sessions in frontend
🔧 (use-get-sessions-from-flow.ts): update API endpoint for getting sessions to match backend changes
🔧 (playground-modal.tsx): add functionality to delete sessions and associated messages in the UI, update UI optimistically, and handle errors appropriately
* [autofix.ci] apply automated fixes
* 🐛 (monitor.py): Fix type hinting issue in delete_messages function
📝 (monitor.py): Add comments and improve readability in test_messages_endpoints.py
📝 (session_endpoint.py): Update endpoint paths for consistency and clarity in test_session_endpoint.py
* [autofix.ci] apply automated fixes
* fix: update SQL statement to use col() for session_id filtering in get_message_sessions function
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* fix: add data-testid attribute to frozen icon in NodeOutputField component for improved testing
* refactor: simplify freeze.spec.ts by removing redundant component interactions and enhancing test clarity
- Removed unnecessary component interactions and waits to streamline the test flow.
- Updated assertions to ensure expected output values are validated correctly.
- Improved timeout settings for better reliability in test execution.
* refactor: enhance freeze.spec.ts by replacing timeout with waitForSelector for improved test reliability
- Updated the test to use waitForSelector instead of a fixed timeout, enhancing the robustness of the test execution.
- This change aims to ensure that the test waits for the specific element to be present before proceeding, reducing flakiness.
* Revert "refactor: enhance freeze.spec.ts by replacing timeout with waitForSelector for improved test reliability"
This reverts commit 42eccbfa0d7e7defba02ee3589535689556390bb.
* test: increase timeout for frozen icon selector to improve test reliability
* test: increase timeout for frozen icon selector to enhance reliability
* test: simplify frozen icon visibility check in freeze.spec.ts
* test: comment out frozen icon visibility check in freeze.spec.ts
* test: add assertion for initial output and enhance frozen icon visibility check in freeze.spec.ts
* test: replace fixed timeout with waitForSelector for improved frozen icon visibility check in freeze.spec.ts
* test: implement polling approach for frozen icon visibility check in freeze.spec.ts to enhance error handling and reliability
* [autofix.ci] apply automated fixes
* fix: add data-testid attribute to frozen icon in NodeOutputField component for improved testing
* refactor: simplify freeze.spec.ts by removing redundant component interactions and enhancing test clarity
- Removed unnecessary component interactions and waits to streamline the test flow.
- Updated assertions to ensure expected output values are validated correctly.
- Improved timeout settings for better reliability in test execution.
* refactor: enhance freeze.spec.ts by replacing timeout with waitForSelector for improved test reliability
- Updated the test to use waitForSelector instead of a fixed timeout, enhancing the robustness of the test execution.
- This change aims to ensure that the test waits for the specific element to be present before proceeding, reducing flakiness.
* Revert "refactor: enhance freeze.spec.ts by replacing timeout with waitForSelector for improved test reliability"
This reverts commit 42eccbfa0d7e7defba02ee3589535689556390bb.
* test: increase timeout for frozen icon selector to improve test reliability
* test: increase timeout for frozen icon selector to enhance reliability
* test: simplify frozen icon visibility check in freeze.spec.ts
* test: comment out frozen icon visibility check in freeze.spec.ts
* test: add assertion for initial output and enhance frozen icon visibility check in freeze.spec.ts
* test: replace fixed timeout with waitForSelector for improved frozen icon visibility check in freeze.spec.ts
* test: implement polling approach for frozen icon visibility check in freeze.spec.ts to enhance error handling and reliability
* [autofix.ci] apply automated fixes
* ✨ (freeze.spec.ts): add a 1-second delay before making the final assertion to ensure the element is fully rendered before checking its visibility
* ✨ (nodeToolbarComponent/index.tsx): add data-testid attribute to freeze button for better testing
🐛 (freeze.spec.ts): update test to use new data-testid for freeze button to ensure proper element selection
* ✨ (nodeToolbarComponent/index.tsx): add functionality to take a snapshot when freezing all vertices in the flow.
* ✨ (component_freeze.spec.ts): add test case for freezing a component to ensure user can freeze components in the application and verify the frozen state with polling approach for better error handling.
* ✨ (component_freeze.spec.ts): refactor frozen icon visibility check to use waitForSelector for improved reliability and error handling, replacing the previous polling approach.
* ✅ (component_freeze.spec.ts): update timeout values to improve test reliability and stability
* ✨ (freeze.spec.ts): add test case for freezing a component in the application to ensure the functionality works as expected
---------
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: Yuqi Tang <yuqi.tang@datastax.com>
📝 (handleRenderComponent/index.tsx): Introduce isLocked state to handle locked flow functionality
📝 (handleRenderComponent/index.tsx): Update tooltip visibility based on isLocked state
📝 (handleRenderComponent/index.tsx): Update handle style based on isLocked state
📝 (PageComponent/index.tsx): Add useShallow import for zustand/react/shallow to optimize re-renders
📝 (PageComponent/index.tsx): Introduce isLocked state to handle locked flow functionality
📝 (PageComponent/index.tsx): Prevent edge click actions when flow is locked
📝 (PageComponent/index.tsx): Disable edge actions when flow is locked
📝 (PageComponent/index.tsx): Update edge actions based on isLocked state
📝 (lock-flow.spec.ts): Add test to simulate deleting edges when flow is locked
* fix: add overflow-hidden class to BaseModal.Content in CodeAreaModal for improved layout
* fix: update BaseModal.Content in CodeAreaModal to use overflowHidden prop for better layout control
* Update converter.py
* [autofix.ci] apply automated fixes
* ✅ (freeze.spec.ts): update URL in test case to use a more specific and relevant link for testing purposes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Eric Hare <ericrhare@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* markdown width fix
* template clean
* ✨ (freeze.spec.ts): add a new utility function runChatOutput to handle running chat output in tests for better code organization and reusability.
---------
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Eric Hare <ericrhare@gmail.com>
* chore: update webrtcvad dependency and add optional audio support
- Updated webrtcvad version requirement to >=1.9.4 in pyproject.toml and uv.lock.
- Moved webrtcvad to optional dependencies under the new 'audio' category in both pyproject.toml files for better modularity.
- Ensured compatibility with existing dependencies while enhancing documentation for optional audio features.
* fix: handle optional import of voice_mode_router in API initialization
- Updated the API router initialization to conditionally include the voice_mode_router if it is available, improving modularity and preventing import errors.
- Adjusted the import statement for voice_mode_router to handle ImportError gracefully, ensuring the application remains robust in its absence.
* feat: add voice mode flag to API configuration
- Introduced a new function `get_voice_mode_enabled` to check for the availability of the `webrtcvad` library, enhancing the API's capability to support voice mode features.
- Updated the `ConfigResponse` schema to include `voice_mode_enabled` flag, allowing clients to query the status of voice mode support.
- Integrated the voice mode feature flag into the `get_config` endpoint response, improving the configurability of the API.
* test: skip voice mode tests if webrtcvad is not installed
- Added a conditional import for the webrtcvad library in the voice mode test suite.
- Implemented a pytest marker to skip tests when webrtcvad is unavailable, enhancing test robustness and preventing unnecessary failures.
* feat: add voice mode state management to flows manager store
- Introduced `voiceModeEnabled` state and `setVoiceModeEnabled` action in the flows manager store to manage the voice mode feature.
- Updated the `ConfigResponse` interface and `useGetConfig` hook to integrate the new voice mode state, allowing for dynamic configuration updates.
- Enhanced the API's configurability by ensuring the voice mode state is properly set based on the API response.
* feat: conditionally render voice button based on voice mode state
- Integrated `voiceModeEnabled` from the flows manager store to control the visibility of the VoiceButton component.
- The VoiceButton will now return null if voice mode is not enabled, enhancing the user interface by preventing unnecessary rendering.
* fix: ensure boolean conversion for voice mode state in config hook
- Updated the `setVoiceModeEnabled` function in the `useGetConfig` hook to explicitly convert the `voice_mode_enabled` value to a boolean, ensuring consistent handling of the voice mode state based on API responses.
* refactor: conditionally import voice_mode_router in API initialization
- Updated the API router to conditionally include the voice_mode_router based on its availability, enhancing modularity and preventing import errors.
- Adjusted the __init__.py file to dynamically add voice_mode_router to the __all__ list if the import is successful, improving the API's robustness.
* chore: revert mcp version update
* refactor: reorder router initialization and add audio flag to backend install task
* feat: add audio module to backend installation command in VS Code tasks
* ci: add audio extras to uv sync in frontend tests