fix(test): Skip Tavily API key fill when global variable is loaded #11733
fix(test): Skip Tavily API key fill when global variable is loaded #11733Cristhianzl merged 2 commits intomainfrom
Conversation
WalkthroughA test file is modified to add a guard condition before filling the TAVILY_API_KEY input field. The input is now only filled if the element exists, preventing failures when the input element is replaced by a badge after the environment variable is loaded. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error, 1 inconclusive)
✅ Passed checks (5 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
No actionable comments were generated in the recent review. 🎉 🧹 Recent nitpick comments
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ Your project status has failed because the head coverage (42.10%) is below the target coverage (60.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #11733 +/- ##
=======================================
Coverage 35.20% 35.20%
=======================================
Files 1521 1521
Lines 72927 72923 -4
Branches 10936 10936
=======================================
Hits 25675 25675
+ Misses 45857 45852 -5
- Partials 1395 1396 +1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
* fix: Filter out MCP and models_and_agents categories and MCPTools component from sidebar (#11513) * fix: hide MCP tool from model & agent * fix: removing mcp searching * fix testcases * fix testcases --------- Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com> * fix: Fix flaky Market Research test timeout on CI (#11665) * add wait for statement to prevent race condition * fix flaky global variable * add input selection * [autofix.ci] apply automated fixes * add disable inspect panel util * [autofix.ci] apply automated fixes * fix vector store test * [autofix.ci] apply automated fixes * use disable inspect pannel utils --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * ci: make docs deployment manual-only (#11602) feat: update GitHub Actions workflow to allow manual branch selection for docs deployment * fix: handle missing capabilities in Ollama API response (#11603) * fix: handle missing capabilities in Ollama API response Older Ollama versions don't return the `capabilities` field from `/api/show`. The previous code defaulted to an empty list and required "completion" capability, filtering out all models. Now we treat missing capabilities as backwards-compatible: assume the model supports completion unless tool_model_enabled is True (where we can't verify tool support without the capabilities field). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * [autofix.ci] apply automated fixes * test: add test cases for Ollama backwards compatibility fix Add tests for get_models handling of missing capabilities field: - test_get_models_missing_capabilities_without_tool_model - test_get_models_missing_capabilities_with_tool_model - test_get_models_mixed_capabilities_response Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * [autofix.ci] apply automated fixes * fix: wrap long docstring line to satisfy ruff E501 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * docs: draft hide internal endpoints in spec (#11469) * test-hide-internal-endpoints * hide-more-endpoints * display-mcp-endpoints * display-mcp-projects * add-back-health-check --------- Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com> * feat: update opensearch component with raw search component (#11491) * Update opensearch_multimodal.py * [autofix.ci] apply automated fixes * Update opensearch_multimodal.py * Skip existing knn_vector mapping & handle errors Before adding a knn_vector field mapping, check the index properties and skip updating if the field already exists (and warn if dimensions differ). Attempt to add the mapping only when missing, and catch failures from the OpenSearch k-NN plugin (e.g. NullPointerException); in that known case log a warning and skip the mapping update instead of failing hard. After adding, verify the field is mapped as knn_vector and raise an error if it is not. Also adjusts logging messages to be clearer. --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix(test): Skip Tavily API key fill when global variable is loaded (#11733) * update Google models * [autofix.ci] apply automated fixes * update tests * mark deprecated * build component index * [autofix.ci] apply automated fixes --------- Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com> Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai> Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com> Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com> Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* bug: unable to use Other Model for 'Language Model' in Agent Component (#11506)
* fixed import issue on model provider
* addressed commments
---------
Co-authored-by: keval shah <kevalvirat@gmail.com>
* test: Fix race condition in rename flow test (#11549)
* fix: add Language Model components to Basic Prompt Chaining.json in starter_projects (#11567)
fix: add LM components to starter_projects in BPC
add Language Model components to Basic Prompt Chaining,json in starter_projects
* feat(loop): implement isolated subgraph execution for LoopComponent (#11034)
* refactor(loop): implement isolated subgraph execution for LoopComponent
- Refactor LoopComponent to execute loop body as isolated subgraph
- Add create_subgraph method to Graph class for creating isolated subgraphs
- Add loop_utils with get_loop_body_vertices helper function
- Add on_end_vertex event emission in async_start for progress tracking
- Add comprehensive tests for subgraph execution and event emission
This change enables proper vertex event streaming during loop execution
by running each iteration as an isolated subgraph with its own context.
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* fix: Improve subgraph event streaming to UI
- Add event types to stream token event manager (end_vertex, error, build_start, build_end)
- Preserve start_component_id in async_start for proper subgraph execution
- Fix has_chat_output/has_chat_input to use vertex.base_name instead of string matching
- Add _stream_to_playground check to allow inner graph components to send events
- Fix _send_message_event to properly extract and forward message IDs
* update index
* fix: Enhance extract_loop_output to handle multiple message formats
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* fix: Improve intra-layer cycle detection logging in sorting function
* refactor: Update loop execution to create fresh subgraph for each iteration
* test: Add tests for subgraph isolation and state management
* fix: Update LoopComponent description for clarity on item processing
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* fix: Add warning log for missing custom_component in loop item injection
* refactor: Simplify loop event tests while preserving critical coverage
Reduced test complexity by removing excessive mocking while maintaining completeå event manager propagation coverage. Event manager tests are critical for ensuring UI updates work correctly during loop execution.
* fix: Update Google dependency version to 2.5.0 across multiple components
* fix: Update value format in Research Translation Loop JSON for clarity
* fix: Inject loop items into HandleInput fields via raw_params
HandleInput fields (type="other") were receiving None instead of loop items
because:
1. Fields with type="other" are skipped during field param processing
2. Loop->Parser edge is filtered out in subgraph creation
3. updated_raw_params flag was reset too early by multiple build_params() calls
Fix:
- Inject loop items into template before prepare()
- Inject into raw_params after prepare() using update_raw_params()
- Persist updated_raw_params flag across all build_params() calls
- Reset flag in _build_each_vertex_in_params_dict() after processing
Tests:
- Add integration test exercising execute_loop_body() code path
- Verify update_raw_params() called with correct data per iteration
- Add full Loop+Parser integration test
- Fix fieldName -> field_name in existing tests
* fix: Update done_output method to use internal event manager and improve event handling
* refactor: Update execute_loop_body to use async context manager for subgraph creation and cleanup
* fix: import json in unified_models.py
* feat: Implement subgraph tracing context management
* fix: Update code_hash and improve loop component execution logic
* fix: Update code_hash and refine LoopComponent execution logic
* [autofix.ci] apply automated fixes
* fix: Update LoopComponent subgraph execution to set event manager as instance attribute
* test: Enhance subgraph execution tests to verify event manager passing
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: Missing 'Disconnect' Option in Model Providers Settings (#11373)
* added disconnect styles from design
* added motion to model provider
* revert input to make sense
* styles improved
* backend fix
* removed non used import
* fixed disconnect (design suggestion)
* added tests
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* updated templates
* updated templates
* re-run ci
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: correctly handle httpexceptions in session scope (#11542)
* Correctly handle httpexceptions in session scope
* don't assume autologin
for distributed envs, diff backends may have diff autologin
settings, so don't assume config
* [autofix.ci] apply automated fixes
* simplify conditional logic
* update comp index
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: remove authentication check on sign up endpoint (#11560)
* Remove authentication check on sign up endpoint
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: Apply env var fallback fix to lfx module (#11584)
Applies the fix from PR #9422 (commit 18e2ff2d2d) to the lfx module,
which was previously only applied to the backend module.
PR #9422 fixed a bug where environment variable fallback would fail when
`load_from_db=True` inputs couldn't find variables in the database.
The fix properly distinguishes between two error cases:
- "User id is not set" → always raise (authentication issue)
- "variable not found." → only raise if fallback_to_env_vars=False
However, this fix was only applied to:
- src/backend/base/langflow/interface/initialize/loading.py
And was missing from:
- src/lfx/src/lfx/interface/initialize/loading.py
PR #9902 added table field support and reorganized the test imports to
use the lfx module (which has table support). The test was updated to
use "Database connection failed" error message to work with the existing
code, rather than "variable not found." which would trigger the bug.
This commit:
1. Applies the bug fix to the lfx module's regular field handler
2. Restores the original test behavior using "variable not found."
to properly validate that the fix works
- src/lfx/src/lfx/interface/initialize/loading.py
Fixed error handling to respect fallback_to_env_vars flag
- src/backend/tests/unit/interface/initialize/test_loading.py
Restored "variable not found." error to properly validate the fix
Fixes: https://github.com/langflow-ai/langflow/issues/11422
Related: #9422, #9902
* feat: add copy functionality to output modal with tooltip support (#11493)
* feat: add copy functionality to output modal with tooltip support
* [autofix.ci] apply automated fixes
* refactor: streamline OutputModal component structure and improve readability
* refactor: remove comment
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: Improve Read File and Write File storage location UX (#11589)
* advanced mode for storage
* add tests
* hide storage location
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: modal autofocus close button (#11425)
* fix: improve focus behavior in FlowLogsModal
* fix: improve focus behavior in SaveChangesModal
* refactor: extract onOpenAutoFocus handlers
* check if element exists before prevent
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: Add Python flow execution support for Assistant (#11553)
* add execution .py
* fix verbose error
* remove unecessary doc
* [autofix.ci] apply automated fixes
* add coderabbit suggestion and mypy fixes
* fix mypy
* add more tests to /agents related files
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* build(deps-dev): bump @modelcontextprotocol/sdk from 1.25.3 to 1.26.0 in /src/frontend (#11595)
build(deps-dev): bump @modelcontextprotocol/sdk in /src/frontend
Bumps [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) from 1.25.3 to 1.26.0.
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.3...v1.26.0)
---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
dependency-version: 1.26.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
* ci: use correct labeling for nightly hash update workflow step (#11492)
* Fix merging of nightly hash update to main
* Add testing flag for just merge pr
* fix'
* try conditional logic to skip jobs
* fix conditional
* checkout new branch only pull in night hash
* add hash history back
* Remove test flag
* fix conditionals
* feat: fork branch for main (#11183)
* feat: add chat-header feature and sliding container (#11045)
Add sliding playground layout (SimpleSidebar + sliding container + store) and toolbar button integration to open it directly + chat header/session components and hooks (SessionSelector, SessionRename, ChatHeaderTitle, use-get-flow-id, playgroundStore).
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* removed changes on the tailwind config
* feat: add session management functionality (#11272)
* feat: add session management functionality
- Add session selector component
- Add session more menu component
- Add session header component
- Add session edit info hook
- Add get/add sessions hook
- Hide delete button for default session
* sync: update animated-close and simple-sidebar from pr4
* Make sidebar continue to be fullscreen after closing and opening
* [autofix.ci] apply automated fixes
* reduce max width
* Pr2 bis chat messages (#11308)
* feat: add chat messages components and infrastructure
- Add bot message component
- Add thinking message component
- Add user message component
- Add chat message wrapper component
- Add message editing functionality
- Add error message component
- Add file card wrapper
- Add message options component
- Add chat history hook
- Add thinking duration hook
- Add typing effect hook
- Add message utilities (convert files, format file name, sort messages)
- Add content block display component
- Add send message hook
* fix: remove typing animation from bot messages, show thinking immediately after user message, and use optional chaining for updateChat
* [autofix.ci] apply automated fixes
* feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
* refactor: sync chat-messages from pr3 with refactored utilities
- Copy refactored chat-messages components from pr3
- Add new hooks: use-message-duration, use-tool-durations
- Add consolidated utilities: format.ts, content-blocks.ts, extract-error-message.ts
- Add Indicator icon for error messages
- Update ContentBlockDisplay to use new utilities
- Remove format-file-name.tsx (merged into format.ts)
- Update lazyIconImports to include Indicator icon
* sync: update animated-close and simple-sidebar from pr4
* Pr3 chat input (#11310)
* feat: add chat input components and improvements
- Add chat input component
- Add text area wrapper with auto-resize
- Add input wrapper component
- Add button send wrapper
- Add no-input component
- Add audio button component
- Add file preview component
- Add upload file button
- Add auto-resize text area hook
- Add audio recording hook
- Add drag and drop hook
- Update textarea UI component
- Update IOModal input wrapper
- Update constants for chat input
* feat: add file handling, UI enhancements, types, stores and dependencies
- Add file preview display component
- Add file utilities
- Add animated close component
- Add simple sidebar component
- Update sliding container with container queries support
- Update FlowPage components
- Update styles and Tailwind config
- Add chat types
- Add component types
- Add utility store types
- Add utility store
- Update package dependencies
* fix: prevent chat input from growing on every letter and make updateChat optional with proper typing
* fix: prevent chat input from growing on every letter
* fix: sync message components with PR2 (remove typing animation, fix thinking timing, use optional chaining)
* fix: sync message components with PR2 (remove typing animation, fix thinking timing, use optional chaining)
* [autofix.ci] apply automated fixes
* fix: apply message component fixes from PR2 (remove typing animation, fix thinking timing, use optional chaining)
* [autofix.ci] apply automated fixes
* fix: prevent textarea from resizing on every character by tracking previous scrollHeight
* fix: prevent textarea from resizing on every character by tracking previous scrollHeight
* fix: prevent textarea from growing on every character with 10px threshold
* fix: prevent textarea from growing on every character with 10px threshold
* Revert "fix: prevent textarea from growing on every character with 10px threshold"
This reverts commit ec3ed63fa8638a4b5d1777576aa7b4736e03c237.
* Revert "fix: prevent textarea from growing on every character with 10px threshold"
This reverts commit 93637ae4de873af2f89424d536459fda13b0f67f.
* feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
* feat: add streaming message hook and fix thinking/thought display logic
- Extract streaming logic to useStreamingMessage hook matching IOModal behavior
- Fix thinking/thought message display to use isBuilding directly from store
- Remove typing animation logic from bot messages
- Fix textarea resize to prevent growing on every keystroke with 10px threshold
- Fix ContentBlockDisplay truncate styling for tool titles
- Remove markdown bold syntax (**) from tool titles
- Fix ContentDisplay type error
* fix error making the flow crashing
* resize user and bot icon and remove borders
* fix flow crash when error
* have the green duration be the sum of tool and sec part the entire thinking
* refactor: extract and consolidate chat message utilities
- Extract duration tracking logic to use-message-duration hook
- Consolidate format utilities (formatTime, formatSeconds, formatToolTitle, formatFileName) into single format.ts file
- Merge content block utilities (getContentBlockState, getContentBlockLoadingState) into content-blocks.ts
- Move component-specific logic (hasTools, shouldShowAvatar, shouldShowContentBlocks) back into components
- Move errorMarkdownComponents into error-message.tsx component
- Simplify error-message.tsx by extracting sub-components
- Add Indicator icon for error messages
- Update all imports to use consolidated utilities
* refactor: sync chat-messages and chat-input from pr4
- Copy refactored chat-messages components from pr4
- Add new hooks: use-message-duration, use-tool-durations
- Add consolidated utilities: format.ts, content-blocks.ts, extract-error-message.ts
- Add Indicator icon for error messages
- Update ContentBlockDisplay to use new utilities
- Remove format-file-name.tsx (merged into format.ts)
- Update lazyIconImports to include Indicator icon
* change duration animation
* Only allow certain file types
* feat: add file handling, UI enhancements, types, stores and dependencies (#11276)
* [autofix.ci] apply automated fixes
* feat: add clear chat option for default session in session management
- Add 'Clear chat' option to SessionMoreMenu component
- Show 'Clear chat' for default session (currentSessionId === currentFlowId)
- Show 'Delete' for other sessions (existing behavior)
- Clear chat deletes messages but keeps the session
- Delete removes the entire session
- Both options use same red color styling
* adjust radius for error message border
* show only the text An error occured
* refactor: replace Zustand with React Query for message handling
- Move all message handling logic to chat-view/utils/
- Create message-event-handler.ts to handle build events
- Create message-utils.ts for React Query cache operations
- Update buildUtils.ts to delegate message events to chat-view
- Remove MemoizedChatMessage to fix streaming updates
- Simplify use-chat-history to use session cache as single source of truth
- Support placeholder messages for immediate UI feedback
- Handle streaming tokens with proper text accumulation
* fix: improve clear chat logic to prevent double clearing
- Fix clearSessionMessages to use removeQueries instead of invalidateQueries
- Prevents refetch that brings back deleted messages
- Clear chat only works for default session, delete works for other sessions
- Handle default session messages with null session_id (legacy)
* fix padding and spacing issue on playground component
* fix: message section padding
* fix: padding
* add time persistence and build perfect timer
* [autofix.ci] apply automated fixes
* fix display time styles
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix: format time in seconds and fix gap between duration and message
* [autofix.ci] apply automated fixes
* fix: fetch messages in session logs modal to prevent empty display
* [autofix.ci] apply automated fixes
* fix: added gap between image and message
* fix header truncating
* fix: apply card in the background of user message in smaller view
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
---------
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
---------
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
---------
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* fix: frontend tests
* [autofix.ci] apply automated fixes
* fix nested agents
* [autofix.ci] apply automated fixes
* Revert "fix nested agents"
This reverts commit f230c8c6dd25a88b47739f8a83c0c8296f24778c.
* fix time on agent chain
* [autofix.ci] apply automated fixes
* fix(playground): display ChatInput default value on playground open (#11514)
* fix(playground): display ChatInput default value on playground open
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(ui): prevent layout shift when adding Chat Input with closed playground (#11531)
* fix(ui): prevent layout shift when adding Chat Input with closed playground
* fix(ui): remove unwanted import
* fix(frontend): reset playground state when navigating between flows (#11533)
reset playground state when leaving the flow
* fix(frontend): prevent Message Logs table from dropping columns with falsy values (#11540)
fix(frontend): prevent Message Logs table from dropping columns with falsy values
* fix(frontend): auto-close playground when all chat components are removed (#11537)
* fix(frontend): auto-close playground when all chat components are removed
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(frontend): prevent send button from being pushed off-screen in chat input (#11556)
* fix(frontend): prevent send button from being pushed off-screen in chat input
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): fix image upload process in chat input test
* fix(test): improve chat message verification in chat input test
* fix: add data-testID to ensure the testcases pass (#11573)
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
* feat(tests): add data-testid attributes for improved test targeting in chat header and session selector
* fix: session rename create new session instead of remaining existing one (#11576)
* fix(frontend): resolve session rename bugs and prevent message loss
* fix(playground): Fix session rename not showing messages immediately
* [autofix.ci] apply automated fixes
* fix(playground): Eliminate duplicate logic in session-selector
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): playground test
* fix: rename session and test shard 9 (#11581)
fix: pass renameLocalSession to ChatHeader to fix session rename creating new session
The session rename from the chat header's more menu was creating a new session
instead of renaming the existing one. This was because renameLocalSession was
not being passed to useEditSessionInfo in chat-header.tsx.
- Added renameLocalSession to ChatHeaderProps type
- Pass renameLocalSession from flow-page-sliding-container to ChatHeader
- Pass renameLocalSession to useEditSessionInfo in chat-header
* fix(frontend): prevent menu stacking and ensure proper close behavior (#11592)
* fix(frontend): prevent menu stacking and ensure proper close behavior
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: playground tests shard 13 (#11593)
* fix: update Basic Prompting test to use specific test IDs for playground combobox
* fix: skip voice assistant interaction test for review
* test: skip voice-assistant tests pending playground refactor
* fix: tests shard 16 (#11594)
* fix: update Basic Prompting test to use specific test IDs for playground combobox
* fix: skip voice assistant interaction test for review
* test: skip voice-assistant tests pending playground refactor
* fix: update Financial Report Parser and Image Sentiment Analysis tests
- Financial Report Parser: Use stop_building_button instead of button-stop
(which doesn't exist in playground chat input), wait for it to appear
before waiting for hidden state, and use div-chat-message instead of
.markdown selector which was matching node descriptions
- Image Sentiment Analysis: Replace unreliable dispatchEvent("drop") with
setInputFiles() for file upload, add proper flow completion wait, and
use img[alt$="chain.png"] to handle server timestamp prefix
* fix(frontend): prevent duplicate session creation when renaming in non fullscreen mode (#11596)
fix(frontend): prevent duplicate session creation when renaming in non-fullscreen mode
* fix: tests shard 18 - Memory Chatbot and Simple Agent Memory (#11597)
Memory Chatbot:
- Replace fragile selectors (getByRole, getByLabel) with data-testid
- Use chat-header-more-menu and message-logs-option for message logs
- Replace .isVisible() with proper expect().toBeVisible() assertions
- Simplify test by removing session deletion
Simple Agent Memory:
- Add waitForSelector for input before filling
- Use stop_building_button instead of getByRole("button", { name: "Stop" })
- Use proper wait pattern: visible → hidden for build completion
- Add user message verification with chat-message-User-* test IDs
- Add wait for div-chat-message before asserting
* fix: update News Aggregator test to streamline API key handling and increase timeout (#11598)
* fix: tests shard 18 - Memory Chatbot and Simple Agent Memory
Memory Chatbot:
- Replace fragile selectors (getByRole, getByLabel) with data-testid
- Use chat-header-more-menu and message-logs-option for message logs
- Replace .isVisible() with proper expect().toBeVisible() assertions
- Simplify test by removing session deletion
Simple Agent Memory:
- Add waitForSelector for input before filling
- Use stop_building_button instead of getByRole("button", { name: "Stop" })
- Use proper wait pattern: visible → hidden for build completion
- Add user message verification with chat-message-User-* test IDs
- Add wait for div-chat-message before asserting
* fix: update News Aggregator test to streamline API key handling and increase timeout
* fix: refactor Pokedex Agent test for improved readability and consistency
* fix: update Pokedex Agent test to correctly retrieve chat message output and adjust length expectation
* fix: improve Research Translation Loop test structure and readability
* fix: enhance readability and consistency in Simple Agent Memory test
* fix: generalBugs-shard-9 test
* fix: simplify file upload handling in limit-file-size-upload test
* fix: file upload test
* fix: update chat interaction test for improved sender name handling
* fix: add data-testid attribute to hidden file input for improved test targeting
* fix: refactor test structure for improved readability and maintainability
* fix: revert upload file util
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <lucas.edu.oli@hotmail.com>
Co-authored-by: keval shah <kevalvirat@gmail.com>
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
* fix: Link visibility and 404 URL in Auto-save modal (#11476)
fix: Fix link visibility and URL in save flow modal
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
* Fix: runflow toolmode input progation (#11348)
* fix input propogation to subflow in runflow component in toolmode
refactor runflow
remove print calls
allow Data inputs and refactoring of runflow component with updated tests
misc
misc
persist tweaks in multi-input scenario
add regression tests
chore: update component index
ruff (tests)
checkout component index from main
chore: update component index
obfuscate error message
chore: update component index
chore: update component index
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
---------
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>
* bug: fix for embedding model input/output handler (#11591)
* fix for embedding model input/output
* code clean up for connect other models
* [autofix.ci] apply automated fixes
* update templates
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: Alphabetical Sorting for "Models & Agents" Components (#11489)
* fix: make sure model and agent are alphabetically sorted
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
* feat: update pre-release flow to be useable for qa (#11322)
* feat: create prerelease dedicated to qa
allow prerelease versions dedicated to qa
* chore: revert lfx dep to 0.2.1
* chore: lfx pyproject version 0.2.1 for testing
* feat: use pythin script to determine rc version
use a python script to auto incremenet rc version so we do not have to manually maintain what rc version we are on.
add it to both release.yml and docker-build-v2.yml for pypi, docker and ghrc.
* [autofix.ci] apply automated fixes
* chore: change script vars to more meaningful ones
* chore: add meaningful echos
* chore: add quotes to pass empty str if no version
* test: REVERT always pass ci REVERT
* chore: add normalization to built ver tests
* chore: remove unused uv environment set up
* chore: add back in checkout code
* chore: disable caching for ensure-lfx-published
* chore: revert changes added after merge
* fix: allow prerelase python install flag
* chore: test base and main install as 1
* chore: seperate base and main
* chore: install main using local base first
* chore: try using reinstall
* chore: create locl directory and use it first
* chore: try --no-deps
* chore: langflow-*.whl
* [autofix.ci] apply automated fixes
* fix: try using unsafe-best-match
use ./local-packages --index-strategy unsafe-best-match
* fix: add a dynamic constriant for langflow base
add a dynamic constriant for langflow base during build-main. if this works I will need to go back and remove any unneeded cross-platform test changes
* chore: revert to normal install
* fix: add pre-main option to make build
* chore: remove hyphen in make var
* chore: keep propigation wait for pre-release
* chore: revert cross-platform-test.yml changes
* chore: use else ifdef and add test echos
* chore: remove --no-soruces
* chore: use ifeq
* chore: revert lfx 0.2.1
* chore: downgrade to python 3.12
ragstack-ai-knowledge-store does not support pythong 3.13
* chore: add else to Makefile
* chore: back to ifdef
* chore: reset to Makefile to main and add pre again
* chore: revert to python 3.13
* chore: set compatability check to 3.12
hopeffuly fixes
Found 1 incompatibility
The package `ragstack-ai-knowledge-store` requires Python >=3.9, <3.13, but `3.13.11` is installed
* [autofix.ci] apply automated fixes
* fix: new flow reset.
* chore: update LFX Determine version
* fix: remove buil-lfx dep on lfx release
* chore: remove more inputs.release_lfx if statments
* fix: uv pip install --find-links
* chore: create uv venv before uv pip install
* chire: attempt for reinatll of local whls
* fix: add OBJC_DISABLE_INITIALIZE_FORK_SAFETY: YES
add OBJC_DISABLE_INITIALIZE_FORK_SAFETY: YES to macos cross-platform test builds
* [autofix.ci] apply automated fixes
* chore: add back in ci step
* fix(ci): correctly generate pre-release rc tags
* [autofix.ci] apply automated fixes
* feat: update pre-release flow to be useable for qa
* Revert "feat: update pre-release flow to be useable for qa"
This reverts commit 22737729a2d0ed64ea774a30af070f0010cba9e1.
* feat: update pre-release flow to be useable for qa
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* feat: update pre-release flow to be useable for qa
* feat: update pre-release flow to be useable for qa
* feat: update pre-release flow to be useable for qa
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: vijay kumar katuri <vijaykaturi@vijays-MacBook-Air.local>
Co-authored-by: vijay kumar katuri <vijay.katuri@ibm.com>
* fix: remove fe from backend image build (#11579)
* asdf
* build langflow-backend image correctly with no frontend
* Update docker/build_and_push_backend.Dockerfile
Co-authored-by: Adam-Aghili <149833988+Adam-Aghili@users.noreply.github.com>
* Fix version check for backend image
* Add data dir
* Add npm back for mcp support
---------
Co-authored-by: Adam-Aghili <149833988+Adam-Aghili@users.noreply.github.com>
* feat: adds inspection panel to show node inputs (#11263)
* First prototype of inspection panel
* fixed value not being set
* Hide inputs that are not handles from the node, show everything else on the inspection panel
* [autofix.ci] apply automated fixes
* Implemented close button on inspection panel
* Re-show inputs on the node
* remove code from node toolbar
* change code design on inspection panel
* create feature flag
* disable code and controls on node based on feature flag
* adjusted inspection panel size
* [autofix.ci] apply automated fixes
* disable inspection panel with feature flag
* Show only connections on component
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* Add output and logs to inspect panel
* [autofix.ci] apply automated fixes
* removed label from code button
* filter handleinputs
* added description on inspection panel header
* remove tabs from inspection panel and use inspect output on node again
* Make inspect panel have flexible height and disable its animation
* [autofix.ci] apply automated fixes
* Removed division from node name and inputs
* Reduce some gaps
* [autofix.ci] apply automated fixes
* Add docs button
* show docs just when exists
* [autofix.ci] apply automated fixes
* added custom 4.5 height and width
* Changed node text sizes and icon size
* [autofix.ci] apply automated fixes
* Added freeze always to the node toolbar
* Updated input size on inspect panel and output size on node
* [autofix.ci] apply automated fixes
* Implemented name and description editing
* Changed paddings to match design
* Added advanced fields and trigger
* fixed advanced and pencil design
* Implemented new prompt component with inline editing
* [autofix.ci] apply automated fixes
* Remove console logs
* Dont fetch data on inspection panel
* Made inputs appear to perform calculations but not show up on nodes
* Removed LanguageModel from input types of model input in basic prompting
* Changed inputs to not render when showParameter is false, in order to run the useEffects
* Change tests to select node to change model, and then unselect all
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* deleted unused file
* extract filtering logic
* [autofix.ci] apply automated fixes
* removed Made with Bob comments
* Fix error catching
* [autofix.ci] apply automated fixes
* Fixed dropdown not avoiding collisions
* Remove dead zone below the inspection panel
* Fixed prompt validation being done even if input didnt change
* Fixed handle fields appearing
* Fixed handle not showing up on minimized components
* Fixed condition for minimizing component
* fixed minimized nodes behavior to minimize when only one input is connected
* [autofix.ci] apply automated fixes
* fixed component not showing up as hidden
* changed data test id of advanced modal and advanced trigger, to fix tests
* Fixed custom component not having pink code button
* [autofix.ci] apply automated fixes
* fixed node exhibition when feature flag is disabled, fixed minimized field
* added show and hide advanced button on inspection panel
* [autofix.ci] apply automated fixes
* Fixed fit view to contain padding when a component is clicked
* fixed freeze path test
* change label
* changed gpt model test
* added separator between description and fields
* Changed advanced padding
* fixed gpt setup and image sentiment analysis
* fixed mcp server test
* fixed freeze spec
* [autofix.ci] apply automated fixes
* fixed logs setup
* Fixed stop building test
* Fixed minimization text
* changed variable name
* [autofix.ci] apply automated fixes
* Filter tool mode
* fixed prompt component unfocusing every time
* [autofix.ci] apply automated fixes
* fixed blog writer
* added select anthropic model, fixed custom component generator that didnt show the code
* fixed inspection panel advanced
* fixed tests that used advanced fields
* fixed gpt model timeout
* [autofix.ci] apply automated fixes
* fixed toolbar button collision
* always show language model input
* fixed tests
* [autofix.ci] apply automated fixes
* disabled advanced shortcut when inspection panel is enabled
* fixed tests
* [autofix.ci] apply automated fixes
* fixed flicker
* [autofix.ci] apply automated fixes
* fix tests
* [autofix.ci] apply automated fixes
* push to trigger tests
* [autofix.ci] apply automated fixes
* Update select-gpt-model and select-anthropic-model utilities
* feat: improve Inspection Panel UX
- Prevent Inspector Panel from opening when clicking input fields
- Add onMouseDown stopPropagation to input wrapper
- UX improvements for panel interactions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* Enable node toolbar items when inspect panel is disabled, save user preference on local storage, code cleanup
* [autofix.ci] apply automated fixes
* Show handle inputs on advanced
* Adjusted description and name
* [autofix.ci] apply automated fixes
* disable select nodes on drag
* Try to fix tests that have controls open
* [autofix.ci] apply automated fixes
* fix run flow test and select gpt model
* Revert "Fixed dropdown not avoiding collisions"
This reverts commit acf21900017ad2b459340c73becde06a894adf83.
* fixed collisions on inspection panel
* [autofix.ci] apply automated fixes
* fixed select gpt model and parameter render input
* updated similarity test
* [autofix.ci] apply automated fixes
* changed playwright config
* fix test text sentiment and and elect-gpt-model
* fixed jest tests
* [autofix.ci] apply automated fixes
* Fixed tests related to the advanced modal
* [autofix.ci] apply automated fixes
* fix textAreaModalComponent test
* fix freeze test
* fix edit-name-description-node-spec
* fix edit-name-description-node-spec plus adding timeout
* fix lanflowShortcut test
* fix edit-name-description-node test
* fix userSettings test
* fixed tests
* [autofix.ci] apply automated fixes
* fixed jest tests
* fixed test
* Added unit tests for inspection panel
* [autofix.ci] apply automated fixes
* re-added code and fixed tests
* fixed header design
* [autofix.ci] apply automated fixes
* Fixed shortcuts, fixed advanced mode
* [autofix.ci] apply automated fixes
* fixed tests
* [autofix.ci] apply automated fixes
* fixed unit tests
* [autofix.ci] apply automated fixes
* fixed tests and sortable list component
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Olfa Maslah <olfamaslah@Olfas-MacBook-Pro.local>
Co-authored-by: Rodrigo Nader <rodrigonader@Mac.localdomain>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* feat: create guardrails component (#11451)
* Create guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Update guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* tests: add unit tests for GuardrailsComponent functionality
* [autofix.ci] apply automated fixes
* fix: resolve linting errors in GuardrailsComponent and tests
- Fix line length issues (E501) by breaking long strings
- Fix docstring formatting (D205, D415) in _check_guardrail
- Use ternary operator for response content extraction (SIM108)
- Replace magic value with named constant (PLR2004)
- Move return to else block per try/except best practices (TRY300)
- Catch specific exceptions instead of blind Exception (BLE001)
- Use list comprehension for checks_to_run (PERF401)
- Mark unused variables with underscore prefix (RUF059, F841)
- Add noqa comment for intentionally unused mock argument (ARG002)
* [autofix.ci] apply automated fixes
* refactor: address pr comments
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes
* feat: enhance heuristic detection with configurable threshold and scoring system
* refactor: simplify heuristic test assertions by removing unused variable
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* feat: enhance guardrail validation logic and input handling
* refactor: streamline import statements and clean up whitespace in guardrails component
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Fix: update empty input handling tests to raise ValueError and refactor related assertions
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* feat: add Guardrails component with unit tests
Add LLM-based guardrails component for detecting PII, tokens/passwords,
jailbreak attempts, and custom guardrail rules, along with comprehensive
unit tests.
* [autofix.ci] apply automated fixes
* fix: try removing logs
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
* fix: Filter out MCP and models_and_agents categories and MCPTools component from sidebar (#11513)
* fix: hide MCP tool from model & agent
* fix: removing mcp searching
* fix testcases
* fix testcases
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
* feat(auth): Pluggable AuthService with abstract base class (#10702)
* feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery
- Added `register_service` decorator to allow services to self-register with the ServiceManager.
- Enhanced `ServiceManager` to support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points.
- Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management.
* feat: Implement VariableService for managing environment variables
- Introduced VariableService class to handle environment variables with in-memory caching.
- Added methods for getting, setting, deleting, and listing variables.
- Included logging for service initialization and variable operations.
- Created an __init__.py file to expose VariableService in the package namespace.
* feat: Enhance LocalStorageService with Service integration and async teardown
- Updated LocalStorageService to inherit from both StorageService and Service for improved functionality.
- Added a name attribute for service identification.
- Implemented an async teardown method for future extensibility, even though no cleanup is currently needed.
- Refactored the constructor to ensure proper initialization of both parent classes.
* feat: Implement telemetry service with abstract base class and minimal logging functionality
- Added `BaseTelemetryService` as an abstract base class defining the interface for telemetry services.
- Introduced `TelemetryService`, a lightweight implementation that logs telemetry events without sending data.
- Created `__init__.py` to expose the telemetry service in the package namespace.
- Ensured robust async methods for logging various telemetry events and handling exceptions.
* feat: Introduce BaseTracingService and implement minimal TracingService
- Added `BaseTracingService` as an abstract base class defining the interface for tracing services.
- Implemented `TracingService`, a lightweight version that logs trace events without external integrations.
- Included async methods for starting and ending traces, tracing components, and managing logs and outputs.
- Enhanced documentation for clarity on method usage and parameters.
* feat: Add unit tests for service registration decorators
- Introduced a new test suite for validating the functionality of the @register_service decorator.
- Implemented tests for various service types including LocalStorageService, TelemetryService, and TracingService.
- Verified behavior for service registration with and without overrides, ensuring correct service management.
- Included tests for custom service implementations and preservation of class functionality.
- Enhanced overall test coverage for the service registration mechanism.
* feat: Add comprehensive unit and integration tests for ServiceManager
- Introduced a suite of unit tests covering edge cases for service registration, lifecycle management, and dependency resolution.
- Implemented integration tests to validate service loading from configuration files and environment variables.
- Enhanced test coverage for various service types including LocalStorageService, TelemetryService, and VariableService.
- Verified behavior for service registration with and without overrides, ensuring correct service management.
- Ensured robust handling of error conditions and edge cases in service creation and configuration parsing.
* feat: Add unit and integration tests for minimal service implementations
- Introduced comprehensive unit tests for LocalStorageService, TelemetryService, TracingService, and VariableService.
- Implemented integration tests to validate the interaction between minimal services.
- Ensured robust coverage for file operations, service readiness, and exception handling.
- Enhanced documentation within tests for clarity on functionality and expected behavior.
* docs: Add detailed documentation for pluggable services architecture and usage
* feat: Add example configuration file for Langflow services
* docs: Update PLUGGABLE_SERVICES.md to enhance architecture benefits section
- Revised the documentation to highlight the advantages of the pluggable service system.
- Replaced the migration guide with a detailed overview of features such as automatic discovery, lazy instantiation, dependency injection, and lifecycle management.
- Clarified examples of service registration and improved overall documentation for better understanding.
* [autofix.ci] apply automated fixes
* test(services): improve variable service teardown test with public API assertions
* docs(pluggable-service-layer): add docstrings for service manager and implementations
* fix: remove duplicate teardown method from LocalStorageService
During rebase, the teardown method was added in two locations (lines 57 and 220).
Removed the duplicate at line 57, keeping the one at the end of the class (line 220)
which is the more appropriate location for cleanup methods.
* fix(tests): update service tests for LocalStorageService constructor changes
- Add MockSessionService fixtures to test files that use ServiceManager
- Update LocalStorageService test instantiation to use mock session and settings services
- Fix service count assertions to account for MockSessionService in fixtures
- Remove duplicate class-level clean_manager fixtures in test_edge_cases.py
These changes fix test failures caused by LocalStorageService requiring
session_service and settings_service parameters instead of just data_dir.
* fix(services): Harden service lifecycle methods
- Fixed Diamond Inheritance in LocalStorageService
- Added Circular Dependency Detection in _create_service_from_class
- Fixed StorageService.teardown to Have Default Implementation
* docs: Update discovery order for pluggable services
* fix(lfx): replace aiofile with aiofiles for CI compatibility
- The aiofile library uses native async I/O (libaio) which fails with
EAGAIN (SystemError: 11, 'Resource temporarily unavailable') in
containerized environments like GitHub Actions runners.
- Switch to aiofiles which uses thread pool executors, providing reliable
async file I/O across all environments including containers.
* [autofix.ci] apply automated fixes
* fix(lfx): prevent race condition in plugin discovery
The discover_plugins() method had a TOCTOU (time-of-check to time-of-use)
race condition. Since get() uses a keyed lock (per service name), multiple
threads requesting different services could concurrently see
_plugins_discovered=False and trigger duplicate plugin discovery.
Wrap discover_plugins() with self._lock to ensure thread-safe access to
the _plugins_discovered flag and prevent concurrent discovery execution.
* [autofix.ci] apply automated fixes
* feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery
- Added `register_service` decorator to allow services to self-register with the ServiceManager.
- Enhanced `ServiceManager` to support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points.
- Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management.
* feat: Enhance LocalStorageService with Service integration and async teardown
- Updated LocalStorageService to inherit from both StorageService and Service for improved functionality.
- Added a name attribute for service identification.
- Implemented an async teardown method for future extensibility, even though no cleanup is currently needed.
- Refactored the constructor to ensure proper initialization of both parent classes.
* docs(pluggable-service-layer): add docstrings for service manager and implementations
* feat(auth): implement abstract base class for authentication services and add auth service retrieval function
* refactor(auth): move authentication logic from utils to AuthService
Consolidate all authentication methods into the AuthService class to
enable pluggable authentication implementations. The utils module now
contains thin wrappers that delegate to the registered auth service.
This allows alternative auth implementations (e.g., OIDC) to be
registered via the pluggable services system while maintaining
backward compatibility with existing code that imports from utils.
Changes:
- Move all auth logic (token creation, user validation, API key
security, password hashing, encryption) to AuthService
- Refactor utils.py to delegate to get_auth_service()
- Update function signatures to remove settings_service parameter
(now obtained from the service internally)
* refactor(auth): update authentication methods and remove settings_service parameter
- Changed function to retrieve current user from access token instead of JWT.
- Updated AuthServiceFactory to specify SettingsService type in create method.
- Removed settings_service dependency from encryption and decryption functions, simplifying the code.
This refactor enhances the clarity and maintainability of the authentication logic.
* test(auth): add unit tests for AuthService and pluggable authentication
- Introduced comprehensive unit tests for AuthService, covering token creation, user validation, and authentication methods.
- Added tests for pluggable authentication, ensuring correct delegation to registered services.
- Enhanced test coverage for user authentication scenarios, including active/inactive user checks and token validation.
These additions improve the reliability and maintainability of the authentication system.
* fix(tests): update test cases to use AuthService and correct user retrieval method
- Replaced the mock for retrieving the current user from JWT to access token in the TestSuperuserCommand.
- Refactored unit tests for MCP encryption to utilize AuthService instead of a mock settings service, enhancing test reliability.
- Updated patch decorators in tests to reflect the new method of obtaining the AuthService, ensuring consistency across test cases.
These changes improve the accuracy and maintainability of the authentication tests.
* docs(pluggable-services): add auth_service to ServiceType enum documentation
* fix(auth): Add missing type hints and abstract methods to AuthServiceBase (#10710)
Co-authored-by: ogabrielluiz <24829397+ogabrielluiz@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* [autofix.ci] apply automated fixes
* fix(auth): refactor api_key_security method to accept optional database session and improve error handling
* feat(auth): enhance AuthServiceBase with detailed design principles and JIT provisioning methods
* fix(auth): remove settings_service from encrypt/decrypt_api_key calls
After the pluggable auth refactor, encrypt_api_key and decrypt_api_key
no longer take a settings_service argument - they get it internally.
- Update check_key import path in __main__.py (moved to crud module)
- Remove settings_service argument from calls in:
- api/v1/api_key.py
- api/v1/store.py
- services/variable/service.py
- services/variable/kubernetes.py
- Fix auth service to use session_scope() instead of non-existent
get_db_service().with_session()
* fix(auth): resolve type errors and duplicate definitions in pluggable auth branch
- Add missing imports in auth/utils.py (Final, HTTPException, status,
logger, SettingsService) that prevented application startup
- Remove duplicate NoServiceRegisteredError class in lfx/services/manager.py
- Remove duplicate teardown method in lfx/services/storage/local.py
- Fix invalid settings_service parameter in encrypt_api_key calls
in variable/service.py and variable/kubernetes.py
- Add proper type guards for check_key calls to satisfy mypy
- Add null checks for password fields in users.py endpoints
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* [autofix.ci] apply automated fixes
* replace jose with pyjwt
* [autofix.ci] apply automated fixes
* starter projects
* fix BE mcp tests
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* remive legacy usage of session
* fix user tests
* [autofix.ci] apply automated fixes
* fix lfx tests
* starter project update
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix mypy errors
* fix mypy errors on tests
* fix tests for decrypt_api_key
* resolve conflicts in auth utils
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Add pluggable authentication factory with provider enum
* Add SSO feature flags to AuthSettings
* Add SSO fields to User model
* Add SSO configuration loader with YAML support
* Add unit tests for SSO configuration loader
* Add SSO configuration database model and CRUD operations
* Add CRUD operations for SSO configuration management
* Add SSO configuration service supporting both file and database configs
* Add example SSO configuration file with W3ID and other providers
* Implement OIDC authentication service with discovery and JIT provisioning
* Update AuthServiceFactory to instantiate OIDC service when SSO enabled
* Improve JWT token validation and API key decryption error handling
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix: resolve ruff linting errors in auth services and add sso-config.yaml to gitignore
* [autofix.ci] apply automated fixes
* fix: use correct function name get_current_user_from_access_token in login endpoint
* fix: remove incorrect settings_service parameter from decrypt_api_key call
* fix: correct encryption logic to properly detect plaintext vs encrypted values
* [autofix.ci] apply automated fixes
* fix tests
* [autofix.ci] apply automated fixes
* fix mypy errors
* fix tests
* [autofix.ci] apply automated fixes
* fix ruff errors
* fix tests in service
* [autofix.ci] apply automated fixes
* fix test security cors
* [autofix.ci] apply automated fixes
* fix webhook issues
* modify component index
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* fix webhook tests
* [autofix.ci] apply automated fixes
* build component index
* remove SSO functionality
* [autofix.ci] apply automated fixes
* fix variable creation
* [autofix.ci] apply automated fixes
* refactor: move MCPServerConfig schema to a separate file and update model_dump usage
* refactor: streamline AuthServiceFactory to use service_class for instance creation
* handle access token type
* [autofix.ci] apply automated fixes
* remove SSO fields from user model
* [autofix.ci] apply automated fixes
* replace is_encrypted back
* fix mypy errors
* remove sso config example
* feat: Refactor framework agnostic auth service (#11565)
* modify auth service layer
* [autofix.ci] apply automated fixes
* fix ruff errorrs
* [autofix.ci] apply automated fixes
* Update src/backend/base/langflow/services/deps.py
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* address review comments
* [autofix.ci] apply automated fixes
* fix ruff errors
* remove cache
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* move base to lfx
* [autofix.ci] apply automated fixes
* resolve review comments
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* add auth protocol
* [autofix.ci] apply automated fixes
* revert models.py execption handling
* revert wrappers to ensure backwards compatibility
* fix http error code
* fix FE tests
* fix test_variables.py
* [autofix.ci] apply automated fixes
* fix ruff errors
* fix tests
* add wrappers for create token methods
* fix ruff errors
* [autofix.ci] apply automated fixes
* update error message
* modify status code for inactive user
* fix ruff errors
* fix patch for webhook tests
* fix error message when getting active users
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Mike Pawlowski <mike.pawlowski@datastax.com>
Co-authored-by: Mike Pawlowski <mpawlow@ca.ibm.com>
Co-authored-by: Himavarsha <40851462+HimavarshaVS@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ogabrielluiz <24829397+ogabrielluiz@users.noreply.github.com>
Co-authored-by: himavarshagoutham <himavarshajan17@gmail.com>
Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* fix: Fix flaky Market Research test timeout on CI (#11665)
* add wait for statement to prevent race condition
* fix flaky global variable
* add input selection
* [autofix.ci] apply automated fixes
* add disable inspect panel util
* [autofix.ci] apply automated fixes
* fix vector store test
* [autofix.ci] apply automated fixes
* use disable inspect pannel utils
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ci: make docs deployment manual-only (#11602)
feat: update GitHub Actions workflow to allow manual branch selection for docs deployment
* fix: handle missing capabilities in Ollama API response (#11603)
* fix: handle missing capabilities in Ollama API response
Older Ollama versions don't return the `capabilities` field from
`/api/show`. The previous code defaulted to an empty list and required
"completion" capability, filtering out all models.
Now we treat missing capabilities as backwards-compatible: assume the
model supports completion unless tool_model_enabled is True (where we
can't verify tool support without the capabilities field).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* test: add test cases for Ollama backwards compatibility fix
Add tests for get_models handling of missing capabilities field:
- test_get_models_missing_capabilities_without_tool_model
- test_get_models_missing_capabilities_with_tool_model
- test_get_models_mixed_capabilities_response
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* fix: wrap long docstring line to satisfy ruff E501
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* docs: draft hide internal endpoints in spec (#11469)
* test-hide-internal-endpoints
* hide-more-endpoints
* display-mcp-endpoints
* display-mcp-projects
* add-back-health-check
---------
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
* feat: update opensearch component with raw search component (#11491)
* Update opensearch_multimodal.py
* [autofix.ci] apply automated fixes
* Update opensearch_multimodal.py
* Skip existing knn_vector mapping & handle errors
Before adding a knn_vector field mapping, check the index properties and skip updating if the field already exists (and warn if dimensions differ). Attempt to add the mapping only when missing, and catch failures from the OpenSearch k-NN plugin (e.g. NullPointerException); in that known case log a warning and skip the mapping update instead of failing hard. After adding, verify the field is mapped as knn_vector and raise an error if it is not. Also adjusts logging messages to be clearer.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): Skip Tavily API key fill when global variable is loaded (#11733)
* feat: add smart column ordering and clean output toggle to Split Text component (#11626)
* feat: add smart column ordering and clean output toggle to Split Text component
Add smart_column_order() method to DataFrame that prioritizes content columns
(text, content, output, etc.) and de-prioritizes system metadata columns
(timestamp, sender, session_id, etc.). Add Clean Output boolean input to
Split Text component that strips metadata columns by default.
* fix: update code_hash for Knowledge Ingestion and Vector Store RAG components
* test: update split text tests for clean_output toggle
* [au…
* feat: Pluggable AuthService with abstract base class (#10702) (#11654) feat(auth): Pluggable AuthService with abstract base class (#10702) * feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery - Added `register_service` decorator to allow services to self-register with the ServiceManager. - Enhanced `ServiceManager` to support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points. - Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management. * feat: Implement VariableService for managing environment variables - Introduced VariableService class to handle environment variables with in-memory caching. - Added methods for getting, setting, deleting, and listing variables. - Included logging for service initialization and variable operations. - Created an __init__.py file to expose VariableService in the package namespace. * feat: Enhance LocalStorageService with Service integration and async teardown - Updated LocalStorageService to inherit from both StorageService and Service for improved functionality. - Added a name attribute for service identification. - Implemented an async teardown method for future extensibility, even though no cleanup is currently needed. - Refactored the constructor to ensure proper initialization of both parent classes. * feat: Implement telemetry service with abstract base class and minimal logging functionality - Added `BaseTelemetryService` as an abstract base class defining the interface for telemetry services. - Introduced `TelemetryService`, a lightweight implementation that logs telemetry events without sending data. - Created `__init__.py` to expose the telemetry service in the package namespace. - Ensured robust async methods for logging various telemetry events and handling exceptions. * feat: Introduce BaseTracingService and implement minimal TracingService - Added `BaseTracingService` as an abstract base class defining the interface for tracing services. - Implemented `TracingService`, a lightweight version that logs trace events without external integrations. - Included async methods for starting and ending traces, tracing components, and managing logs and outputs. - Enhanced documentation for clarity on method usage and parameters. * feat: Add unit tests for service registration decorators - Introduced a new test suite for validating the functionality of the @register_service decorator. - Implemented tests for various service types including LocalStorageService, TelemetryService, and TracingService. - Verified behavior for service registration with and without overrides, ensuring correct service management. - Included tests for custom service implementations and preservation of class functionality. - Enhanced overall test coverage for the service registration mechanism. * feat: Add comprehensive unit and integration tests for ServiceManager - Introduced a suite of unit tests covering edge cases for service registration, lifecycle management, and dependency resolution. - Implemented integration tests to validate service loading from configuration files and environment variables. - Enhanced test coverage for various service types including LocalStorageService, TelemetryService, and VariableService. - Verified behavior for service registration with and without overrides, ensuring correct service management. - Ensured robust handling of error conditions and edge cases in service creation and configuration parsing. * feat: Add unit and integration tests for minimal service implementations - Introduced comprehensive unit tests for LocalStorageService, TelemetryService, TracingService, and VariableService. - Implemented integration tests to validate the interaction between minimal services. - Ensured robust coverage for file operations, service readiness, and exception handling. - Enhanced documentation within tests for clarity on functionality and expected behavior. * docs: Add detailed documentation for pluggable services architecture and usage * feat: Add example configuration file for Langflow services * docs: Update PLUGGABLE_SERVICES.md to enhance architecture benefits section - Revised the documentation to highlight the advantages of the pluggable service system. - Replaced the migration guide with a detailed overview of features such as automatic discovery, lazy instantiation, dependency injection, and lifecycle management. - Clarified examples of service registration and improved overall documentation for better understanding. * [autofix.ci] apply automated fixes * test(services): improve variable service teardown test with public API assertions * docs(pluggable-service-layer): add docstrings for service manager and implementations * fix: remove duplicate teardown method from LocalStorageService During rebase, the teardown method was added in two locations (lines 57 and 220). Removed the duplicate at line 57, keeping the one at the end of the class (line 220) which is the more appropriate location for cleanup methods. * fix(tests): update service tests for LocalStorageService constructor changes - Add MockSessionService fixtures to test files that use ServiceManager - Update LocalStorageService test instantiation to use mock session and settings services - Fix service count assertions to account for MockSessionService in fixtures - Remove duplicate class-level clean_manager fixtures in test_edge_cases.py These changes fix test failures caused by LocalStorageService requiring session_service and settings_service parameters instead of just data_dir. * fix(services): Harden service lifecycle methods - Fixed Diamond Inheritance in LocalStorageService - Added Circular Dependency Detection in _create_service_from_class - Fixed StorageService.teardown to Have Default Implementation * docs: Update discovery order for pluggable services * fix(lfx): replace aiofile with aiofiles for CI compatibility - The aiofile library uses native async I/O (libaio) which fails with EAGAIN (SystemError: 11, 'Resource temporarily unavailable') in containerized environments like GitHub Actions runners. - Switch to aiofiles which uses thread pool executors, providing reliable async file I/O across all environments including containers. * [autofix.ci] apply automated fixes * fix(lfx): prevent race condition in plugin discovery The discover_plugins() method had a TOCTOU (time-of-check to time-of-use) race condition. Since get() uses a keyed lock (per service name), multiple threads requesting different services could concurrently see _plugins_discovered=False and trigger duplicate plugin discovery. Wrap discover_plugins() with self._lock to ensure thread-safe access to the _plugins_discovered flag and prevent concurrent discovery execution. * [autofix.ci] apply automated fixes * feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery - Added `register_service` decorator to allow services to self-register with the ServiceManager. - Enhanced `ServiceManager` to support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points. - Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management. * feat: Enhance LocalStorageService with Service integration and async teardown - Updated LocalStorageService to inherit from both StorageService and Service for improved functionality. - Added a name attribute for service identification. - Implemented an async teardown method for future extensibility, even though no cleanup is currently needed. - Refactored the constructor to ensure proper initialization of both parent classes. * docs(pluggable-service-layer): add docstrings for service manager and implementations * feat(auth): implement abstract base class for authentication services and add auth service retrieval function * refactor(auth): move authentication logic from utils to AuthService Consolidate all authentication methods into the AuthService class to enable pluggable authentication implementations. The utils module now contains thin wrappers that delegate to the registered auth service. This allows alternative auth implementations (e.g., OIDC) to be registered via the pluggable services system while maintaining backward compatibility with existing code that imports from utils. Changes: - Move all auth logic (token creation, user validation, API key security, password hashing, encryption) to AuthService - Refactor utils.py to delegate to get_auth_service() - Update function signatures to remove settings_service parameter (now obtained from the service internally) * refactor(auth): update authentication methods and remove settings_service parameter - Changed function to retrieve current user from access token instead of JWT. - Updated AuthServiceFactory to specify SettingsService type in create method. - Removed settings_service dependency from encryption and decryption functions, simplifying the code. This refactor enhances the clarity and maintainability of the authentication logic. * test(auth): add unit tests for AuthService and pluggable authentication - Introduced comprehensive unit tests for AuthService, covering token creation, user validation, and authentication methods. - Added tests for pluggable authentication, ensuring correct delegation to registered services. - Enhanced test coverage for user authentication scenarios, including active/inactive user checks and token validation. These additions improve the reliability and maintainability of the authentication system. * fix(tests): update test cases to use AuthService and correct user retrieval method - Replaced the mock for retrieving the current user from JWT to access token in the TestSuperuserCommand. - Refactored unit tests for MCP encryption to utilize AuthService instead of a mock settings service, enhancing test reliability. - Updated patch decorators in tests to reflect the new method of obtaining the AuthService, ensuring consistency across test cases. These changes improve the accuracy and maintainability of the authentication tests. * docs(pluggable-services): add auth_service to ServiceType enum documentation * fix(auth): Add missing type hints and abstract methods to AuthServiceBase (#10710) * [autofix.ci] apply automated fixes * fix(auth): refactor api_key_security method to accept optional database session and improve error handling * feat(auth): enhance AuthServiceBase with detailed design principles and JIT provisioning methods * fix(auth): remove settings_service from encrypt/decrypt_api_key calls After the pluggable auth refactor, encrypt_api_key and decrypt_api_key no longer take a settings_service argument - they get it internally. - Update check_key import path in __main__.py (moved to crud module) - Remove settings_service argument from calls in: - api/v1/api_key.py - api/v1/store.py - services/variable/service.py - services/variable/kubernetes.py - Fix auth service to use session_scope() instead of non-existent get_db_service().with_session() * fix(auth): resolve type errors and duplicate definitions in pluggable auth branch - Add missing imports in auth/utils.py (Final, HTTPException, status, logger, SettingsService) that prevented application startup - Remove duplicate NoServiceRegisteredError class in lfx/services/manager.py - Remove duplicate teardown method in lfx/services/storage/local.py - Fix invalid settings_service parameter in encrypt_api_key calls in variable/service.py and variable/kubernetes.py - Add proper type guards for check_key calls to satisfy mypy - Add null checks for password fields in users.py endpoints * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * [autofix.ci] apply automated fixes (attempt 3/3) * [autofix.ci] apply automated fixes * replace jose with pyjwt * [autofix.ci] apply automated fixes * starter projects * fix BE mcp tests * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * remive legacy usage of session * fix user tests * [autofix.ci] apply automated fixes * fix lfx tests * starter project update * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * fix mypy errors * fix mypy errors on tests * fix tests for decrypt_api_key * resolve conflicts in auth utils * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * Add pluggable authentication factory with provider enum * Add SSO feature flags to AuthSettings * Add SSO fields to User model * Add SSO configuration loader with YAML support * Add unit tests for SSO configuration loader * Add SSO configuration database model and CRUD operations * Add CRUD operations for SSO configuration management * Add SSO configuration service supporting both file and database configs * Add example SSO configuration file with W3ID and other providers * Implement OIDC authentication service with discovery and JIT provisioning * Update AuthServiceFactory to instantiate OIDC service when SSO enabled * Improve JWT token validation and API key decryption error handling * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes * fix: resolve ruff linting errors in auth services and add sso-config.yaml to gitignore * [autofix.ci] apply automated fixes * fix: use correct function name get_current_user_from_access_token in login endpoint * fix: remove incorrect settings_service parameter from decrypt_api_key call * fix: correct encryption logic to properly detect plaintext vs encrypted values * [autofix.ci] apply automated fixes * fix tests * [autofix.ci] apply automated fixes * fix mypy errors * fix tests * [autofix.ci] apply automated fixes * fix ruff errors * fix tests in service * [autofix.ci] apply automated fixes * fix test security cors * [autofix.ci] apply automated fixes * fix webhook issues * modify component index * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * [autofix.ci] apply automated fixes (attempt 3/3) * fix webhook tests * [autofix.ci] apply automated fixes * build component index * remove SSO functionality * [autofix.ci] apply automated fixes * fix variable creation * [autofix.ci] apply automated fixes * refactor: move MCPServerConfig schema to a separate file and update model_dump usage * refactor: streamline AuthServiceFactory to use service_class for instance creation * handle access token type * [autofix.ci] apply automated fixes * remove SSO fields from user model * [autofix.ci] apply automated fixes * replace is_encrypted back * fix mypy errors * remove sso config example * feat: Refactor framework agnostic auth service (#11565) * modify auth service layer * [autofix.ci] apply automated fixes * fix ruff errorrs * [autofix.ci] apply automated fixes * Update src/backend/base/langflow/services/deps.py * address review comments * [autofix.ci] apply automated fixes * fix ruff errors * remove cache --------- * move base to lfx * [autofix.ci] apply automated fixes * resolve review comments * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * add auth protocol * [autofix.ci] apply automated fixes * revert models.py execption handling * revert wrappers to ensure backwards compatibility * fix http error code * fix FE tests * fix test_variables.py * [autofix.ci] apply automated fixes * fix ruff errors * fix tests * add wrappers for create token methods * fix ruff errors * [autofix.ci] apply automated fixes * update error message * modify status code for inactive user * fix ruff errors * fix patch for webhook tests * fix error message when getting active users --------- Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Mike Pawlowski <mike.pawlowski@datastax.com> Co-authored-by: Mike Pawlowski <mpawlow@ca.ibm.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: ogabrielluiz <24829397+ogabrielluiz@users.noreply.github.com> Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com> Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com> * fix: adjusted textarea and playground paddings and design (#11635) * revert textarea to old classes * fixed text-area-wrapper to handle initial height when value is calculated * fixed playground padding * fixed no input text size * [autofix.ci] apply automated fixes * fixed flaky test --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * feat: create guardrails component (#11451) (#11671) * Create guardrails.py * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * Update guardrails.py * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * tests: add unit tests for GuardrailsComponent functionality * [autofix.ci] apply automated fixes * fix: resolve linting errors in GuardrailsComponent and tests - Fix line length issues (E501) by breaking long strings - Fix docstring formatting (D205, D415) in _check_guardrail - Use ternary operator for response content extraction (SIM108) - Replace magic value with named constant (PLR2004) - Move return to else block per try/except best practices (TRY300) - Catch specific exceptions instead of blind Exception (BLE001) - Use list comprehension for checks_to_run (PERF401) - Mark unused variables with underscore prefix (RUF059, F841) - Add noqa comment for intentionally unused mock argument (ARG002) * [autofix.ci] apply automated fixes * refactor: address pr comments * [autofix.ci] apply automated fixes (attempt 2/3) * [autofix.ci] apply automated fixes * feat: enhance heuristic detection with configurable threshold and scoring system * refactor: simplify heuristic test assertions by removing unused variable * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * feat: enhance guardrail validation logic and input handling * refactor: streamline import statements and clean up whitespace in guardrails component * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * Fix: update empty input handling tests to raise ValueError and refactor related assertions * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes * feat: add Guardrails component with unit tests Add LLM-based guardrails component for detecting PII, tokens/passwords, jailbreak attempts, and custom guardrail rules, along with comprehensive unit tests. * [autofix.ci] apply automated fixes * fix: try removing logs * [autofix.ci] apply automated fixes --------- Co-authored-by: Lucas Democh <ldgoularte@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: added remove file from file input (#11667) * Implemented dismiss file functionality on input file component * fixed hover behavior * added test for removing file from input * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: make connected inputs not hideable (#11672) * fixed react flow utils to clean advanced edges * Make connected handles not be able to be hidden * Added test for hiding connected handles * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: make tooltip not appear when closing SessionMore (#11703) fix tooltip showing up when closing select * fix(frontend): prevent multiple session menus from stacking in fullscreen mode * [autofix.ci] apply automated fixes * fix(frontend): prevent crash when renaming empty sessions (#11712) * fix(frontend): prevent crash when renaming empty sessions * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix(ci): handle PEP 440 normalized versions in pre-release tag script (#11722) The regex in langflow_pre_release_tag.py expected a dot before `rc` (e.g. `1.8.0.rc0`), but PyPI returns PEP 440-normalized versions without the dot (e.g. `1.8.0rc0`). This caused the script to recompute the same version instead of incrementing, and `uv publish` silently skipped the duplicate upload. Update the regex to accept both formats with `\.?rc`. * fix: align chat history with input field in fullscreen playground (#11725) * fix: align chat history with input field in fullscreen playground * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: Enforce Webhook singleton rule on paste and duplicate (#11692) * fix singleton webhook on flow * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix(frontend): generate unique variable names in Prompt Template Add Variable button (#11723) * fix: generate unique variable names in Prompt Template Add Variable button Previously, clicking the Add Variable button always inserted {variable_name}, causing duplicate text without creating new input fields. Now the button generates incremental names (variable_name, variable_name_1, variable_name_2) by checking existing variables in the template. * refactor: extract generateUniqueVariableName and import in tests Extract the variable name generation logic into an exported function so tests can import and validate the actual production code instead of testing a duplicated copy of the logic. * FIX: Broken Connection Edge Rendering in YouTube Analysis Template (#11709) add edge between components Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> * fix: synchronize prompt state, add new mustache prompt component (#11702) * Update state when exiting modal on accordion prompt component * Added isDoubleBrackets and show correct modal and use correct brackets when mustache is enabled * [autofix.ci] apply automated fixes * added test to see if state is synchronized and mustache is enabled * [autofix.ci] apply automated fixes * updated mustache id and removed extra prompt call * [autofix.ci] apply automated fixes --------- 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> * fix(frontend): add Safari-specific padding for playground chat messages (#11720) * fix(frontend): add Safari-specific padding for playground chat messages * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: correctly pass headers in mcp stdio connections (#11746) * fix: parse dicts from tweaks (#11753) * Correctly parse dicts from tweaks * Add test * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: sessions overflow issue (#11739) fix: sessions overflow issue * feat: playground UI fixes, inspector improvements & canvas reorganization (#11751) * merge fix * code improvements * [autofix.ci] apply automated fixes * add stop button and fix scroll on message * [autofix.ci] apply automated fixes * add new message content for sharable pg * fix tests until shard 43 * [autofix.ci] apply automated fixes * fix(frontend): clean up MemoizedSidebarTrigger imports and transition classes Sort imports, add type modifier to AllNodeType import, and split long transition class string for readability. * fix tests * [autofix.ci] apply automated fixes * fix mr test * fix jest tests * fix sidebar jest tes * [autofix.ci] apply automated fixes * fix sharable playground * [autofix.ci] apply automated fixes * remove rename from sharable pg * [autofix.ci] apply automated fixes * add new message content for sharable pg * fix: synchronize prompt state, add new mustache prompt component (#11702) * Update state when exiting modal on accordion prompt component * Added isDoubleBrackets and show correct modal and use correct brackets when mustache is enabled * [autofix.ci] apply automated fixes * added test to see if state is synchronized and mustache is enabled * [autofix.ci] apply automated fixes * updated mustache id and removed extra prompt call * [autofix.ci] apply automated fixes --------- 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> * fix(frontend): add Safari-specific padding for playground chat messages (#11720) * fix(frontend): add Safari-specific padding for playground chat messages * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: correctly pass headers in mcp stdio connections (#11746) * fix sharable playground * [autofix.ci] apply automated fixes * remove rename from sharable pg * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes * fix sharable playground * fix mcp server to use shell lexer * [autofix.ci] apply automated fixes * fix tests * fix outaded component tests --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com> Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com> Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: keval shah <kevalvirat@gmail.com> Co-authored-by: Jordan Frazier <122494242+jordanrfrazier@users.noreply.github.com> * fix: correct field_order in all starter project JSON templates (#11727) * fix: correct field_order in all starter project JSON templates The field_order arrays in starter project nodes were out of sync with the actual input definitions in the Python component source files, causing parameters to display in the wrong order in the UI. Fixed 136 nodes across 32 starter project files including Chat Input, Chat Output, Language Model, Agent, Prompt Template, Text Input, Tavily AI Search, Read File, Embedding Model, and others. * test: add field_order validation test for starter projects Verifies that field_order arrays in starter project JSONs match the actual component input order by importing each component and comparing the relative ordering of fields. * fix mcp server to use shell lexer * [autofix.ci] apply automated fixes * fix: enforce full field_order in starter projects and add node overlap test Update all starter project JSONs to include the complete component field_order instead of a subset, preventing layout inconsistency between template and sidebar. Strengthen the field_order test to require an exact match and add a new test that verifies no two generic nodes overlap on the canvas. --------- Co-authored-by: cristhianzl <cristhian.lousa@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: dict tweak parsing (#11756) * Fix dict handling of different formats * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes (attempt 2/3) * [autofix.ci] apply automated fixes (attempt 3/3) * cmp index * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * Fix: The Prompt component has responsiveness issues (#11713) improve styling of templete input Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> * clear session on delete chat * fix(api): prevent users from deactivating their own account (#11736) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710) * move chat input arround for travel json starter template * improve the layout of the component * fix layout --------- Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> * fix: Google Generative AI model catalog update (#11735) * fix: Filter out MCP and models_and_agents categories and MCPTools component from sidebar (#11513) * fix: hide MCP tool from model & agent * fix: removing mcp searching * fix testcases * fix testcases --------- Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com> * fix: Fix flaky Market Research test timeout on CI (#11665) * add wait for statement to prevent race condition * fix flaky global variable * add input selection * [autofix.ci] apply automated fixes * add disable inspect panel util * [autofix.ci] apply automated fixes * fix vector store test * [autofix.ci] apply automated fixes * use disable inspect pannel utils --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * ci: make docs deployment manual-only (#11602) feat: update GitHub Actions workflow to allow manual branch selection for docs deployment * fix: handle missing capabilities in Ollama API response (#11603) * fix: handle missing capabilities in Ollama API response Older Ollama versions don't return the `capabilities` field from `/api/show`. The previous code defaulted to an empty list and required "completion" capability, filtering out all models. Now we treat missing capabilities as backwards-compatible: assume the model supports completion unless tool_model_enabled is True (where we can't verify tool support without the capabilities field). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * [autofix.ci] apply automated fixes * test: add test cases for Ollama backwards compatibility fix Add tests for get_models handling of missing capabilities field: - test_get_models_missing_capabilities_without_tool_model - test_get_models_missing_capabilities_with_tool_model - test_get_models_mixed_capabilities_response Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * [autofix.ci] apply automated fixes * fix: wrap long docstring line to satisfy ruff E501 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * docs: draft hide internal endpoints in spec (#11469) * test-hide-internal-endpoints * hide-more-endpoints * display-mcp-endpoints * display-mcp-projects * add-back-health-check --------- Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com> * feat: update opensearch component with raw search component (#11491) * Update opensearch_multimodal.py * [autofix.ci] apply automated fixes * Update opensearch_multimodal.py * Skip existing knn_vector mapping & handle errors Before adding a knn_vector field mapping, check the index properties and skip updating if the field already exists (and warn if dimensions differ). Attempt to add the mapping only when missing, and catch failures from the OpenSearch k-NN plugin (e.g. NullPointerException); in that known case log a warning and skip the mapping update instead of failing hard. After adding, verify the field is mapped as knn_vector and raise an error if it is not. Also adjusts logging messages to be clearer. --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix(test): Skip Tavily API key fill when global variable is loaded (#11733) * update Google models * [autofix.ci] apply automated fixes * update tests * mark deprecated * build component index * [autofix.ci] apply automated fixes --------- Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com> Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai> Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com> Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com> Co-authored-by: Edwin Jose <edwin.jose@datastax.com> * fix: mock clearSessionMessages (#11776) * fix: mock clearSessionMessages to prevent flowStore.getState error in test Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * [autofix.ci] apply automated fixes --------- Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: Misleading Empty State when no Folders (#11728) * fix: Misleading Empty State when no Folders now once all folders are deleted we show the default create first flow state * [autofix.ci] apply automated fixes * fix(api): prevent users from deactivating their own account (#11736) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710) * move chat input arround for travel json starter template * improve the layout of the component * fix layout --------- Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> --------- Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> * fix: Resolve Windows PostgreSQL event loop incompatibility (#11767) * fix windows integrations with postgres * add documentation * cross platform validation * [autofix.ci] apply automated fixes * ruff style and checker * fix import ruff --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: Legacy "Store" Reference in Flows Empty State (#11721) * fix: Legacy "Store" Reference in Flows Empty State on delete propigate changes to useFlowsManagerStore to cause re-render in HomePage * test: fix shard 45 flaky mcp test Hopefully fix [WebServer] bash: line 1: exec: uvx mcp-server-fetch: not found * [autofix.ci] apply automated fixes * fix(api): prevent users from deactivating their own account (#11736) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710) * move chat input arround for travel json starter template * improve the layout of the component * fix layout --------- Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> --------- Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> * Fix: UI Bug: "Lock Flow" Toggle in Export Modal is Non-Functional (#11724) * fix locked component during export * added locked flag to flow doc * new testcases * [autofix.ci] apply automated fixes * [autofix.ci] apply automated fixes --------- Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: dropdown delete icon hover visibility (#11774) fix hidden delete button Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> * fix: resolve Safari scroll jitter in playground chat views (#11769) * fix: resolve Safari scroll jitter in playground chat views Switch StickToBottom resize mode to instant and add a Safari-specific scroll fix that prevents unnatural jumps while preserving stick-to-bottom behavior. * [autofix.ci] apply automated fixes * fix: add useStickToBottomContext mock to shareable playground tests * refactor: improve SafariScrollFix reliability and maintainability - Split into guard/inner components to avoid hooks on non-Safari browsers - Extract magic numbers into named constants with documentation - Convert touchStartY closure variable to useRef for proper session scoping - Remove stopScrollRef indirection, use stopScroll directly in effect deps Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: mock clearSessionMessages to prevent flowStore.getState error in test Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * fix: Obsolete "Component Share" shortcut listed in Shortcuts menu (#11775) remove component share from doc Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> * fix(frontend): add UI feedback for self-deactivation prevention (#11772) * fix(frontend): add UI feedback for self-deactivation prevention Disable the Active checkbox with a tooltip when users try to deactivate their own account. This provides clear UI feedback instead of relying solely on the backend 403 error. Protection is added in both the Admin page table view and the user edit modal. * [autofix.ci] apply automated fixes * fix: mock clearSessionMessages to prevent flowStore.getState error in test --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com> * fix(frontend): preserve sticky note dimensions when importing via canvas drop (#11770) * fix(frontend): preserve sticky note dimensions when importing via canvas drop When dragging a JSON file onto the canvas, the paste function now preserves width and height properties from the original nodes, ensuring sticky notes retain their custom dimensions. * [autofix.ci] apply automated fixes * fix: mock clearSessionMessages to prevent flowStore.getState error in test --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com> * rollback playground, inspection panel and shareable playground * fix: Close button auto-focus creates visual distraction in SaveChanges and FlowLogs modal (#11763) fix autofocus on close button Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> * fix: Outdated Instructional Notes and Provider-Specific Branding (#11680) * fix: improved note guide for language models nots and Need search * missing starter projects added * ensured main flows fit are of standard * [autofix.ci] apply automated fixes --------- Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix(frontend): synchronize Prompt Template input fields on bracket mode toggle (#11777) * fix(frontend): synchronize Prompt Template input fields on bracket mode toggle * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix(frontend): prevent deleted session messages from reappearing in new session (#11801) * fix(frontend): prevent deleted session messages from reappearing in new sessions * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * chore: add secert base update * chore: regenerate package-lock.json * fix: add clean_output to field_order in SplitText starter project templates (#11842) --------- Co-authored-by: Himavarsha <40851462+HimavarshaVS@users.noreply.github.com> Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Mike Pawlowski <mike.pawlowski@datastax.com> Co-authored-by: Mike Pawlowski <mpawlow@ca.ibm.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: ogabrielluiz <24829397+ogabrielluiz@users.noreply.github.com> Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com> Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com> Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com> Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com> Co-authored-by: Lucas Democh <ldgoularte@gmail.com> Co-authored-by: Keval718 <kevalvirat@gmail.com> Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com> Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com> Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local> Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com> Co-authored-by: Jordan Frazier <122494242+jordanrfrazier@users.noreply.github.com> Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com> Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com> Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com> Co-authored-by: Edwin Jose <edwin.jose@datastax.com> Co-authored-by: Adam-Aghili <149833988+Adam-Aghili@users.noreply.github.com> Co-authored-by: Adam Aghili <Adam.Aghili@ibm.com>
* feat: Pluggable AuthService with abstract base class (#10702) (#11654)
feat(auth): Pluggable AuthService with abstract base class (#10702)
* feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery
- Added `register_service` decorator to allow services to self-register with the ServiceManager.
- Enhanced `ServiceManager` to support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points.
- Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management.
* feat: Implement VariableService for managing environment variables
- Introduced VariableService class to handle environment variables with in-memory caching.
- Added methods for getting, setting, deleting, and listing variables.
- Included logging for service initialization and variable operations.
- Created an __init__.py file to expose VariableService in the package namespace.
* feat: Enhance LocalStorageService with Service integration and async teardown
- Updated LocalStorageService to inherit from both StorageService and Service for improved functionality.
- Added a name attribute for service identification.
- Implemented an async teardown method for future extensibility, even though no cleanup is currently needed.
- Refactored the constructor to ensure proper initialization of both parent classes.
* feat: Implement telemetry service with abstract base class and minimal logging functionality
- Added `BaseTelemetryService` as an abstract base class defining the interface for telemetry services.
- Introduced `TelemetryService`, a lightweight implementation that logs telemetry events without sending data.
- Created `__init__.py` to expose the telemetry service in the package namespace.
- Ensured robust async methods for logging various telemetry events and handling exceptions.
* feat: Introduce BaseTracingService and implement minimal TracingService
- Added `BaseTracingService` as an abstract base class defining the interface for tracing services.
- Implemented `TracingService`, a lightweight version that logs trace events without external integrations.
- Included async methods for starting and ending traces, tracing components, and managing logs and outputs.
- Enhanced documentation for clarity on method usage and parameters.
* feat: Add unit tests for service registration decorators
- Introduced a new test suite for validating the functionality of the @register_service decorator.
- Implemented tests for various service types including LocalStorageService, TelemetryService, and TracingService.
- Verified behavior for service registration with and without overrides, ensuring correct service management.
- Included tests for custom service implementations and preservation of class functionality.
- Enhanced overall test coverage for the service registration mechanism.
* feat: Add comprehensive unit and integration tests for ServiceManager
- Introduced a suite of unit tests covering edge cases for service registration, lifecycle management, and dependency resolution.
- Implemented integration tests to validate service loading from configuration files and environment variables.
- Enhanced test coverage for various service types including LocalStorageService, TelemetryService, and VariableService.
- Verified behavior for service registration with and without overrides, ensuring correct service management.
- Ensured robust handling of error conditions and edge cases in service creation and configuration parsing.
* feat: Add unit and integration tests for minimal service implementations
- Introduced comprehensive unit tests for LocalStorageService, TelemetryService, TracingService, and VariableService.
- Implemented integration tests to validate the interaction between minimal services.
- Ensured robust coverage for file operations, service readiness, and exception handling.
- Enhanced documentation within tests for clarity on functionality and expected behavior.
* docs: Add detailed documentation for pluggable services architecture and usage
* feat: Add example configuration file for Langflow services
* docs: Update PLUGGABLE_SERVICES.md to enhance architecture benefits section
- Revised the documentation to highlight the advantages of the pluggable service system.
- Replaced the migration guide with a detailed overview of features such as automatic discovery, lazy instantiation, dependency injection, and lifecycle management.
- Clarified examples of service registration and improved overall documentation for better understanding.
* [autofix.ci] apply automated fixes
* test(services): improve variable service teardown test with public API assertions
* docs(pluggable-service-layer): add docstrings for service manager and implementations
* fix: remove duplicate teardown method from LocalStorageService
During rebase, the teardown method was added in two locations (lines 57 and 220).
Removed the duplicate at line 57, keeping the one at the end of the class (line 220)
which is the more appropriate location for cleanup methods.
* fix(tests): update service tests for LocalStorageService constructor changes
- Add MockSessionService fixtures to test files that use ServiceManager
- Update LocalStorageService test instantiation to use mock session and settings services
- Fix service count assertions to account for MockSessionService in fixtures
- Remove duplicate class-level clean_manager fixtures in test_edge_cases.py
These changes fix test failures caused by LocalStorageService requiring
session_service and settings_service parameters instead of just data_dir.
* fix(services): Harden service lifecycle methods
- Fixed Diamond Inheritance in LocalStorageService
- Added Circular Dependency Detection in _create_service_from_class
- Fixed StorageService.teardown to Have Default Implementation
* docs: Update discovery order for pluggable services
* fix(lfx): replace aiofile with aiofiles for CI compatibility
- The aiofile library uses native async I/O (libaio) which fails with
EAGAIN (SystemError: 11, 'Resource temporarily unavailable') in
containerized environments like GitHub Actions runners.
- Switch to aiofiles which uses thread pool executors, providing reliable
async file I/O across all environments including containers.
* [autofix.ci] apply automated fixes
* fix(lfx): prevent race condition in plugin discovery
The discover_plugins() method had a TOCTOU (time-of-check to time-of-use)
race condition. Since get() uses a keyed lock (per service name), multiple
threads requesting different services could concurrently see
_plugins_discovered=False and trigger duplicate plugin discovery.
Wrap discover_plugins() with self._lock to ensure thread-safe access to
the _plugins_discovered flag and prevent concurrent discovery execution.
* [autofix.ci] apply automated fixes
* feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery
- Added `register_service` decorator to allow services to self-register with the ServiceManager.
- Enhanced `ServiceManager` to support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points.
- Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management.
* feat: Enhance LocalStorageService with Service integration and async teardown
- Updated LocalStorageService to inherit from both StorageService and Service for improved functionality.
- Added a name attribute for service identification.
- Implemented an async teardown method for future extensibility, even though no cleanup is currently needed.
- Refactored the constructor to ensure proper initialization of both parent classes.
* docs(pluggable-service-layer): add docstrings for service manager and implementations
* feat(auth): implement abstract base class for authentication services and add auth service retrieval function
* refactor(auth): move authentication logic from utils to AuthService
Consolidate all authentication methods into the AuthService class to
enable pluggable authentication implementations. The utils module now
contains thin wrappers that delegate to the registered auth service.
This allows alternative auth implementations (e.g., OIDC) to be
registered via the pluggable services system while maintaining
backward compatibility with existing code that imports from utils.
Changes:
- Move all auth logic (token creation, user validation, API key
security, password hashing, encryption) to AuthService
- Refactor utils.py to delegate to get_auth_service()
- Update function signatures to remove settings_service parameter
(now obtained from the service internally)
* refactor(auth): update authentication methods and remove settings_service parameter
- Changed function to retrieve current user from access token instead of JWT.
- Updated AuthServiceFactory to specify SettingsService type in create method.
- Removed settings_service dependency from encryption and decryption functions, simplifying the code.
This refactor enhances the clarity and maintainability of the authentication logic.
* test(auth): add unit tests for AuthService and pluggable authentication
- Introduced comprehensive unit tests for AuthService, covering token creation, user validation, and authentication methods.
- Added tests for pluggable authentication, ensuring correct delegation to registered services.
- Enhanced test coverage for user authentication scenarios, including active/inactive user checks and token validation.
These additions improve the reliability and maintainability of the authentication system.
* fix(tests): update test cases to use AuthService and correct user retrieval method
- Replaced the mock for retrieving the current user from JWT to access token in the TestSuperuserCommand.
- Refactored unit tests for MCP encryption to utilize AuthService instead of a mock settings service, enhancing test reliability.
- Updated patch decorators in tests to reflect the new method of obtaining the AuthService, ensuring consistency across test cases.
These changes improve the accuracy and maintainability of the authentication tests.
* docs(pluggable-services): add auth_service to ServiceType enum documentation
* fix(auth): Add missing type hints and abstract methods to AuthServiceBase (#10710)
* [autofix.ci] apply automated fixes
* fix(auth): refactor api_key_security method to accept optional database session and improve error handling
* feat(auth): enhance AuthServiceBase with detailed design principles and JIT provisioning methods
* fix(auth): remove settings_service from encrypt/decrypt_api_key calls
After the pluggable auth refactor, encrypt_api_key and decrypt_api_key
no longer take a settings_service argument - they get it internally.
- Update check_key import path in __main__.py (moved to crud module)
- Remove settings_service argument from calls in:
- api/v1/api_key.py
- api/v1/store.py
- services/variable/service.py
- services/variable/kubernetes.py
- Fix auth service to use session_scope() instead of non-existent
get_db_service().with_session()
* fix(auth): resolve type errors and duplicate definitions in pluggable auth branch
- Add missing imports in auth/utils.py (Final, HTTPException, status,
logger, SettingsService) that prevented application startup
- Remove duplicate NoServiceRegisteredError class in lfx/services/manager.py
- Remove duplicate teardown method in lfx/services/storage/local.py
- Fix invalid settings_service parameter in encrypt_api_key calls
in variable/service.py and variable/kubernetes.py
- Add proper type guards for check_key calls to satisfy mypy
- Add null checks for password fields in users.py endpoints
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* [autofix.ci] apply automated fixes
* replace jose with pyjwt
* [autofix.ci] apply automated fixes
* starter projects
* fix BE mcp tests
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* remive legacy usage of session
* fix user tests
* [autofix.ci] apply automated fixes
* fix lfx tests
* starter project update
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix mypy errors
* fix mypy errors on tests
* fix tests for decrypt_api_key
* resolve conflicts in auth utils
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Add pluggable authentication factory with provider enum
* Add SSO feature flags to AuthSettings
* Add SSO fields to User model
* Add SSO configuration loader with YAML support
* Add unit tests for SSO configuration loader
* Add SSO configuration database model and CRUD operations
* Add CRUD operations for SSO configuration management
* Add SSO configuration service supporting both file and database configs
* Add example SSO configuration file with W3ID and other providers
* Implement OIDC authentication service with discovery and JIT provisioning
* Update AuthServiceFactory to instantiate OIDC service when SSO enabled
* Improve JWT token validation and API key decryption error handling
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix: resolve ruff linting errors in auth services and add sso-config.yaml to gitignore
* [autofix.ci] apply automated fixes
* fix: use correct function name get_current_user_from_access_token in login endpoint
* fix: remove incorrect settings_service parameter from decrypt_api_key call
* fix: correct encryption logic to properly detect plaintext vs encrypted values
* [autofix.ci] apply automated fixes
* fix tests
* [autofix.ci] apply automated fixes
* fix mypy errors
* fix tests
* [autofix.ci] apply automated fixes
* fix ruff errors
* fix tests in service
* [autofix.ci] apply automated fixes
* fix test security cors
* [autofix.ci] apply automated fixes
* fix webhook issues
* modify component index
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* fix webhook tests
* [autofix.ci] apply automated fixes
* build component index
* remove SSO functionality
* [autofix.ci] apply automated fixes
* fix variable creation
* [autofix.ci] apply automated fixes
* refactor: move MCPServerConfig schema to a separate file and update model_dump usage
* refactor: streamline AuthServiceFactory to use service_class for instance creation
* handle access token type
* [autofix.ci] apply automated fixes
* remove SSO fields from user model
* [autofix.ci] apply automated fixes
* replace is_encrypted back
* fix mypy errors
* remove sso config example
* feat: Refactor framework agnostic auth service (#11565)
* modify auth service layer
* [autofix.ci] apply automated fixes
* fix ruff errorrs
* [autofix.ci] apply automated fixes
* Update src/backend/base/langflow/services/deps.py
* address review comments
* [autofix.ci] apply automated fixes
* fix ruff errors
* remove cache
---------
* move base to lfx
* [autofix.ci] apply automated fixes
* resolve review comments
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* add auth protocol
* [autofix.ci] apply automated fixes
* revert models.py execption handling
* revert wrappers to ensure backwards compatibility
* fix http error code
* fix FE tests
* fix test_variables.py
* [autofix.ci] apply automated fixes
* fix ruff errors
* fix tests
* add wrappers for create token methods
* fix ruff errors
* [autofix.ci] apply automated fixes
* update error message
* modify status code for inactive user
* fix ruff errors
* fix patch for webhook tests
* fix error message when getting active users
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Mike Pawlowski <mike.pawlowski@datastax.com>
Co-authored-by: Mike Pawlowski <mpawlow@ca.ibm.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ogabrielluiz <24829397+ogabrielluiz@users.noreply.github.com>
Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* fix: adjusted textarea and playground paddings and design (#11635)
* revert textarea to old classes
* fixed text-area-wrapper to handle initial height when value is calculated
* fixed playground padding
* fixed no input text size
* [autofix.ci] apply automated fixes
* fixed flaky test
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: create guardrails component (#11451) (#11671)
* Create guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Update guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* tests: add unit tests for GuardrailsComponent functionality
* [autofix.ci] apply automated fixes
* fix: resolve linting errors in GuardrailsComponent and tests
- Fix line length issues (E501) by breaking long strings
- Fix docstring formatting (D205, D415) in _check_guardrail
- Use ternary operator for response content extraction (SIM108)
- Replace magic value with named constant (PLR2004)
- Move return to else block per try/except best practices (TRY300)
- Catch specific exceptions instead of blind Exception (BLE001)
- Use list comprehension for checks_to_run (PERF401)
- Mark unused variables with underscore prefix (RUF059, F841)
- Add noqa comment for intentionally unused mock argument (ARG002)
* [autofix.ci] apply automated fixes
* refactor: address pr comments
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes
* feat: enhance heuristic detection with configurable threshold and scoring system
* refactor: simplify heuristic test assertions by removing unused variable
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* feat: enhance guardrail validation logic and input handling
* refactor: streamline import statements and clean up whitespace in guardrails component
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Fix: update empty input handling tests to raise ValueError and refactor related assertions
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* feat: add Guardrails component with unit tests
Add LLM-based guardrails component for detecting PII, tokens/passwords,
jailbreak attempts, and custom guardrail rules, along with comprehensive
unit tests.
* [autofix.ci] apply automated fixes
* fix: try removing logs
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Lucas Democh <ldgoularte@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: added remove file from file input (#11667)
* Implemented dismiss file functionality on input file component
* fixed hover behavior
* added test for removing file from input
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: make connected inputs not hideable (#11672)
* fixed react flow utils to clean advanced edges
* Make connected handles not be able to be hidden
* Added test for hiding connected handles
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: make tooltip not appear when closing SessionMore (#11703)
fix tooltip showing up when closing select
* fix(frontend): prevent multiple session menus from stacking in fullscreen mode
* [autofix.ci] apply automated fixes
* fix(frontend): prevent crash when renaming empty sessions (#11712)
* fix(frontend): prevent crash when renaming empty sessions
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(ci): handle PEP 440 normalized versions in pre-release tag script (#11722)
The regex in langflow_pre_release_tag.py expected a dot before `rc`
(e.g. `1.8.0.rc0`), but PyPI returns PEP 440-normalized versions
without the dot (e.g. `1.8.0rc0`). This caused the script to recompute
the same version instead of incrementing, and `uv publish` silently
skipped the duplicate upload.
Update the regex to accept both formats with `\.?rc`.
* fix: align chat history with input field in fullscreen playground (#11725)
* fix: align chat history with input field in fullscreen playground
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: Enforce Webhook singleton rule on paste and duplicate (#11692)
* fix singleton webhook on flow
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(frontend): generate unique variable names in Prompt Template Add Variable button (#11723)
* fix: generate unique variable names in Prompt Template Add Variable button
Previously, clicking the Add Variable button always inserted {variable_name},
causing duplicate text without creating new input fields. Now the button
generates incremental names (variable_name, variable_name_1, variable_name_2)
by checking existing variables in the template.
* refactor: extract generateUniqueVariableName and import in tests
Extract the variable name generation logic into an exported function
so tests can import and validate the actual production code instead
of testing a duplicated copy of the logic.
* FIX: Broken Connection Edge Rendering in YouTube Analysis Template (#11709)
add edge between components
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix: synchronize prompt state, add new mustache prompt component (#11702)
* Update state when exiting modal on accordion prompt component
* Added isDoubleBrackets and show correct modal and use correct brackets when mustache is enabled
* [autofix.ci] apply automated fixes
* added test to see if state is synchronized and mustache is enabled
* [autofix.ci] apply automated fixes
* updated mustache id and removed extra prompt call
* [autofix.ci] apply automated fixes
---------
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>
* fix(frontend): add Safari-specific padding for playground chat messages (#11720)
* fix(frontend): add Safari-specific padding for playground chat messages
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: correctly pass headers in mcp stdio connections (#11746)
* fix: parse dicts from tweaks (#11753)
* Correctly parse dicts from tweaks
* Add test
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: sessions overflow issue (#11739)
fix: sessions overflow issue
* feat: playground UI fixes, inspector improvements & canvas reorganization (#11751)
* merge fix
* code improvements
* [autofix.ci] apply automated fixes
* add stop button and fix scroll on message
* [autofix.ci] apply automated fixes
* add new message content for sharable pg
* fix tests until shard 43
* [autofix.ci] apply automated fixes
* fix(frontend): clean up MemoizedSidebarTrigger imports and transition classes
Sort imports, add type modifier to AllNodeType import, and split long transition class string for readability.
* fix tests
* [autofix.ci] apply automated fixes
* fix mr test
* fix jest tests
* fix sidebar jest tes
* [autofix.ci] apply automated fixes
* fix sharable playground
* [autofix.ci] apply automated fixes
* remove rename from sharable pg
* [autofix.ci] apply automated fixes
* add new message content for sharable pg
* fix: synchronize prompt state, add new mustache prompt component (#11702)
* Update state when exiting modal on accordion prompt component
* Added isDoubleBrackets and show correct modal and use correct brackets when mustache is enabled
* [autofix.ci] apply automated fixes
* added test to see if state is synchronized and mustache is enabled
* [autofix.ci] apply automated fixes
* updated mustache id and removed extra prompt call
* [autofix.ci] apply automated fixes
---------
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>
* fix(frontend): add Safari-specific padding for playground chat messages (#11720)
* fix(frontend): add Safari-specific padding for playground chat messages
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: correctly pass headers in mcp stdio connections (#11746)
* fix sharable playground
* [autofix.ci] apply automated fixes
* remove rename from sharable pg
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix sharable playground
* fix mcp server to use shell lexer
* [autofix.ci] apply automated fixes
* fix tests
* fix outaded component tests
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: keval shah <kevalvirat@gmail.com>
Co-authored-by: Jordan Frazier <122494242+jordanrfrazier@users.noreply.github.com>
* fix: correct field_order in all starter project JSON templates (#11727)
* fix: correct field_order in all starter project JSON templates
The field_order arrays in starter project nodes were out of sync with
the actual input definitions in the Python component source files,
causing parameters to display in the wrong order in the UI.
Fixed 136 nodes across 32 starter project files including Chat Input,
Chat Output, Language Model, Agent, Prompt Template, Text Input,
Tavily AI Search, Read File, Embedding Model, and others.
* test: add field_order validation test for starter projects
Verifies that field_order arrays in starter project JSONs match the
actual component input order by importing each component and comparing
the relative ordering of fields.
* fix mcp server to use shell lexer
* [autofix.ci] apply automated fixes
* fix: enforce full field_order in starter projects and add node overlap test
Update all starter project JSONs to include the complete component
field_order instead of a subset, preventing layout inconsistency
between template and sidebar. Strengthen the field_order test to
require an exact match and add a new test that verifies no two
generic nodes overlap on the canvas.
---------
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: dict tweak parsing (#11756)
* Fix dict handling of different formats
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* cmp index
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Fix: The Prompt component has responsiveness issues (#11713)
improve styling of templete input
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* clear session on delete chat
* fix(api): prevent users from deactivating their own account (#11736)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710)
* move chat input arround for travel json starter template
* improve the layout of the component
* fix layout
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix: Google Generative AI model catalog update (#11735)
* fix: Filter out MCP and models_and_agents categories and MCPTools component from sidebar (#11513)
* fix: hide MCP tool from model & agent
* fix: removing mcp searching
* fix testcases
* fix testcases
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
* fix: Fix flaky Market Research test timeout on CI (#11665)
* add wait for statement to prevent race condition
* fix flaky global variable
* add input selection
* [autofix.ci] apply automated fixes
* add disable inspect panel util
* [autofix.ci] apply automated fixes
* fix vector store test
* [autofix.ci] apply automated fixes
* use disable inspect pannel utils
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ci: make docs deployment manual-only (#11602)
feat: update GitHub Actions workflow to allow manual branch selection for docs deployment
* fix: handle missing capabilities in Ollama API response (#11603)
* fix: handle missing capabilities in Ollama API response
Older Ollama versions don't return the `capabilities` field from
`/api/show`. The previous code defaulted to an empty list and required
"completion" capability, filtering out all models.
Now we treat missing capabilities as backwards-compatible: assume the
model supports completion unless tool_model_enabled is True (where we
can't verify tool support without the capabilities field).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* test: add test cases for Ollama backwards compatibility fix
Add tests for get_models handling of missing capabilities field:
- test_get_models_missing_capabilities_without_tool_model
- test_get_models_missing_capabilities_with_tool_model
- test_get_models_mixed_capabilities_response
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* fix: wrap long docstring line to satisfy ruff E501
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* docs: draft hide internal endpoints in spec (#11469)
* test-hide-internal-endpoints
* hide-more-endpoints
* display-mcp-endpoints
* display-mcp-projects
* add-back-health-check
---------
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
* feat: update opensearch component with raw search component (#11491)
* Update opensearch_multimodal.py
* [autofix.ci] apply automated fixes
* Update opensearch_multimodal.py
* Skip existing knn_vector mapping & handle errors
Before adding a knn_vector field mapping, check the index properties and skip updating if the field already exists (and warn if dimensions differ). Attempt to add the mapping only when missing, and catch failures from the OpenSearch k-NN plugin (e.g. NullPointerException); in that known case log a warning and skip the mapping update instead of failing hard. After adding, verify the field is mapped as knn_vector and raise an error if it is not. Also adjusts logging messages to be clearer.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): Skip Tavily API key fill when global variable is loaded (#11733)
* update Google models
* [autofix.ci] apply automated fixes
* update tests
* mark deprecated
* build component index
* [autofix.ci] apply automated fixes
---------
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* fix: mock clearSessionMessages (#11776)
* fix: mock clearSessionMessages to prevent flowStore.getState error in test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* update build config
* [autofix.ci] apply automated fixes
* fix ruff errors
* [autofix.ci] apply automated fixes
* address review comments
* feat: create guardrails component (#11451)
* Create guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Update guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* tests: add unit tests for GuardrailsComponent functionality
* [autofix.ci] apply automated fixes
* fix: resolve linting errors in GuardrailsComponent and tests
- Fix line length issues (E501) by breaking long strings
- Fix docstring formatting (D205, D415) in _check_guardrail
- Use ternary operator for response content extraction (SIM108)
- Replace magic value with named constant (PLR2004)
- Move return to else block per try/except best practices (TRY300)
- Catch specific exceptions instead of blind Exception (BLE001)
- Use list comprehension for checks_to_run (PERF401)
- Mark unused variables with underscore prefix (RUF059, F841)
- Add noqa comment for intentionally unused mock argument (ARG002)
* [autofix.ci] apply automated fixes
* refactor: address pr comments
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes
* feat: enhance heuristic detection with configurable threshold and scoring system
* refactor: simplify heuristic test assertions by removing unused variable
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* feat: enhance guardrail validation logic and input handling
* refactor: streamline import statements and clean up whitespace in guardrails component
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Fix: update empty input handling tests to raise ValueError and refactor related assertions
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* feat: add Guardrails component with unit tests
Add LLM-based guardrails component for detecting PII, tokens/passwords,
jailbreak attempts, and custom guardrail rules, along with comprehensive
unit tests.
* [autofix.ci] apply automated fixes
* fix: try removing logs
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
* fix: Filter out MCP and models_and_agents categories and MCPTools component from sidebar (#11513)
* fix: hide MCP tool from model & agent
* fix: removing mcp searching
* fix testcases
* fix testcases
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
* fix: Fix flaky Market Research test timeout on CI (#11665)
* add wait for statement to prevent race condition
* fix flaky global variable
* add input selection
* [autofix.ci] apply automated fixes
* add disable inspect panel util
* [autofix.ci] apply automated fixes
* fix vector store test
* [autofix.ci] apply automated fixes
* use disable inspect pannel utils
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ci: make docs deployment manual-only (#11602)
feat: update GitHub Actions workflow to allow manual branch selection for docs deployment
* fix: handle missing capabilities in Ollama API response (#11603)
* fix: handle missing capabilities in Ollama API response
Older Ollama versions don't return the `capabilities` field from
`/api/show`. The previous code defaulted to an empty list and required
"completion" capability, filtering out all models.
Now we treat missing capabilities as backwards-compatible: assume the
model supports completion unless tool_model_enabled is True (where we
can't verify tool support without the capabilities field).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* test: add test cases for Ollama backwards compatibility fix
Add tests for get_models handling of missing capabilities field:
- test_get_models_missing_capabilities_without_tool_model
- test_get_models_missing_capabilities_with_tool_model
- test_get_models_mixed_capabilities_response
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* fix: wrap long docstring line to satisfy ruff E501
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* docs: draft hide internal endpoints in spec (#11469)
* test-hide-internal-endpoints
* hide-more-endpoints
* display-mcp-endpoints
* display-mcp-projects
* add-back-health-check
---------
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
* feat: update opensearch component with raw search component (#11491)
* Update opensearch_multimodal.py
* [autofix.ci] apply automated fixes
* Update opensearch_multimodal.py
* Skip existing knn_vector mapping & handle errors
Before adding a knn_vector field mapping, check the index properties and skip updating if the field already exists (and warn if dimensions differ). Attempt to add the mapping only when missing, and catch failures from the OpenSearch k-NN plugin (e.g. NullPointerException); in that known case log a warning and skip the mapping update instead of failing hard. After adding, verify the field is mapped as knn_vector and raise an error if it is not. Also adjusts logging messages to be clearer.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): Skip Tavily API key fill when global variable is loaded (#11733)
* feat: add smart column ordering and clean output toggle to Split Text component (#11626)
* feat: add smart column ordering and clean output toggle to Split Text component
Add smart_column_order() method to DataFrame that prioritizes content columns
(text, content, output, etc.) and de-prioritizes system metadata columns
(timestamp, sender, session_id, etc.). Add Clean Output boolean input to
Split Text component that strips metadata columns by default.
* fix: update code_hash for Knowledge Ingestion and Vector Store RAG components
* test: update split text tests for clean_output toggle
* [autofix.ci] apply automated fixes
* fix: change default value of clean_output toggle to False in Split Text component
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix: update code_hash for Knowledge Ingestion and Vector Store RAG components
* fix: add clean_output option to Knowledge Ingestion and Vector Store RAG components
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* [autofix.ci] apply automated fixes
* fix: Add missing get_current_active_user_mcp to lfx AuthService
The base class declares get_current_active_user_mcp as abstract but the
default lfx AuthService did not implement it, causing instantiation to
fail in tests.
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: add iter method to noopresult (#11517)
* fix: Misleading Empty State when no Folders (#11728)
* fix: Misleading Empty State when no Folders
now once all folders are deleted we show the default create first flow state
* [autofix.ci] apply automated fixes
* fix(api): prevent users from deactivating their own account (#11736)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710)
* move chat input arround for travel json starter template
* improve the layout of the component
* fix layout
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
---------
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* chore: align Market Research spec with release-v1.8.0
* fix: Resolve Windows PostgreSQL event loop incompatibility (#11767)
* fix windows integrations with postgres
* add documentation
* cross platform validation
* [autofix.ci] apply automated fixes
* ruff style and checker
* fix import ruff
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [autofix.ci] apply automated fixes
* fix: Legacy "Store" Reference in Flows Empty State (#11721)
* fix: Legacy "Store" Reference in Flows Empty State
on delete propigate changes to useFlowsManagerStore to cause re-render in HomePage
* test: fix shard 45 flaky mcp test
Hopefully fix [WebServer] bash: line 1: exec: uvx mcp-server-fetch: not found
* [autofix.ci] apply automated fixes
* fix(api): prevent users from deactivating their own account (#11736)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710)
* move chat input arround for travel json starter template
* improve the layout of the component
* fix layout
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
---------
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Fix: UI Bug: "Lock Flow" Toggle in Export Modal is Non-Functional (#11724)
* fix locked component during export
* added locked flag to flow doc
* new testcases
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix tests
* [autofix.ci] apply automated fixes
* fix: dropdown delete icon hover visibility (#11774)
fix hidden delete button
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix: resolve Safari scroll jitter in playground chat views (#11769)
* fix: resolve Safari scroll jitter in playground chat views
Switch StickToBottom resize mode to instant and add a Safari-specific
scroll fix that prevents unnatural jumps while preserving stick-to-bottom
behavior.
* [autofix.ci] apply automated fixes
* fix: add useStickToBottomContext mock to shareable playground tests
* refactor: improve SafariScrollFix reliability and maintainability
- Split into guard/inner components to avoid hooks on non-Safari browsers
- Extract magic numbers into named constants with documentation
- Convert touchStartY closure variable to useRef for proper session scoping
- Remove stopScrollRef indirection, use stopScroll directly in effect deps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: mock clearSessionMessages to prevent flowStore.getState error in test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* fix: Obsolete "Component Share" shortcut listed in Shortcuts menu (#11775)
remove component share from doc
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix(frontend): add UI feedback for self-deactivation prevention (#11772)
* fix(frontend): add UI feedback for self-deactivation prevention
Disable the Active checkbox with a tooltip when users try to deactivate
their own account. This provides clear UI feedback instead of relying
solely on the backend 403 error. Protection is added in both the Admin
page table view and the user edit modal.
* [autofix.ci] apply automated fixes
* fix: mock clearSessionMessages to prevent flowStore.getState error in test
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
* fix(frontend): preserve sticky note dimensions when importing via canvas drop (#11770)
* fix(frontend): preserve sticky note dimensions when importing via canvas drop
When dragging a JSON file onto the canvas, the paste function now
preserves width and height properties from the original nodes,
ensuring sticky notes retain their custom dimensions.
* [autofix.ci] apply automated fixes
* fix: mock clearSessionMessages to prevent flowStore.getState error in test
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
* rollback playground, inspection panel and shareable playground
* build_component_index
* fix starter templates
* fix: Close button auto-focus creates visual distraction in SaveChanges and FlowLogs modal (#11763)
fix autofocus on close button
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix: Outdated Instructional Notes and Provider-Specific Branding (#11680)
* fix: improved note guide for language models nots and Need search
* missing starter projects added
* ensured main flows fit are of standard
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [autofix.ci] apply automated fixes
* fix(frontend): synchronize Prompt Template input fields on bracket mode toggle (#11777)
* fix(frontend): synchronize Prompt Template input fields on bracket mode toggle
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [autofix.ci] apply automated fixes
* build component index
* chore: align component_index.json with main
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix: reduce Node.js heap size to 4GB in Docker builds to prevent OOM
The Vite frontend build was configured with --max-old-space-size=12288
(12GB), which exceeds available RAM on ARM64 CI runners, causing the
build process to be OOM-killed during the transform phase.
Reduced to 4GB (4096MB) which is sufficient for the Vite build and
prevents OOM kills in memory-constrained Docker BuildKit environments.
* fix: avoid redundant recursive chown on /app in backend Dockerfile
The recursive chown -R on /app was re-owning the entire .venv (~2.6GB,
40k+ files) which was already correctly owned via COPY --chown=1000:0.
This was causing the build to be killed on ARM64 runners.
Changed to non-recursive chown on /app since only the directory itself
needs ownership set. /app/data still gets recursive chown (it's empty).
* fix: add Docker cleanup between image builds to prevent disk full
The 40GB ARM64 runner runs out of disk when building 3 Docker images
sequentially. Each image (main ~8GB layers, backend ~5GB, frontend)
accumulates build cache and layers that exhaust the disk.
Added cleanup steps between builds that:
- Remove the tested image (no longer needed)
- Prune all unused Docker data and buildx cache
- Log disk usage before/after for debugging
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Mike Pawlowski <mike.pawlowski@datastax.com>
Co-authored-by: Mike Pawlowski <mpawlow@ca.ibm.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ogabrielluiz <24829397+ogabrielluiz@users.noreply.github.com>
Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
Co-authored-by: Lucas Democh <ldgoularte@gmail.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: vjgit96 <vijay.katuri@ibm.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com>
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Jordan Frazier <122494242+jordanrfrazier@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Adam-Aghili <149833988+Adam-Aghili@users.noreply.github.com>
* feat: Pluggable AuthService with abstract base class (#10702) (#11654)
feat(auth): Pluggable AuthService with abstract base class (#10702)
* feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery
- Added `register_service` decorator to allow services to self-register with the ServiceManager.
- Enhanced `ServiceManager` to support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points.
- Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management.
* feat: Implement VariableService for managing environment variables
- Introduced VariableService class to handle environment variables with in-memory caching.
- Added methods for getting, setting, deleting, and listing variables.
- Included logging for service initialization and variable operations.
- Created an __init__.py file to expose VariableService in the package namespace.
* feat: Enhance LocalStorageService with Service integration and async teardown
- Updated LocalStorageService to inherit from both StorageService and Service for improved functionality.
- Added a name attribute for service identification.
- Implemented an async teardown method for future extensibility, even though no cleanup is currently needed.
- Refactored the constructor to ensure proper initialization of both parent classes.
* feat: Implement telemetry service with abstract base class and minimal logging functionality
- Added `BaseTelemetryService` as an abstract base class defining the interface for telemetry services.
- Introduced `TelemetryService`, a lightweight implementation that logs telemetry events without sending data.
- Created `__init__.py` to expose the telemetry service in the package namespace.
- Ensured robust async methods for logging various telemetry events and handling exceptions.
* feat: Introduce BaseTracingService and implement minimal TracingService
- Added `BaseTracingService` as an abstract base class defining the interface for tracing services.
- Implemented `TracingService`, a lightweight version that logs trace events without external integrations.
- Included async methods for starting and ending traces, tracing components, and managing logs and outputs.
- Enhanced documentation for clarity on method usage and parameters.
* feat: Add unit tests for service registration decorators
- Introduced a new test suite for validating the functionality of the @register_service decorator.
- Implemented tests for various service types including LocalStorageService, TelemetryService, and TracingService.
- Verified behavior for service registration with and without overrides, ensuring correct service management.
- Included tests for custom service implementations and preservation of class functionality.
- Enhanced overall test coverage for the service registration mechanism.
* feat: Add comprehensive unit and integration tests for ServiceManager
- Introduced a suite of unit tests covering edge cases for service registration, lifecycle management, and dependency resolution.
- Implemented integration tests to validate service loading from configuration files and environment variables.
- Enhanced test coverage for various service types including LocalStorageService, TelemetryService, and VariableService.
- Verified behavior for service registration with and without overrides, ensuring correct service management.
- Ensured robust handling of error conditions and edge cases in service creation and configuration parsing.
* feat: Add unit and integration tests for minimal service implementations
- Introduced comprehensive unit tests for LocalStorageService, TelemetryService, TracingService, and VariableService.
- Implemented integration tests to validate the interaction between minimal services.
- Ensured robust coverage for file operations, service readiness, and exception handling.
- Enhanced documentation within tests for clarity on functionality and expected behavior.
* docs: Add detailed documentation for pluggable services architecture and usage
* feat: Add example configuration file for Langflow services
* docs: Update PLUGGABLE_SERVICES.md to enhance architecture benefits section
- Revised the documentation to highlight the advantages of the pluggable service system.
- Replaced the migration guide with a detailed overview of features such as automatic discovery, lazy instantiation, dependency injection, and lifecycle management.
- Clarified examples of service registration and improved overall documentation for better understanding.
* [autofix.ci] apply automated fixes
* test(services): improve variable service teardown test with public API assertions
* docs(pluggable-service-layer): add docstrings for service manager and implementations
* fix: remove duplicate teardown method from LocalStorageService
During rebase, the teardown method was added in two locations (lines 57 and 220).
Removed the duplicate at line 57, keeping the one at the end of the class (line 220)
which is the more appropriate location for cleanup methods.
* fix(tests): update service tests for LocalStorageService constructor changes
- Add MockSessionService fixtures to test files that use ServiceManager
- Update LocalStorageService test instantiation to use mock session and settings services
- Fix service count assertions to account for MockSessionService in fixtures
- Remove duplicate class-level clean_manager fixtures in test_edge_cases.py
These changes fix test failures caused by LocalStorageService requiring
session_service and settings_service parameters instead of just data_dir.
* fix(services): Harden service lifecycle methods
- Fixed Diamond Inheritance in LocalStorageService
- Added Circular Dependency Detection in _create_service_from_class
- Fixed StorageService.teardown to Have Default Implementation
* docs: Update discovery order for pluggable services
* fix(lfx): replace aiofile with aiofiles for CI compatibility
- The aiofile library uses native async I/O (libaio) which fails with
EAGAIN (SystemError: 11, 'Resource temporarily unavailable') in
containerized environments like GitHub Actions runners.
- Switch to aiofiles which uses thread pool executors, providing reliable
async file I/O across all environments including containers.
* [autofix.ci] apply automated fixes
* fix(lfx): prevent race condition in plugin discovery
The discover_plugins() method had a TOCTOU (time-of-check to time-of-use)
race condition. Since get() uses a keyed lock (per service name), multiple
threads requesting different services could concurrently see
_plugins_discovered=False and trigger duplicate plugin discovery.
Wrap discover_plugins() with self._lock to ensure thread-safe access to
the _plugins_discovered flag and prevent concurrent discovery execution.
* [autofix.ci] apply automated fixes
* feat: Introduce service registration decorator and enhance ServiceManager for pluggable service discovery
- Added `register_service` decorator to allow services to self-register with the ServiceManager.
- Enhanced `ServiceManager` to support multiple service discovery mechanisms, including decorator-based registration, config files, and entry points.
- Implemented methods for direct service class registration and plugin discovery from various sources, improving flexibility and extensibility of service management.
* feat: Enhance LocalStorageService with Service integration and async teardown
- Updated LocalStorageService to inherit from both StorageService and Service for improved functionality.
- Added a name attribute for service identification.
- Implemented an async teardown method for future extensibility, even though no cleanup is currently needed.
- Refactored the constructor to ensure proper initialization of both parent classes.
* docs(pluggable-service-layer): add docstrings for service manager and implementations
* feat(auth): implement abstract base class for authentication services and add auth service retrieval function
* refactor(auth): move authentication logic from utils to AuthService
Consolidate all authentication methods into the AuthService class to
enable pluggable authentication implementations. The utils module now
contains thin wrappers that delegate to the registered auth service.
This allows alternative auth implementations (e.g., OIDC) to be
registered via the pluggable services system while maintaining
backward compatibility with existing code that imports from utils.
Changes:
- Move all auth logic (token creation, user validation, API key
security, password hashing, encryption) to AuthService
- Refactor utils.py to delegate to get_auth_service()
- Update function signatures to remove settings_service parameter
(now obtained from the service internally)
* refactor(auth): update authentication methods and remove settings_service parameter
- Changed function to retrieve current user from access token instead of JWT.
- Updated AuthServiceFactory to specify SettingsService type in create method.
- Removed settings_service dependency from encryption and decryption functions, simplifying the code.
This refactor enhances the clarity and maintainability of the authentication logic.
* test(auth): add unit tests for AuthService and pluggable authentication
- Introduced comprehensive unit tests for AuthService, covering token creation, user validation, and authentication methods.
- Added tests for pluggable authentication, ensuring correct delegation to registered services.
- Enhanced test coverage for user authentication scenarios, including active/inactive user checks and token validation.
These additions improve the reliability and maintainability of the authentication system.
* fix(tests): update test cases to use AuthService and correct user retrieval method
- Replaced the mock for retrieving the current user from JWT to access token in the TestSuperuserCommand.
- Refactored unit tests for MCP encryption to utilize AuthService instead of a mock settings service, enhancing test reliability.
- Updated patch decorators in tests to reflect the new method of obtaining the AuthService, ensuring consistency across test cases.
These changes improve the accuracy and maintainability of the authentication tests.
* docs(pluggable-services): add auth_service to ServiceType enum documentation
* fix(auth): Add missing type hints and abstract methods to AuthServiceBase (#10710)
* [autofix.ci] apply automated fixes
* fix(auth): refactor api_key_security method to accept optional database session and improve error handling
* feat(auth): enhance AuthServiceBase with detailed design principles and JIT provisioning methods
* fix(auth): remove settings_service from encrypt/decrypt_api_key calls
After the pluggable auth refactor, encrypt_api_key and decrypt_api_key
no longer take a settings_service argument - they get it internally.
- Update check_key import path in __main__.py (moved to crud module)
- Remove settings_service argument from calls in:
- api/v1/api_key.py
- api/v1/store.py
- services/variable/service.py
- services/variable/kubernetes.py
- Fix auth service to use session_scope() instead of non-existent
get_db_service().with_session()
* fix(auth): resolve type errors and duplicate definitions in pluggable auth branch
- Add missing imports in auth/utils.py (Final, HTTPException, status,
logger, SettingsService) that prevented application startup
- Remove duplicate NoServiceRegisteredError class in lfx/services/manager.py
- Remove duplicate teardown method in lfx/services/storage/local.py
- Fix invalid settings_service parameter in encrypt_api_key calls
in variable/service.py and variable/kubernetes.py
- Add proper type guards for check_key calls to satisfy mypy
- Add null checks for password fields in users.py endpoints
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* [autofix.ci] apply automated fixes
* replace jose with pyjwt
* [autofix.ci] apply automated fixes
* starter projects
* fix BE mcp tests
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* remive legacy usage of session
* fix user tests
* [autofix.ci] apply automated fixes
* fix lfx tests
* starter project update
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix mypy errors
* fix mypy errors on tests
* fix tests for decrypt_api_key
* resolve conflicts in auth utils
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Add pluggable authentication factory with provider enum
* Add SSO feature flags to AuthSettings
* Add SSO fields to User model
* Add SSO configuration loader with YAML support
* Add unit tests for SSO configuration loader
* Add SSO configuration database model and CRUD operations
* Add CRUD operations for SSO configuration management
* Add SSO configuration service supporting both file and database configs
* Add example SSO configuration file with W3ID and other providers
* Implement OIDC authentication service with discovery and JIT provisioning
* Update AuthServiceFactory to instantiate OIDC service when SSO enabled
* Improve JWT token validation and API key decryption error handling
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix: resolve ruff linting errors in auth services and add sso-config.yaml to gitignore
* [autofix.ci] apply automated fixes
* fix: use correct function name get_current_user_from_access_token in login endpoint
* fix: remove incorrect settings_service parameter from decrypt_api_key call
* fix: correct encryption logic to properly detect plaintext vs encrypted values
* [autofix.ci] apply automated fixes
* fix tests
* [autofix.ci] apply automated fixes
* fix mypy errors
* fix tests
* [autofix.ci] apply automated fixes
* fix ruff errors
* fix tests in service
* [autofix.ci] apply automated fixes
* fix test security cors
* [autofix.ci] apply automated fixes
* fix webhook issues
* modify component index
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* fix webhook tests
* [autofix.ci] apply automated fixes
* build component index
* remove SSO functionality
* [autofix.ci] apply automated fixes
* fix variable creation
* [autofix.ci] apply automated fixes
* refactor: move MCPServerConfig schema to a separate file and update model_dump usage
* refactor: streamline AuthServiceFactory to use service_class for instance creation
* handle access token type
* [autofix.ci] apply automated fixes
* remove SSO fields from user model
* [autofix.ci] apply automated fixes
* replace is_encrypted back
* fix mypy errors
* remove sso config example
* feat: Refactor framework agnostic auth service (#11565)
* modify auth service layer
* [autofix.ci] apply automated fixes
* fix ruff errorrs
* [autofix.ci] apply automated fixes
* Update src/backend/base/langflow/services/deps.py
* address review comments
* [autofix.ci] apply automated fixes
* fix ruff errors
* remove cache
---------
* move base to lfx
* [autofix.ci] apply automated fixes
* resolve review comments
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* add auth protocol
* [autofix.ci] apply automated fixes
* revert models.py execption handling
* revert wrappers to ensure backwards compatibility
* fix http error code
* fix FE tests
* fix test_variables.py
* [autofix.ci] apply automated fixes
* fix ruff errors
* fix tests
* add wrappers for create token methods
* fix ruff errors
* [autofix.ci] apply automated fixes
* update error message
* modify status code for inactive user
* fix ruff errors
* fix patch for webhook tests
* fix error message when getting active users
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Mike Pawlowski <mike.pawlowski@datastax.com>
Co-authored-by: Mike Pawlowski <mpawlow@ca.ibm.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ogabrielluiz <24829397+ogabrielluiz@users.noreply.github.com>
Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
* fix: adjusted textarea and playground paddings and design (#11635)
* revert textarea to old classes
* fixed text-area-wrapper to handle initial height when value is calculated
* fixed playground padding
* fixed no input text size
* [autofix.ci] apply automated fixes
* fixed flaky test
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* feat: create guardrails component (#11451) (#11671)
* Create guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Update guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* tests: add unit tests for GuardrailsComponent functionality
* [autofix.ci] apply automated fixes
* fix: resolve linting errors in GuardrailsComponent and tests
- Fix line length issues (E501) by breaking long strings
- Fix docstring formatting (D205, D415) in _check_guardrail
- Use ternary operator for response content extraction (SIM108)
- Replace magic value with named constant (PLR2004)
- Move return to else block per try/except best practices (TRY300)
- Catch specific exceptions instead of blind Exception (BLE001)
- Use list comprehension for checks_to_run (PERF401)
- Mark unused variables with underscore prefix (RUF059, F841)
- Add noqa comment for intentionally unused mock argument (ARG002)
* [autofix.ci] apply automated fixes
* refactor: address pr comments
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes
* feat: enhance heuristic detection with configurable threshold and scoring system
* refactor: simplify heuristic test assertions by removing unused variable
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* feat: enhance guardrail validation logic and input handling
* refactor: streamline import statements and clean up whitespace in guardrails component
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Fix: update empty input handling tests to raise ValueError and refactor related assertions
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* feat: add Guardrails component with unit tests
Add LLM-based guardrails component for detecting PII, tokens/passwords,
jailbreak attempts, and custom guardrail rules, along with comprehensive
unit tests.
* [autofix.ci] apply automated fixes
* fix: try removing logs
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Lucas Democh <ldgoularte@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: added remove file from file input (#11667)
* Implemented dismiss file functionality on input file component
* fixed hover behavior
* added test for removing file from input
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: make connected inputs not hideable (#11672)
* fixed react flow utils to clean advanced edges
* Make connected handles not be able to be hidden
* Added test for hiding connected handles
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: make tooltip not appear when closing SessionMore (#11703)
fix tooltip showing up when closing select
* fix(frontend): prevent multiple session menus from stacking in fullscreen mode
* [autofix.ci] apply automated fixes
* fix(frontend): prevent crash when renaming empty sessions (#11712)
* fix(frontend): prevent crash when renaming empty sessions
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(ci): handle PEP 440 normalized versions in pre-release tag script (#11722)
The regex in langflow_pre_release_tag.py expected a dot before `rc`
(e.g. `1.8.0.rc0`), but PyPI returns PEP 440-normalized versions
without the dot (e.g. `1.8.0rc0`). This caused the script to recompute
the same version instead of incrementing, and `uv publish` silently
skipped the duplicate upload.
Update the regex to accept both formats with `\.?rc`.
* fix: align chat history with input field in fullscreen playground (#11725)
* fix: align chat history with input field in fullscreen playground
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: Enforce Webhook singleton rule on paste and duplicate (#11692)
* fix singleton webhook on flow
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(frontend): generate unique variable names in Prompt Template Add Variable button (#11723)
* fix: generate unique variable names in Prompt Template Add Variable button
Previously, clicking the Add Variable button always inserted {variable_name},
causing duplicate text without creating new input fields. Now the button
generates incremental names (variable_name, variable_name_1, variable_name_2)
by checking existing variables in the template.
* refactor: extract generateUniqueVariableName and import in tests
Extract the variable name generation logic into an exported function
so tests can import and validate the actual production code instead
of testing a duplicated copy of the logic.
* FIX: Broken Connection Edge Rendering in YouTube Analysis Template (#11709)
add edge between components
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix: synchronize prompt state, add new mustache prompt component (#11702)
* Update state when exiting modal on accordion prompt component
* Added isDoubleBrackets and show correct modal and use correct brackets when mustache is enabled
* [autofix.ci] apply automated fixes
* added test to see if state is synchronized and mustache is enabled
* [autofix.ci] apply automated fixes
* updated mustache id and removed extra prompt call
* [autofix.ci] apply automated fixes
---------
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>
* fix(frontend): add Safari-specific padding for playground chat messages (#11720)
* fix(frontend): add Safari-specific padding for playground chat messages
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: correctly pass headers in mcp stdio connections (#11746)
* fix: parse dicts from tweaks (#11753)
* Correctly parse dicts from tweaks
* Add test
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: sessions overflow issue (#11739)
fix: sessions overflow issue
* feat: playground UI fixes, inspector improvements & canvas reorganization (#11751)
* merge fix
* code improvements
* [autofix.ci] apply automated fixes
* add stop button and fix scroll on message
* [autofix.ci] apply automated fixes
* add new message content for sharable pg
* fix tests until shard 43
* [autofix.ci] apply automated fixes
* fix(frontend): clean up MemoizedSidebarTrigger imports and transition classes
Sort imports, add type modifier to AllNodeType import, and split long transition class string for readability.
* fix tests
* [autofix.ci] apply automated fixes
* fix mr test
* fix jest tests
* fix sidebar jest tes
* [autofix.ci] apply automated fixes
* fix sharable playground
* [autofix.ci] apply automated fixes
* remove rename from sharable pg
* [autofix.ci] apply automated fixes
* add new message content for sharable pg
* fix: synchronize prompt state, add new mustache prompt component (#11702)
* Update state when exiting modal on accordion prompt component
* Added isDoubleBrackets and show correct modal and use correct brackets when mustache is enabled
* [autofix.ci] apply automated fixes
* added test to see if state is synchronized and mustache is enabled
* [autofix.ci] apply automated fixes
* updated mustache id and removed extra prompt call
* [autofix.ci] apply automated fixes
---------
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>
* fix(frontend): add Safari-specific padding for playground chat messages (#11720)
* fix(frontend): add Safari-specific padding for playground chat messages
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: correctly pass headers in mcp stdio connections (#11746)
* fix sharable playground
* [autofix.ci] apply automated fixes
* remove rename from sharable pg
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix sharable playground
* fix mcp server to use shell lexer
* [autofix.ci] apply automated fixes
* fix tests
* fix outaded component tests
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: keval shah <kevalvirat@gmail.com>
Co-authored-by: Jordan Frazier <122494242+jordanrfrazier@users.noreply.github.com>
* fix: correct field_order in all starter project JSON templates (#11727)
* fix: correct field_order in all starter project JSON templates
The field_order arrays in starter project nodes were out of sync with
the actual input definitions in the Python component source files,
causing parameters to display in the wrong order in the UI.
Fixed 136 nodes across 32 starter project files including Chat Input,
Chat Output, Language Model, Agent, Prompt Template, Text Input,
Tavily AI Search, Read File, Embedding Model, and others.
* test: add field_order validation test for starter projects
Verifies that field_order arrays in starter project JSONs match the
actual component input order by importing each component and comparing
the relative ordering of fields.
* fix mcp server to use shell lexer
* [autofix.ci] apply automated fixes
* fix: enforce full field_order in starter projects and add node overlap test
Update all starter project JSONs to include the complete component
field_order instead of a subset, preventing layout inconsistency
between template and sidebar. Strengthen the field_order test to
require an exact match and add a new test that verifies no two
generic nodes overlap on the canvas.
---------
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: dict tweak parsing (#11756)
* Fix dict handling of different formats
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* cmp index
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Fix: The Prompt component has responsiveness issues (#11713)
improve styling of templete input
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* clear session on delete chat
* fix(api): prevent users from deactivating their own account (#11736)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710)
* move chat input arround for travel json starter template
* improve the layout of the component
* fix layout
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix: Google Generative AI model catalog update (#11735)
* fix: Filter out MCP and models_and_agents categories and MCPTools component from sidebar (#11513)
* fix: hide MCP tool from model & agent
* fix: removing mcp searching
* fix testcases
* fix testcases
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
* fix: Fix flaky Market Research test timeout on CI (#11665)
* add wait for statement to prevent race condition
* fix flaky global variable
* add input selection
* [autofix.ci] apply automated fixes
* add disable inspect panel util
* [autofix.ci] apply automated fixes
* fix vector store test
* [autofix.ci] apply automated fixes
* use disable inspect pannel utils
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ci: make docs deployment manual-only (#11602)
feat: update GitHub Actions workflow to allow manual branch selection for docs deployment
* fix: handle missing capabilities in Ollama API response (#11603)
* fix: handle missing capabilities in Ollama API response
Older Ollama versions don't return the `capabilities` field from
`/api/show`. The previous code defaulted to an empty list and required
"completion" capability, filtering out all models.
Now we treat missing capabilities as backwards-compatible: assume the
model supports completion unless tool_model_enabled is True (where we
can't verify tool support without the capabilities field).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* test: add test cases for Ollama backwards compatibility fix
Add tests for get_models handling of missing capabilities field:
- test_get_models_missing_capabilities_without_tool_model
- test_get_models_missing_capabilities_with_tool_model
- test_get_models_mixed_capabilities_response
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* fix: wrap long docstring line to satisfy ruff E501
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* docs: draft hide internal endpoints in spec (#11469)
* test-hide-internal-endpoints
* hide-more-endpoints
* display-mcp-endpoints
* display-mcp-projects
* add-back-health-check
---------
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
* feat: update opensearch component with raw search component (#11491)
* Update opensearch_multimodal.py
* [autofix.ci] apply automated fixes
* Update opensearch_multimodal.py
* Skip existing knn_vector mapping & handle errors
Before adding a knn_vector field mapping, check the index properties and skip updating if the field already exists (and warn if dimensions differ). Attempt to add the mapping only when missing, and catch failures from the OpenSearch k-NN plugin (e.g. NullPointerException); in that known case log a warning and skip the mapping update instead of failing hard. After adding, verify the field is mapped as knn_vector and raise an error if it is not. Also adjusts logging messages to be clearer.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): Skip Tavily API key fill when global variable is loaded (#11733)
* update Google models
* [autofix.ci] apply automated fixes
* update tests
* mark deprecated
* build component index
* [autofix.ci] apply automated fixes
---------
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
* fix: mock clearSessionMessages (#11776)
* fix: mock clearSessionMessages to prevent flowStore.getState error in test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* update build config
* [autofix.ci] apply automated fixes
* fix ruff errors
* [autofix.ci] apply automated fixes
* address review comments
* feat: create guardrails component (#11451)
* Create guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Update guardrails.py
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* tests: add unit tests for GuardrailsComponent functionality
* [autofix.ci] apply automated fixes
* fix: resolve linting errors in GuardrailsComponent and tests
- Fix line length issues (E501) by breaking long strings
- Fix docstring formatting (D205, D415) in _check_guardrail
- Use ternary operator for response content extraction (SIM108)
- Replace magic value with named constant (PLR2004)
- Move return to else block per try/except best practices (TRY300)
- Catch specific exceptions instead of blind Exception (BLE001)
- Use list comprehension for checks_to_run (PERF401)
- Mark unused variables with underscore prefix (RUF059, F841)
- Add noqa comment for intentionally unused mock argument (ARG002)
* [autofix.ci] apply automated fixes
* refactor: address pr comments
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes
* feat: enhance heuristic detection with configurable threshold and scoring system
* refactor: simplify heuristic test assertions by removing unused variable
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* feat: enhance guardrail validation logic and input handling
* refactor: streamline import statements and clean up whitespace in guardrails component
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Fix: update empty input handling tests to raise ValueError and refactor related assertions
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* feat: add Guardrails component with unit tests
Add LLM-based guardrails component for detecting PII, tokens/passwords,
jailbreak attempts, and custom guardrail rules, along with comprehensive
unit tests.
* [autofix.ci] apply automated fixes
* fix: try removing logs
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
* fix: Filter out MCP and models_and_agents categories and MCPTools component from sidebar (#11513)
* fix: hide MCP tool from model & agent
* fix: removing mcp searching
* fix testcases
* fix testcases
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
* fix: Fix flaky Market Research test timeout on CI (#11665)
* add wait for statement to prevent race condition
* fix flaky global variable
* add input selection
* [autofix.ci] apply automated fixes
* add disable inspect panel util
* [autofix.ci] apply automated fixes
* fix vector store test
* [autofix.ci] apply automated fixes
* use disable inspect pannel utils
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* ci: make docs deployment manual-only (#11602)
feat: update GitHub Actions workflow to allow manual branch selection for docs deployment
* fix: handle missing capabilities in Ollama API response (#11603)
* fix: handle missing capabilities in Ollama API response
Older Ollama versions don't return the `capabilities` field from
`/api/show`. The previous code defaulted to an empty list and required
"completion" capability, filtering out all models.
Now we treat missing capabilities as backwards-compatible: assume the
model supports completion unless tool_model_enabled is True (where we
can't verify tool support without the capabilities field).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* test: add test cases for Ollama backwards compatibility fix
Add tests for get_models handling of missing capabilities field:
- test_get_models_missing_capabilities_without_tool_model
- test_get_models_missing_capabilities_with_tool_model
- test_get_models_mixed_capabilities_response
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* fix: wrap long docstring line to satisfy ruff E501
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* docs: draft hide internal endpoints in spec (#11469)
* test-hide-internal-endpoints
* hide-more-endpoints
* display-mcp-endpoints
* display-mcp-projects
* add-back-health-check
---------
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
* feat: update opensearch component with raw search component (#11491)
* Update opensearch_multimodal.py
* [autofix.ci] apply automated fixes
* Update opensearch_multimodal.py
* Skip existing knn_vector mapping & handle errors
Before adding a knn_vector field mapping, check the index properties and skip updating if the field already exists (and warn if dimensions differ). Attempt to add the mapping only when missing, and catch failures from the OpenSearch k-NN plugin (e.g. NullPointerException); in that known case log a warning and skip the mapping update instead of failing hard. After adding, verify the field is mapped as knn_vector and raise an error if it is not. Also adjusts logging messages to be clearer.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(test): Skip Tavily API key fill when global variable is loaded (#11733)
* feat: add smart column ordering and clean output toggle to Split Text component (#11626)
* feat: add smart column ordering and clean output toggle to Split Text component
Add smart_column_order() method to DataFrame that prioritizes content columns
(text, content, output, etc.) and de-prioritizes system metadata columns
(timestamp, sender, session_id, etc.). Add Clean Output boolean input to
Split Text component that strips metadata columns by default.
* fix: update code_hash for Knowledge Ingestion and Vector Store RAG components
* test: update split text tests for clean_output toggle
* [autofix.ci] apply automated fixes
* fix: change default value of clean_output toggle to False in Split Text component
* [autofix.ci] apply automated fixes (attempt 2/3)
* fix: update code_hash for Knowledge Ingestion and Vector Store RAG components
* fix: add clean_output option to Knowledge Ingestion and Vector Store RAG components
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* [autofix.ci] apply automated fixes
* fix: Add missing get_current_active_user_mcp to lfx AuthService
The base class declares get_current_active_user_mcp as abstract but the
default lfx AuthService did not implement it, causing instantiation to
fail in tests.
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: add iter method to noopresult (#11517)
* fix: Misleading Empty State when no Folders (#11728)
* fix: Misleading Empty State when no Folders
now once all folders are deleted we show the default create first flow state
* [autofix.ci] apply automated fixes
* fix(api): prevent users from deactivating their own account (#11736)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710)
* move chat input arround for travel json starter template
* improve the layout of the component
* fix layout
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
---------
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* chore: align Market Research spec with release-v1.8.0
* fix: Resolve Windows PostgreSQL event loop incompatibility (#11767)
* fix windows integrations with postgres
* add documentation
* cross platform validation
* [autofix.ci] apply automated fixes
* ruff style and checker
* fix import ruff
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [autofix.ci] apply automated fixes
* fix: Legacy "Store" Reference in Flows Empty State (#11721)
* fix: Legacy "Store" Reference in Flows Empty State
on delete propigate changes to useFlowsManagerStore to cause re-render in HomePage
* test: fix shard 45 flaky mcp test
Hopefully fix [WebServer] bash: line 1: exec: uvx mcp-server-fetch: not found
* [autofix.ci] apply automated fixes
* fix(api): prevent users from deactivating their own account (#11736)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Fix: UI Overlay: Chat Input Component Overlapping README Note (#11710)
* move chat input arround for travel json starter template
* improve the layout of the component
* fix layout
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
---------
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Fix: UI Bug: "Lock Flow" Toggle in Export Modal is Non-Functional (#11724)
* fix locked component during export
* added locked flag to flow doc
* new testcases
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix tests
* [autofix.ci] apply automated fixes
* fix: dropdown delete icon hover visibility (#11774)
fix hidden delete button
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix: resolve Safari scroll jitter in playground chat views (#11769)
* fix: resolve Safari scroll jitter in playground chat views
Switch StickToBottom resize mode to instant and add a Safari-specific
scroll fix that prevents unnatural jumps while preserving stick-to-bottom
behavior.
* [autofix.ci] apply automated fixes
* fix: add useStickToBottomContext mock to shareable playground tests
* refactor: improve SafariScrollFix reliability and maintainability
- Split into guard/inner components to avoid hooks on non-Safari browsers
- Extract magic numbers into named constants with documentation
- Convert touchStartY closure variable to useRef for proper session scoping
- Remove stopScrollRef indirection, use stopScroll directly in effect deps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: mock clearSessionMessages to prevent flowStore.getState error in test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* fix: Obsolete "Component Share" shortcut listed in Shortcuts menu (#11775)
remove component share from doc
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix(frontend): add UI feedback for self-deactivation prevention (#11772)
* fix(frontend): add UI feedback for self-deactivation prevention
Disable the Active checkbox with a tooltip when users try to deactivate
their own account. This provides clear UI feedback instead of relying
solely on the backend 403 error. Protection is added in both the Admin
page table view and the user edit modal.
* [autofix.ci] apply automated fixes
* fix: mock clearSessionMessages to prevent flowStore.getState error in test
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
* fix(frontend): preserve sticky note dimensions when importing via canvas drop (#11770)
* fix(frontend): preserve sticky note dimensions when importing via canvas drop
When dragging a JSON file onto the canvas, the paste function now
preserves width and height properties from the original nodes,
ensuring sticky notes retain their custom dimensions.
* [autofix.ci] apply automated fixes
* fix: mock clearSessionMessages to prevent flowStore.getState error in test
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
* rollback playground, inspection panel and shareable playground
* build_component_index
* fix starter templates
* fix: Close button auto-focus creates visual distraction in SaveChanges and FlowLogs modal (#11763)
fix autofocus on close button
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
* fix: Outdated Instructional Notes and Provider-Specific Branding (#11680)
* fix: improved note guide for language models nots and Need search
* missing starter projects added
* ensured main flows fit are of standard
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [autofix.ci] apply automated fixes
* fix(frontend): synchronize Prompt Template input fields on bracket mode toggle (#11777)
* fix(frontend): synchronize Prompt Template input fields on bracket mode toggle
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* [autofix.ci] apply automated fixes
* build component index
* chore: align component_index.json with main
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* fix: reduce Node.js heap size to 4GB in Docker builds to prevent OOM
The Vite frontend build was configured with --max-old-space-size=12288
(12GB), which exceeds available RAM on ARM64 CI runners, causing the
build process to be OOM-killed during the transform phase.
Reduced to 4GB (4096MB) which is sufficient for the Vite build and
prevents OOM kills in memory-constrained Docker BuildKit environments.
* fix: avoid redundant recursive chown on /app in backend Dockerfile
The recursive chown -R on /app was re-owning the entire .venv (~2.6GB,
40k+ files) which was already correctly owned via COPY --chown=1000:0.
This was causing the build to be killed on ARM64 runners.
Changed to non-recursive chown on /app since only the directory itself
needs ownership set. /app/data still gets recursive chown (it's empty).
* fix: add Docker cleanup between image builds to prevent disk full
The 40GB ARM64 runner runs out of disk when building 3 Docker images
sequentially. Each image (main ~8GB layers, backend ~5GB, frontend)
accumulates build cache and layers that exhaust the disk.
Added cleanup steps between builds that:
- Remove the tested image (no longer needed)
- Prune all unused Docker data and buildx cache
- Log disk usage before/after for debugging
---------
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@logspace.ai>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Mike Pawlowski <mike.pawlowski@datastax.com>
Co-authored-by: Mike Pawlowski <mpawlow@ca.ibm.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ogabrielluiz <24829397+ogabrielluiz@users.noreply.github.com>
Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
Co-authored-by: Lucas Oliveira <62335616+lucaseduoli@users.noreply.github.com>
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
Co-authored-by: Lucas Democh <ldgoularte@gmail.com>
Co-authored-by: Keval718 <kevalvirat@gmail.com>
Co-authored-by: vjgit96 <vijay.katuri@ibm.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: Ram Gopal Srikar Katakam <44802869+RamGopalSrikar@users.noreply.github.com>
Co-authored-by: olayinkaadelakun <olayinka.adelakun@ibm.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@Olayinkas-MacBook-Pro.local>
Co-authored-by: Carlos Coelho <80289056+carlosrcoelho@users.noreply.github.com>
Co-authored-by: Jordan Frazier <122494242+jordanrfrazier@users.noreply.github.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Co-authored-by: Hamza Rashid <74062092+HzaRashid@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
Co-authored-by: Adam-Aghili <149833988+Adam-Aghili@users.noreply.github.com>
OBJECTIVE: Fix flaky Market Research E2E test that fails in CI because TAVILY_API_KEY is auto-loaded as a global variable, replacing the input field with a badge.
CHANGES:
Summary by CodeRabbit