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
* 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>
* Update Google and Vertex AI docs, starter projects, and Blog Writer component
Expanded documentation for Google Generative AI and Vertex AI components to include Gemini 1.5, 2.0, 2.5, and 3.0 series models. Updated several starter project JSONs to improve model config logic. Refactored the Blog Writer's URLComponent to remove the 'markitdown' dependency and Markdown output option, now supporting only 'Text' and 'HTML' formats. Adjusted dependency metadata accordingly.
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
* Features: job status table with related DB model, migration files, job status tracking.
Added status wrapper to handle job status updates in the DB.
Added filtration using job_id to fetch job status responses.
fix: Generate job response from vertex builds history by job id. (#11457)
* feat: reconstruct workflow execution response from vertex_build by job_id
* [autofix.ci] apply automated fixes
* fix: use correct attribute name 'id' instead of 'vertex_id' in VertexBuildTable
* Updated the GET endpoint to return WorkflowExecutionResponse
---------
Co-authored-by: Janardan S Kavia <janardanskavia@Janardans-MacBook-Pro.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Added /stop endpoint, task handling, job_id typing through job_service, job_status updates.
Consolidated migration files into one single migration.
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix: Add IBM WatsonX URL and Project ID fields to Agent component
The Agent component was missing the IBM WatsonX-specific configuration
fields (watsonx API Endpoint and Project ID) that are required for
WatsonX models. This caused validation errors when using WatsonX models
with the Agent.
Changes:
- Add DropdownInput for watsonx API Endpoint (base_url_ibm_watsonx)
- Add StrInput for watsonx Project ID (project_id)
- Pass watsonx_url and watsonx_project_id to get_llm() call
- Add dynamic show/hide logic in update_build_config() for WatsonX fields
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* test: Add unit tests for IBM WatsonX support in Agent component
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes (attempt 3/3)
* fix(tests): Use underscore for unused lambda argument to pass lint
* [autofix.ci] apply automated fixes
* fix agent component
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* [autofix.ci] apply automated fixes
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Himavarsha <40851462+HimavarshaVS@users.noreply.github.com>
Co-authored-by: himavarshagoutham <himavarshajan17@gmail.com>
* feat: Allow renaming and deleting the Starter Project folder
* feat: Ensure flows always have a valid folder_id and add tests for folder integrity
* refactor: remove obsolete test file for folder utility functions
* fix: remove unused variable
* fix: enhance folder handling in flow creation process
* fix: encrypt api key
* fix: remove unnecessary if condition
* fix: remove unnecessary if condition
* [autofix.ci] apply automated fixes
* fix: added better exception laballing
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes
* improve functions and clean up
* improve functions and clean up
* improve functions and clean up
* fix: add benchmark test for large api_key set
* Revert "fix: add benchmark test for large api_key set"
This reverts commit 4e86d04df0.
* fix: add benchmark test for large api_key set
* fix: use real DB for better simulated testing
* [autofix.ci] apply automated fixes
* fix testcases
* fix testcases
* fix testcases
* fix testcases
* fix testcases
* fix ruff
* improved space complexity by adding dependency injection
* this fix helps ensure that testcases don't have to use api_key that start with sk-
* fix: update testcase
---------
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>
Co-authored-by: Himavarsha <40851462+HimavarshaVS@users.noreply.github.com>
Add validation for complex mustache patterns (sections, conditionals,
partials, etc.) in the validate_prompt function when using mustache mode.
Previously, syntactically valid but unsupported patterns like
{{#section}}{{/section}} were accepted during save but caused runtime
errors with "Complex mustache syntax is not allowed".
Now the same validation that runs at runtime also runs during the
Check & Save phase, providing immediate feedback to users.
* Add nightly hash history script to nightly workflow
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* Add lfx-nightly to script
* Handle first run
* Try fixing version on nightly hash history
* remove lfx lockfile since it does not exist
* Get full version in build, handle the [extras] in pyprojects
* [autofix.ci] apply automated fixes
* [autofix.ci] apply automated fixes (attempt 2/3)
* language update
* Handle extras in langflow-base dependency in all workflows
* [autofix.ci] apply automated fixes
* Fix import in lfx status response
* [autofix.ci] apply automated fixes
* Use built artifact for jobs, remove wait period
* use [complete] when building test cli job
* skip slack message added to success
* Update merge hash histry job to only run when ref is main
* Updates pyproject naming to add nightly suffix
* [autofix.ci] apply automated fixes
* Fix ordering of lfx imports'
* [autofix.ci] apply automated fixes
* Ah, ignore auto-import fixes by ruff
* [autofix.ci] apply automated fixes
* update test to look at _all_ exported instead
* [autofix.ci] apply automated fixes
* perf: Limit enum options in tool schemas to reduce token usage (#11370)
* fix current date tokens usage
* Update src/lfx/src/lfx/io/schema.py
* remove comment
---------
Co-authored-by: Himavarsha <40851462+HimavarshaVS@users.noreply.github.com>
* update date test to reflect changes to lfx
* ruff
* [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: Himavarsha <40851462+HimavarshaVS@users.noreply.github.com>
* feat: Transform sticky notes to compact 260x100px rectangles
- Change dimensions from 324x324px squares to 260x100px rectangles (75% less space)
- Increase text size from text-mmd to text-base (16px) with font-medium for better readability
- Add rounded corners to drag preview for visual consistency
- Fix vertical growth by using fixed dimensions with overflow scrolling
- Remove unused state variables and improve code maintainability
- Add comprehensive test suite for dimensions, text styling, and overflow behavior
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
* [autofix.ci] apply automated fixes
* revert stp
* increase size to 280x140 and gh suggestions
* add padding
* fix tests jest
* [autofix.ci] apply automated fixes
* fix tests sticky notes
* [autofix.ci] apply automated fixes
* add openai api key
* fix research translation loop
* Enhance scrollbar visibility for sticky notes
* [autofix.ci] apply automated fixes
* fix: GitHub Actions explixitly set grep string
use single quotes instead of using escaping double quotes
* revert some files
* fix: Update outdated components test assertions for accuracy
* fix: Correct test selector for Chroma DB in tweaksTest.spec.ts
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Deon Sanchez <69873175+deon-sanchez@users.noreply.github.com>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Viktor Avelino <viktor.avelino@gmail.com>
Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
Co-authored-by: Adam Aghili <Adam.Aghili@ibm.com>
* Add global variable mode to TextInputComponent
Introduces a 'Use Global Variable' boolean input to the TextInputComponent, allowing users to toggle between multiline text input and a single-line, password-masked input for selecting global variables. Updates the MultilineInput class to support a 'password' attribute, and adjusts the component index to reflect these changes.
* Add 'Use Global Variable' option to TextInputComponent
Introduces a 'use_global_variable' boolean input to the TextInputComponent in all starter project JSONs. This option allows users to select from global variables, disabling multiline editing and enabling password masking when active. The update includes logic in the component code to dynamically adjust the input field configuration based on this setting.
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>