Commit Graph

17133 Commits

Author SHA1 Message Date
ddac7ea3ed fix: make sure to keep table outputs when changing provider (#11426)
* fix: make sure to keep table outputs when changing provider

* [autofix.ci] apply automated fixes

* fix: enable real-time refresh for Else output option in SmartRouterComponent

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Himavarsha <40851462+HimavarshaVS@users.noreply.github.com>
2026-01-28 14:11:37 +00:00
4b056b4a4b fix: Validate complex mustache syntax during Check & Save (#11461)
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.
2026-01-27 19:05:55 +00:00
a097b685fd ci: add hash history script to nightly workflow (#11409)
* 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>
2026-01-27 16:27:59 +00:00
f0dec81207 chore(deps): Mark peer dependencies and bump lodash-es (#11441)
update lodash with audit fix
2026-01-26 21:15:30 +00:00
d7f81cbf55 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>
2026-01-26 20:59:37 +00:00
1529f56bf4 fix: Connection connects to arbitrary field on minimized components with collapsed inputs (#11423)
* fix: only render primary input handle when node is minimized to prevent wrong connections

* chore: formatting fixes

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Olayinka Adelakun <olayinkaadelakun@mac.war.can.ibm.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-26 17:28:10 +00:00
1dbc811af2 fix: Make sure we respect static model settings (#11220)
* fix: Make sure we respect static model settings

* [autofix.ci] apply automated fixes

* Update component_index.json

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2026-01-26 17:04:54 +00:00
1d82026c60 chore(docker): Upgrade Node.js from 18 to 20 LTS (#11442) 2026-01-26 11:47:28 -03:00
658666b38f feat(api): Add real-time SSE support for webhook flow execution (#11028)
* add webhook ux improvement

* revert starter_prjects

* improve code quality

* test(webhook): add delay to test for background task completion after valid API key request to ensure accurate file existence assertion

* style(endpoints.py): reorder import statements for better organization and remove unnecessary whitespace
style(test_webhook.py): remove extra blank line to adhere to PEP 8 style guidelines

* fix: regenerate package-lock.json to fix npm ci sync issue

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* restore lock

* rollback changes

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

* refactor for good pratices

* improve tests perf

* [autofix.ci] apply automated fixes

* fix sse events frontend

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* add output sse event

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* mypy fixes

* remove noisy debug logs

* remove sse when we have no webhook on canvas

* add get lock for CI improvement

* [autofix.ci] apply automated fixes

* fix tests loading

* fix flasky test py

* ruff style and check

* test: skip flaky test on CI due to resource exhaustion

---------

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>
2026-01-26 12:39:12 +00:00
2bd1ec5cd7 Docs: Correct the capitalization of Astra DB Serverless (vector) database (#11434)
capitalization of Astra DB vector
2026-01-23 21:51:49 +00:00
3503877607 Feat: Background Queuing of Workflows (#11331)
* Adds background queuing for workflow run, support for AsyncIO/Celery queues, Async execution status updates endpoint.

Improving exception classes, language & handling.

Improved cleanup mechanism for queues, marking orphaned queues for garbage collection, avoiding memory leaks.

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Janardan Singh Kavia <janardankavia@ibm.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-23 20:04:47 +00:00
ce42e3198b fix: validate api key in global settings upon migration (#11280)
* validate api key upon migration

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* resolve conflicts

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* handle validation in models and variables

* update starter projects

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* fix mypy errors

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* fix test

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

* validate upon initialization

* [autofix.ci] apply automated fixes

* fix enabled providers test

* fix tests in enabled_providers

* [autofix.ci] apply automated fixes

* fix ruff errors

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-23 14:37:28 +00:00
a1ddb06301 docs: troubleshooting mcp tools component missing tool mode (#11381)
* mcp-tool-mode-missing

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
2026-01-22 22:45:58 +00:00
7b16c1c5c0 feat: Transform sticky notes to compact 260x100px rectangles (#10149)
* 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>
2026-01-22 22:25:45 +00:00
2835955305 docs: typos in logs API doc (#11418)
* logs-typos

* Update docs/docs/API-Reference/api-logs.mdx

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
2026-01-22 21:27:29 +00:00
17a82cccbe feat: Add global variable mode to TextInputComponent (#11420)
* 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>
2026-01-22 21:12:37 +00:00
d4e379148d fix: table view tooltips obstruct navigation (#11396)
removed tooltip on table
2026-01-22 20:26:19 +00:00
d26c6f735a docs: sync read and write file (#11416)
* storage-options-for-read-and-write-file

* link-to-components

* move-admonition

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* peer-review

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
2026-01-22 19:54:51 +00:00
18332569c9 fix: Add MCP Server dialog popup text hyperlink now works (#11394)
* fix text for mcp description

* added route to const

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-22 19:37:24 +00:00
6a7512ef7d ci: update regex to handle new [complete] group in langflow-base dependency (#11417)
* Update regex to handle new [complete] group in langflow-base dependency

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* try using test-env python directly

* ruff

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-22 18:55:13 +00:00
187a66e5f1 build(deps): bump lodash from 4.17.21 to 4.17.23 in /src/frontend (#11407)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-22 11:44:28 -03:00
c5879c9908 feat: Modular dependency installation for langflow-base (#6732)
* fix: Remove redundant dependencies from pyproject.toml

* feat: Refactor optional dependencies in pyproject.toml for improved organization and clarity

* feat: Update optional dependencies in pyproject.toml for enhanced functionality and organization

* feat: Consolidate dependencies in pyproject.toml for better management

* feat: Expand complete installation dependencies in pyproject.toml for comprehensive support

* new lock

* feat: Update package versions and refactor complete installation dependencies in pyproject.toml

* update lock

* feat: Update dependencies in pyproject.toml to use 'local' installation and restructure complete installation groups

* feat: Add langchain_elasticsearch dependency to elasticsearch in pyproject.toml

* feat: Add types-cachetools dependency and update version constraints for existing packages in pyproject.toml

* feat: Update pyproject.toml to change langflow-base dependency from 'local' to 'complete' installation and remove dev extra

* Update pyproject.toml to modify dependencies and improve installation structure

* refactor: Remove 'deploy' and 'dev' extras from complete installation in pyproject.toml

* add missing deps

* fix: update langchain-chroma dependency version to 0.2.6

* Remove clickhouse and pypdf from main deps

* move clickhouse

* add lock

* update lockfile

* Add utility function to convert pandas/numpy scalars to int

* Update component index

* Update component index

* fix: update no_leaks decorator to include threads for test isolation

* fix: refine model_is_empty condition for better clarity

* feat: Add pluggable services architecture in lfx and comprehensive testing (#10111)

* 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

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* test(services): improve variable service teardown test with public API assertions

* docs(pluggable-service-layer): add docstrings for service manager and implementations

* Update component index

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* test: Standardize service mocking with shared pytest fixtures for reliable test isolation (#11350)

* refactor: Replace aiofile with aiofiles for async file operations (#11351)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* fix: update dependencies for backwards compatibility

* update index

* [autofix.ci] apply automated fixes

* fix: update duckduckgo dependency to duckduckgo-search and remove obsolete entries

* fix: update version check to reflect lfx instead of langflow

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* feat: Add dynamic options to various starter project configurations

* [autofix.ci] apply automated fixes

* fix: Update dependencies for langchain and langchain-community to latest compatible versions

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jordan Frazier <jordan.frazier@datastax.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
2026-01-21 23:04:28 +00:00
15ad6ac896 ci: Update CLI help command tests for cross-platform consistency (#9515)
fix: update CLI help command tests to use 'uv run' for consistency across platforms

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2026-01-21 22:05:16 +00:00
fa59cc50e4 feat: Implement synchronous workflow execution API (#11255)
* feat: Create controller shell and schema model for new workflow API

- Add workflow API endpoints (POST /workflow, GET /workflow, POST /workflow/stop)
- Implement developer API protection with settings check
- Add comprehensive workflow schema models with proper validation
- Create extensive unit test suite covering all scenarios
- Apply Ruff linting standards and fix all code quality issues
- Support API key authentication for all workflow endpoints

* fix: Move developer API check to router-level dependency

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* fix: Remove response model as its automatically configured.

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>

* [autofix.ci] apply automated fixes

* feat: Implement synchronous workflow execution API

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* Apply suggestion from @codeflash-ai[bot]

Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>

* Apply suggestion from @codeflash-ai[bot]

Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>

* Apply suggestion from @codeflash-ai[bot]

Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>

* [autofix.ci] apply automated fixes

* Clean up V2 Workflow API code and add unit tests

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* fix: CodeRabbit review fixes

* fix: improve V2 workflow API test quality and code structure

* Fix ruff whitespace issues in v2 API test files

* [autofix.ci] apply automated fixes

* Fix mypy type errors in v2 API files

* [autofix.ci] apply automated fixes

* refactor: improve data extraction with flexible path combinations and prevent flow data mutation

* fix: resolve component index merge conflict after sync

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* refactor: move ComponentOutput construction to avoid dict change after construction

* [autofix.ci] apply automated fixes

---------

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>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: Janardan S Kavia <janardanskavia@mac.war.can.ibm.com>
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
2026-01-21 21:34:10 +00:00
60e3ab4970 fix: Remove blanket real_time_refresh options stripping and add dynamic loading to CurrentDate (#11400)
* fix: Update timezone options loading for CurrentDateComponent

* fix: Remove real-time refresh options stripping to stabilize component index

* Enhance component options in component_index.json

- Added language model options for agent_llm: "Anthropic", "OpenAI" and "OpenAI", "Custom".
- Introduced model_name option: "Select a model".
- Expanded HTTP method options for method: "GET", "POST", "PATCH", "PUT", "DELETE".
- Updated mode options to include: "URL", "cURL".
- Added search_mode options: "Web", "News", "RSS".
- Defined environment options for Astra DB API Endpoint: "prod", "test", "dev".
- Specified search_method options: "Hybrid Search", "Vector Search".
- Included chunker options: "HybridChunker", "HierarchicalChunker".
- Added tokenizer provider options: "Hugging Face", "OpenAI".
- Defined export_format options: "Markdown", "HTML", "Plaintext", "DocTags".
- Introduced auth_mode options: "basic", "jwt".
- Updated pipeline options: "standard", "vlm".
- Specified storage_location options for reading and saving files: "Local", "AWS", "Google Drive".
- Expanded operator options for text comparison.
- Updated repo_source options: "Local", "Remote".
- Updated dependencies version for google to "2.5.0".
- Added model_id options for Hugging Face Hub.
- Defined base_url options for IBM API.
- Updated mode options for message operations: "Retrieve", "Store".
- Enhanced mirostat options: "Disabled", "Mirostat", "Mirostat 2.0".
- Expanded model_name options for various GPT models.
- Updated DataFrame operation options with icons.
- Enhanced text operation options with icons.
- Specified output_type options: "Message", "Data", "DataFrame".
- Updated CurrentDateComponent to dynamically load timezone options.

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-21 20:47:47 +00:00
5814774464 refactor: optimize react flow component re-renders (#11321)
* refactor: optimize react flow component re-renders

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-21 20:07:32 +00:00
31d011e3ca chore: Update outdated GitHub Actions versions (#11316)
docs: Update outdated GitHub Actions versions
2026-01-21 18:38:45 +00:00
3d534376b8 feat: Add Available Models Support for Embeddings component (#11320)
* Remove Markdown support from URLComponent starter projects

Eliminated the 'markitdown' dependency and Markdown output option from the URLComponent in Blog Writer, Knowledge Ingestion, and Simple Agent starter projects. Updated the code and configuration to only support 'Text' and 'HTML' output formats. Also added a 'Local' storage option to Document Q&A, News Aggregator, and Portfolio Website Code Generator starter projects.

* Update component_index.json

* [autofix.ci] apply automated fixes

* Reset flows

* reset flows

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes

* Update component_index.json

* [autofix.ci] apply automated fixes

* fix ruff issues

* [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>
2026-01-21 18:12:37 +00:00
e8753a3a87 chore: Update ruff dependency version to ~0.13.1 (#9924)
* fix: update ruff dependency version to ~0.13.1 in pyproject.toml and uv.lock

* Update uv.lock

* chore: Update uv.lock with new Python version requirements and package metadata

- Incremented revision to 3.
- Updated Python version requirements to support >=3.10 and <3.14.
- Simplified resolution markers for Python versions and platform compatibility.
- Added upload-time metadata for several packages in the lock file, enhancing traceability of package versions.
- Updated aiohttp version to 3.13.0 and adjusted related package metadata accordingly.

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2026-01-21 16:20:25 +00:00
acbff835b9 fix: Correct typo Deplrecated -> Deprecated in components and starter projects (#7347)
* fix: Correct typo Deplrecated -> Deprecated in components and starter projects

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2026-01-21 16:02:40 +00:00
82a9586db2 ref: remove excessive logging during key decryption (#11376)
Remove logging for expected failing decryptions
2026-01-21 16:02:01 +00:00
862fdaa346 fix: Make component index deterministic and conflict-resolvable (#11392)
* feat: Dynamically load LiteLLM model options in AstraAssistantManager

* fix: Strip options from fields with real_time_refresh to ensure stable component index

* update index

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-21 15:22:02 +00:00
a7fad246df chore(deps): Mark peer dependencies and update frontend packages (#11385)
audit fixes npm

Co-authored-by: Viktor Avelino <64113566+viktoravelino@users.noreply.github.com>
2026-01-21 13:49:51 +00:00
04f55be8c1 fix: Generate cookie properly with HTTPONLY (#11116)
* fix: Generate cookie properly with HTTPONLY

* [autofix.ci] apply automated fixes

* Ruff checks

* [autofix.ci] apply automated fixes

* Update login.py

* Update test_login.py

* Update test_login.py

* Update utils.py

* Update modelProviderCount.spec.ts

* [autofix.ci] apply automated fixes

* Revert "Update modelProviderCount.spec.ts"

This reverts commit b3080d669e.

* Revert "Update modelProviderCount.spec.ts"

This reverts commit b3080d669e.

* Update component_index.json

* [autofix.ci] apply automated fixes

* Bug fixes from AI analysis

* Update login.py

* [autofix.ci] apply automated fixes

* Update component_index.json

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: ogabrielluiz <gabriel@langflow.org>
2026-01-21 13:41:50 +00:00
6f30ed2596 feat: Add PUT endpoint for flows upsert (#11368)
* feat: Implement upsert functionality for flows with conflict handling and validation

* test: add tests for upsert

* [autofix.ci] apply automated fixes

* fix: handle None data in webhook check

* fix: allow clearing endpoint_name on PUT update

* fix: validate empty fs_path on update and assert login success in test

* refactor: address review feedback - improve docstrings, use 404 for security, consistent JSONResponse

* refactor: move persistence logic into _new_flow and simplify return pattern

_new_flow now handles flush, refresh, and filesystem save internally,
returning FlowRead directly. This eliminates duplication between POST
and PUT endpoints. PUT endpoint now uses single return with variable
status code.

* fix: update upload endpoint to work with refactored _new_flow

_new_flow now handles persistence and returns FlowRead directly,
so the upload endpoint no longer needs to call flush/refresh/save.

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-20 20:32:52 +00:00
b3df3a7c35 feat: Add global variable support for MCP server headers (#11300)
* feat: Add global variable support for MCP server headers

- Add IOKeyPairInputWithVariables component for header inputs with global variable dropdown
- Integrate global variable selection in MCP Server modal
- Add variable resolution in MCP server headers (_resolve_global_variables_in_headers)
- Add variable loading and decryption in MCP API endpoint and component
- Add unit tests for variable resolution utility function

* test: Add comprehensive unit tests for IOKeyPairInputWithVariables component

- Add 15 test cases covering rendering, user interactions, and edge cases
- Test global variable dropdown functionality and selection
- Test row addition/removal and input validation
- Test duplicate key detection and error handling
- Test initialization from existing values with variable badges
- Addresses CodeRabbit review feedback for frontend test coverage

* [autofix.ci] apply automated fixes

* test: fix frontend Jest tests for IOKeyPairInputWithVariables component

- Added proper mocks for IconComponent, InputComponent, and Input
- Used explicit TypeScript types instead of 'any' for mock props
- Fixed test assertions to match actual component structure (Type key.../Type a value... placeholders)
- All 8 tests now pass without console warnings
- Tests cover: rendering, onChange callbacks, add/delete buttons, global variables toggle

* fix: restore session_scope import to module level for test mocking

The session_scope import was moved inside _process_headers method, which broke
unit tests that mock it at the module level. Restored it to module-level imports
with noqa comment to prevent ruff from removing it, and removed the duplicate
import from inside the method.

Fixes: test_database_config_used_when_no_value_config

* chore: trigger CI rebuild to test for flaky Playwright test

* Update component index

* chore: update Nvidia Remix starter project with session_scope import fix

* perf(mcp): optimize global variable loading to prevent timeouts

Only load global variables from database when headers are actually present
in the MCP server config. This avoids unnecessary database queries for
servers without headers, significantly improving performance and preventing
timeouts in tests that repeatedly connect to MCP servers.

The optimization adds a conditional check before the database query:
- has_headers = server_config.get('headers') and len(server_config.get('headers', {})) > 0
- Only queries database if has_headers is True

This resolves the cumulative delay issue where each MCP connection retry
was performing an expensive database query even when no headers were configured.

* [autofix.ci] apply automated fixes

* fix(test): update Playwright test for new header input component structure

Update MCP server Playwright test to work with the new KeyPairInputWithVariables
component that uses InputComponent with global variable support for header values.

Changes:
- Use getByPlaceholder() instead of getByTestId() for header value fields
- Header value fields now use InputComponent which doesn't expose data-testid

The new component structure wraps the value input in InputComponent to provide
global variable dropdown functionality, requiring a different selector strategy.

* chore: update Nvidia Remix starter project

Update starter project file that was modified by the automated build pipeline.

* Update component index

* fix: replace jose with jwt (#11285)

* replace jose with jwt

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* pin to lower pyjwt

* pyjwt version

* [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

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* Update component index

* Update component index

* [autofix.ci] apply automated fixes

* Update component index

* chore: trigger CI rebuild

* [autofix.ci] apply automated fixes

* refactor: remove langflow imports from lfx MCP component

Separate lfx from langflow by using the service layer pattern:

Changes:
1. Extended VariableServiceProtocol in lfx with get_all_decrypted_variables()
2. Implemented the method in langflow's DatabaseVariableService
3. Updated MCP component to use get_variable_service() instead of direct imports
4. Added comprehensive unit tests for the new service method

Benefits:
- Clean separation between lfx and langflow packages
- Uses existing service architecture pattern
- Maintains performance optimization (only loads variables when needed)
- No breaking changes to functionality

Removed direct langflow imports from mcp_component.py (auth utils, Variable model, settings service, and sqlmodel select).

Files modified:
- src/lfx/src/lfx/services/interfaces.py
- src/backend/base/langflow/services/variable/service.py
- src/lfx/src/lfx/components/models_and_agents/mcp_component.py
- src/backend/tests/unit/services/variable/test_service.py (added 3 new tests)

* fix: Handle global variables correctly for components

- Fix UUID type conversion in variable service to prevent SQLAlchemy errors
- Add type-based decryption: only decrypt CREDENTIAL variables, not GENERIC
- Improve error handling in decrypt_api_key to prevent crashes on second attempt
- Resolves 'str object has no attribute hex' error when loading global variables

This fixes issues with watsonx.ai and MCP components when using global variables.

* [autofix.ci] apply automated fixes

* Update component index

* Consider other failed decryption cases

* fix(variable-service): Fix UUID conversion and type-based variable decryption

- Convert string to UUID in get_all_decrypted_variables() to prevent SQLAlchemy errors
- Implement type-based decryption: only decrypt CREDENTIAL variables, not GENERIC
- Simplify get_all() to return stored values directly for both variable types
- Fixes watsonx component update error (400 status) when editing values

Resolves issue where editing watsonx.ai component values caused:
'Error while updating the Component' with 400 client error

* [autofix.ci] apply automated fixes

* chore: update starter project files

* fix: remove explicit value assignment to allow credential redaction

* fix: handle credential redaction in frontend and fix Playwright test hangs

- Update GlobalVariableModal to handle None credential values
- Allow credential updates without re-entering value
- Fix userSettings test by using dispatchEvent for clicks
- Add waitForTimeout after clicks to prevent hangs
- Use .first() for Fields selectors to avoid strict mode violations

* [autofix.ci] apply automated fixes

* Update component index

* [autofix.ci] apply automated fixes

* fix: improve error handling and logging for variable decryption

Address code review feedback:

1. Increase log level from debug to warning when decryption fails in
   auth/utils.py. Returning empty string silently could cause issues,
   so warning level makes failures more visible.

2. Follow established pattern in mcp.py for variable decryption:
   - Only decrypt CREDENTIAL type variables (encrypted in storage)
   - Use GENERIC type variables as-is (stored as plaintext)
   - Change from silent fallback (adebug) to explicit error (aerror)
   - This matches the pattern in get_all_decrypted_variables()

These changes make error handling more explicit and consistent across
the codebase.

* Update component index

* Update component index

* [autofix.ci] apply automated fixes

* chore: trigger CI rebuild

* [autofix.ci] apply automated fixes

* Updates to ensure backwards compatibility for encrypted generic variables

* Skip failed decryption

* Fix test

* ruff

* update starter projects

* ruff

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* comp index

* [autofix.ci] apply automated fixes

* remove unnecessary step in pandas series conversion

---------

Co-authored-by: Steve Haertel <shaertel@ca.ibm.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: Jordan Frazier <jordan.frazier@datastax.com>
2026-01-20 19:03:30 +00:00
50bab0a4e7 feat: introduce component hash history (#11311)
* Remove hash history from index

* first draft of adding component id and stable hash history

* Simplify - use version -> hash mapping

* Add unit tests and simple safeguards for stable vs nightly

* Add uniqueness check for comp id in comp index build

* Remove component id - use name as unique id

* Use component name as unique identifier - fix tests

* regenerate hash history; add script to makefile

* Remove component id

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* ruff

* comp index

* ruff

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* update index

* ruff

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-20 14:00:54 +00:00
5497f93bb5 fix: add debounce functionality to search input in FlowSidebarComponent (#11357)
feat: add debounce functionality to search input in FlowSidebarComponent
2026-01-19 19:27:13 +00:00
ac273926e1 refactor: Replace aiofile with aiofiles for async file operations (#11351)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-19 09:29:17 -03:00
d62a9a6720 test: Standardize service mocking with shared pytest fixtures for reliable test isolation (#11350) 2026-01-19 08:08:38 -03:00
2f274012e1 feat: Add pluggable services architecture in lfx and comprehensive testing (#10111)
* 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

* [autofix.ci] apply automated fixes (attempt 2/3)

* [autofix.ci] apply automated fixes (attempt 3/3)

* test(services): improve variable service teardown test with public API assertions

* docs(pluggable-service-layer): add docstrings for service manager and implementations

* Update component index

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-16 20:09:07 +00:00
6b4f946818 feat: Model Provider Input Patches for Design (#11218)
* feat: add IBM icon and reorganize IBM WatsonX icon structure

- Add new IBM logo icon (IBM.jsx, ibm.svg) for generic IBM provider branding
- Reorganize icon directory structure: move IBMWatsonx to IBM parent folder with watsonx subfolder
- Export both WatsonxAiIcon and IBMIcon from consolidated IBM index
- Update icon mapping in use-get-model-providers to support both 'IBM WatsonX' and 'IBM watsonx.ai' provider names
- Standardize quote style from double to single quotes across use-get-model-providers.

* added doc link support

* refactor: standardize IBM WatsonX icon references and quote style

- Update all WatsonX model metadata to use generic "IBM" icon instead of "WatsonxAI"
- Standardize quote style from double to single quotes in ModelProvidersPage imports

* refactor: standardize quote style and update LLM section label in ModelSelection

- Change all double quotes to single quotes in ModelSelection component and tests
- Update "LLM Models" label to "Language Models" for consistency
- Standardize arrow function formatting across component

* fixes the model provider streching the page

* fixes border not being fully hidden

* updated api doc url

* fix: improve model field default value logic and provider field visibility

- Update default value setting logic to check current model value from build_config instead of field_value parameter
- Only set default when field_name is None (initial load) or when model field is being set and is empty
- Fix provider-specific field visibility to use current model value from build_config when field_name is not model
- Ensure provider fields are shown/hidden correctly regardless of which field triggere

* fix: improve model validation and refresh logic in model provider modal

- Add client-side filtering of disabled models in ModelInputComponent using enabled models data
- Implement validateModelValue function to ensure selected models are available and valid
- Move refreshAllModelInputs call from ModelProvidersContent cleanup to ModelProviderModal handleClose with 1000ms delay to ensure database transactions complete
- Remove race condition between cleanup effect and debounced mutateTemplate by not

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

* revery lru cache

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* updated component_index

* updated templates

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* refactor: convert use-refresh-model-inputs and api types to single quotes and add ModelOptionType

- Convert double quotes to single quotes throughout use-refresh-model-inputs.ts and api/index.ts
- Add ModelOptionType interface with name, id, icon, provider, and metadata properties
- Update validateModelValue to use typed ModelOptionType instead of any for option filtering

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* fixed tests

* removed sticky property

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-16 18:54:17 +00:00
0689810bf3 fix: Initialize modal state from initialData and improve test stability (#11328) 2026-01-16 10:29:15 -03:00
e970dcef94 fix(tests): Update copy-code-button click to target first element (#11327) 2026-01-16 09:04:07 -03:00
c57e52798d docs: upgrade to node LTS version including security fix (#11315)
upgrade-node-lts-verison
2026-01-15 19:35:25 +00:00
64054fcb2f docs: langflow does not support asyncpg driver (#10500)
* add-troubleshooting-and-note

* admonition-type
2026-01-15 17:53:41 +00:00
e269a6830d docs: troubleshooting for signin error message (#11268)
* troubleshooting

* clarify-superuser-is-active-behavior

* clarify-starting-server

* fix-broken-link

* typo

* peer-review

* Apply suggestions from code review

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>

* clarify-send-creds-to-user

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
2026-01-15 17:08:20 +00:00
0e033766e3 feat: adds markdown as an output for the URL component (#11312)
* feat: adds markdown as an output for the URL component

I found that I wanted to retain structure and URLs when loading from a URL, but HTML output provided too many useless tokens and text output lost that structure. This uses Microsoft's Markitdown package to turn results of the RecursiveURLLoader into markdown.

* [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>
2026-01-15 16:08:58 +00:00
583d2536d0 fix: add validation for api key for global variables (#11270)
* add validation for api key for global variables

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-15 15:03:44 +00:00
3ca5447956 fix: Prevent duplicate code blocks during streaming (#11261)
* fix code blocks error

* [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>
2026-01-15 13:30:15 +00:00