Commit graph

16,549 commits

Author SHA1 Message Date
Edwin Jose
575cb7fb17
ref: Update Ruff per-file ignores for tests and scripts (#9206)
Update Ruff per-file ignores for tests and scripts

Added BLE001 to the per-file ignores for test files to allow broad-exception catching. Reformatted the scripts ignore list for consistency.
2025-07-29 14:41:58 +00:00
April I. Murphy
575cde3e8d
docs: Audit admonitions, related links, and prerequisites for style and consistency (#9217)
* add some related links

* admonitions audit

* initial prereq audit

* standardize install LF prereqs

* some coderabbit
2025-07-29 13:25:16 +00:00
Gabriel Luiz Freitas Almeida
cb34e4fe80
fix: add data-testid to new project button in EmptyFolder component (#9222) 2025-07-29 08:56:14 -03:00
Cristhian Zanforlin Lousa
86c54de508
feat: Add .env file support to Windows build scripts (#9214)
* 🔧 (build_and_run.bat): add support for loading environment variables from .env file
🔧 (build_and_run.ps1): add support for loading environment variables from .env file

* 🐛 (build_and_run.bat): fix path to .env file to correctly load environment variables
🐛 (build_and_run.ps1): fix path to .env file to correctly load environment variables

* 🔧 (build_and_run.bat): set env file parameter if .env file exists to pass to langflow run
🔧 (build_and_run.ps1): set env file parameter if .env file exists to pass to langflow run

* 📝 (build_and_run.bat): improve script to dynamically find and set .env file path for Langflow run
📝 (build_and_run.ps1): enhance script to dynamically locate and set .env file path for Langflow run

* Update scripts/windows/build_and_run.bat

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* 🔧 (build_and_run.ps1): refactor script to use a boolean flag 'useEnvFile' instead of a string variable 'envFileParam' to improve readability and maintainability
🔧 (build_and_run.ps1): update uvicorn command to use '--env-file' flag directly instead of building the command with a string variable

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-28 21:11:49 +00:00
Cristhian Zanforlin Lousa
629a6d2837
fix: Exclude base path from custom component loading (#9098)
* ♻️ (components.py): refactor get_and_cache_all_types_dict function to filter out base components path and only load custom components for traditional full loading. This improves code readability and maintainability.

*  (test_component_loading_fix.py): Add tests for the component loading fix that filters out BASE_COMPONENTS_PATH from custom components.

* [autofix.ci] apply automated fixes

* 🐛 (test_component_loading_fix.py): remove unnecessary test case for GitHub issue #8967 and fix test_component_merging_logic method to handle custom component loading failure properly
♻️ (test_component_loading_fix.py): refactor test_component_loading_fix.py to improve readability and remove redundant try-except block in test_component_merging_logic

* [autofix.ci] apply automated fixes

* ♻️ (components.py): refactor _process_single_module function to simplify create_component_template call and improve code readability
♻️ (components.py): refactor _determine_loading_strategy function to handle component loading strategy based on lazy_load_components setting and improve code structure

* 📝 (components.py): add comments and improve readability in _process_single_module function
 (components.py): introduce _determine_loading_strategy function to determine and execute the appropriate component loading strategy based on settings service

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2025-07-28 19:00:44 +00:00
Mendon Kissling
643a8ccd96
docs: refresh remote server page (#9189)
* clean-up-and-clarify

* code-review

* correct-dockerfile
2025-07-28 18:44:59 +00:00
Yuqi Tang
d0e4e7d1cc
feat: Add template tests (#9083)
* add template tests

* remove files

* adding validate flow build

* add validate endpoint and flow execution

* Update .github/workflows/template-tests.yml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update src/backend/base/langflow/utils/template_validation.py

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* [autofix.ci] apply automated fixes

* change workflow running

* add ci

* fix test

* fix test

* delete when push

* fix: Exclude template tests from unit test bundle

Template tests are already run separately in CI via the test-templates job.
This change prevents duplicate execution and eliminates timeout failures
in the unit test suite by excluding slow template execution tests.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Exclude template tests from unit test bundle

Template tests are already run separately in CI via the test-templates job.
This change prevents duplicate execution and eliminates timeout failures
in the unit test suite by excluding slow template execution tests.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Exclude template tests from unit test bundle

Template tests are already run separately in CI via the test-templates job.
This change prevents duplicate execution and eliminates timeout failures
in the unit test suite by excluding slow template execution tests.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Remove remaining merge conflict markers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Improve validate.py unit tests to eliminate CI failures

Fixed 4 failing tests in test_validate.py:
- test_code_with_syntax_error: Better error message handling for syntax errors
- test_raises_error_for_missing_function: Handle StopIteration along with ValueError
- test_creates_simple_class: Use optional constructor parameter to avoid TypeError
- test_handles_validation_error: Use proper ValidationError constructor from pydantic_core
- test_creates_context_with_langflow_imports: Remove invalid module patching
- test_creates_mock_classes_on_import_failure: Use proper import mocking

All 50 validate tests now pass consistently, improving CI stability.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* enhance: Add comprehensive edge case tests for template_validation.py

Added 6 additional test cases to improve coverage of template_validation.py:
- test_validate_stream_exception: Tests Graph.validate_stream() exception handling
- test_code_validation_other_exceptions: Tests TypeError/KeyError/AttributeError handling
- test_vertices_sorted_without_end_vertex_events: Tests variable usage tracking
- test_vertex_count_tracking: Tests vertex_count increment paths
- test_empty_lines_in_stream: Tests empty line handling in event streams
- test_event_stream_validation_exception: Tests exception handling in _validate_event_stream

These tests target the remaining 7 uncovered lines to maximize coverage percentage.
Total tests: 40 (all passing)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-28 18:32:24 +00:00
Yuqi Tang
b7513e5c6f
feat: Add smoke tests workflow for PR validation (#9125)
* feat: Add smoke tests workflow for PR validation

- Adds smoke-test label trigger for running tests without API keys
- Runs backend tests excluding api_key_required markers
- Runs full frontend test suite with mocked APIs
- Provides fast feedback (~10-15 min) before lgtm label
- Enables external contributors to validate changes without API costs
- Comments results back to PR automatically

Usage: Add 'smoke-test' label to any PR to trigger

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: Fix YAML indentation in smoke-tests workflow script block

* refactor: Focus smoke tests on critical functionality only

- Run only 10 essential backend test files (version, schema, serialization, etc.)
- Run only frontend unit tests (skip integration/e2e)
- Reduce timeout from 15 to 8 minutes
- Target critical functionality without external dependencies
- Avoid problematic database/API-dependent tests

* fix: Use correct Jest CLI option --testPathPatterns

* add frontend tests

* add tests

* change to essential tests

* fix: Create superuser in test_load_bundles_from_urls test

The test_load_bundles_from_urls test was failing because the load_bundles_from_urls
function expects a superuser to exist in the database, but the test client fixture
sets LANGFLOW_AUTO_LOGIN=false by default, which doesn't create a superuser.

This fix creates a superuser in the test database before calling the function,
resolving the 'Superuser not found in the database' error.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* add on conditions

* fix: Check PR labels correctly for smoke test trigger

Change condition from github.event.label.name to
github.event.pull_request.labels.*.name to work with all trigger
events (synchronize, opened, etc), not just labeled events.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* add workdispatch

* remove initial test

* adding timeout minutes

* edit env var

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-28 18:27:05 +00:00
Mendon Kissling
ab90aa7439
docs: refresh develop overview page (#9177)
* content

* docs-review
2025-07-28 18:08:19 +00:00
April I. Murphy
7f04e15602
docs: Audit use of tabs and details (#9196)
* audit details

* tabs pt 1

* tabs pt 2

* tabs pt 3

* tabs to details
2025-07-28 17:09:14 +00:00
Deon Sanchez
51715ea0c5
refactor: Update Blank Flow Name (#9089)
* refactor: Standardize import statements and improve code formatting in reactflowUtils.ts

* [autofix.ci] apply automated fixes

* refactor: Standardize string quotes and improve test readability across multiple test files

- Updated string quotes from double to single in various test files for consistency.
- Enhanced test readability by replacing specific text selectors with test IDs.
- Adjusted wait conditions and element interactions to align with updated selectors.
- Ensured all tests maintain functionality while improving code clarity.

* [autofix.ci] apply automated fixes

* test: Add comprehensive Jest tests for createNewFlow function

- Introduced a new test file for the createNewFlow function to validate its behavior.
- Covered various scenarios including default value handling, flow parameter processing, edge cases, and special property handling.
- Ensured immutability of input parameters and consistency of output for the same inputs.
- Mocked dependencies to isolate the function's logic and improve test reliability.

* [autofix.ci] apply automated fixes

* test: Standardize string quotes and improve readability in auto-save and MCP server tests

- Updated string quotes from double to single for consistency across test files.
- Enhanced test readability by utilizing test IDs for element selection.
- Adjusted wait conditions and interactions to align with updated selectors while maintaining test functionality.

* [autofix.ci] apply automated fixes

* chore: update ESLint configuration and improve test selectors in auto-save-off.spec.ts

- Simplified ESLint configuration by removing unnecessary plugins and options.
- Enhanced test selectors in auto-save-off.spec.ts to use test IDs for better reliability and clarity.

* chore: enhance ESLint configuration with Prettier integration and improved rules

- Added Prettier as a plugin to the ESLint configuration for better code formatting.
- Updated parser options and extended rules for improved code quality and consistency.
- Ensured compatibility with TypeScript and React environments.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-28 16:13:40 +00:00
Rodrigo Nader
81d4eb0d65
fix: prevent unintentional sidebar text selection (#8895)
* fix(frontend): make entire sidebar non-selectable, clean up redundant select-none, keep cursor-default on headers/labels

* [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>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
2025-07-28 15:41:26 +00:00
Lucas Oliveira
41e101499a
fix: store mcp sse headers and use them on connection (#9148)
* Store mcp server headers

* Add headers on pre check url and is valid url

* adds validation of headers according to RFC 7230

* Fixed sanitized value

* Added backend tests for mcp util.py to increase coverage

* [autofix.ci] apply automated fixes

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

* make key pair input use flatmap id on data test ids

* added testids

* added random test names and added tests for persistence

* fix ruff lint

* [autofix.ci] apply automated fixes

* Fix mypy lint errors

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-26 01:16:18 +00:00
XiaochuanLyu
324caf486c
refactor: remove AsyncFileSink logger, add rotation support, and update docs (#9105)
* refactor(logs): remove asyncfilesink logger, add rotation support, and update docs

* refactor(logs): remove asyncfilesink logger, add rotation support, and update docs

---------

Co-authored-by: Harry Lyu <harrylyu@umich.edu>
Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
2025-07-25 17:50:45 +00:00
Mendon Kissling
fe1e45ce2a
docs: refresh external postgresql database page (#9174)
* coming-back

* refresh-postgresql-page

* add-why

* Apply suggestions from code review

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

* clarify-example-yml

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
2025-07-25 13:24:21 +00:00
Lucas Oliveira
e484e74803
fix: refactor auth modal design for mcp composer (#9180)
* added biome config

* added classes on footer

* added new auth size

* changed auth modal design

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-24 21:53:28 +00:00
Mike Fortman
242cecea0b
fix: Mcp composer tool header fix (#9161)
* fix header and button alignment

* color enhancement

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-24 20:18:01 +00:00
Ítalo Johnny
b5b9d7e77e
deps: update langchain and langchain-community to support Perplexity (#9166) 2025-07-24 18:15:06 +00:00
Cristhian Zanforlin Lousa
264681bf32
fix: Add releaseStage-aware version comparison logic (#8998)
*  (AccountMenu/index.tsx): Add computeNonPrereleaseVersion function to calculate non-prerelease version for comparing versions
📝 (utils.ts): Add computeNonPrereleaseVersion function to extract non-prerelease version for version comparison in AccountMenu component

* refactor: replace computeNonPrereleaseVersion with stripReleaseStageFromVersion for version comparison in AccountMenu component

- Updated AccountMenu to utilize stripReleaseStageFromVersion for determining the latest version.
- Removed computeNonPrereleaseVersion function from utils and replaced it with stripReleaseStageFromVersion for clarity and consistency in version handling.

*  (strip-release-fn.test.ts): add standalone test for stripReleaseStageFromVersion function to avoid dependency issues in test environment

* 📝 (strip-release-fn.test.ts): add detailed documentation for the stripReleaseStageFromVersion function to explain its functionality and examples

* 🐛 (python_code_structured_tool.py): fix issue with handling default values in function arguments to prevent potential errors

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
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>
2025-07-24 01:17:53 +00:00
Lucas Oliveira
169b687ed0
fix: refactor bundle and component names (#9140)
* Changed Youtube to YouTube

* Updated AIML to AI/ML API

* Updated AI/ML Model name

* Changed Anthropic description

* updated arXiv name

* Set Astra Vectorize as legacy

* Updated get env var

* Updates firecrawl names

* Updated Icon for Google Gen AI embeddings

* Add Space on Home Assistant

* Updated Hugging Face name

* Updated Maritalk Name

* Updated Not Diamond name

* Updated ScrapeGraph names

* Changed SearchApi Name

* Changed TwelveLabs naming

* Updated AstraDB naming

* Updated VertexAI naming

* Updated Wolfram

* Updated Yahoo naming

* Updated Yahoo Finance name

* Updated Yahoo Finance

* [autofix.ci] apply automated fixes

* Update google serper bundle

* updated ai ml icon name

* Updated maritalk

* Changed ai ml api name

* removed openai from base url

* Revert components-bundles changes

* revert changes on components-vector-stores

* Revert changes on deployment-hugging-face-spaces

* Revert changes on integrations-nvidia-ingest

* Revert changes on release-notes

* Update changes on sequential agent

* [autofix.ci] apply automated fixes

* fixed filterSidebar test

* updated filter edge test

* updated shard 11 test with new sidebar names

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-23 23:06:45 +00:00
Mike Fortman
0ed47065f5
refactor: Update mcp composer json (#9158)
* json update

* fix json formatting

* linter fix

* lint round 2

* lint fix attempt 3

* ignore rule instead
2025-07-23 22:35:20 +00:00
April I. Murphy
63a7bebb44
docs: fix typo in left nav (#9160)
* fix typo

* restart build
2025-07-23 21:10:40 +00:00
April I. Murphy
f8d8ff4599
docs: Restructure navigation, refactor all component documentation, among many other things (#9115)
* reorg pt 1

* nav reorg pt 2

* update sidebar ad

* resolve comments and combine app pages

* playground and voice mode rewrite

* fix link

* add separate bundle pages

* add new pages to sidebar

* working on bundles

* moving content to new bundle pages

* move some sidebar items

* fix build

* nav labels

* small edits

* Working on helpers

* core components work

* wrapping up some more agent duplication

* aligning file management

* webhooks and file management

* data components

* address vector store and some legacy components

* finish logic params

* some work on processors

* remove unneeded pages and tidy some llm info

* progress on bundles pt 1

* bundles pt 2

* bundles pt 3

* finish looking at integrations

* it is done

* fix errors

* coderabbit and typos

* coderabbit pt 2

* resolving mcs pt 1

* separate agents and mcp

* still working on some memory stuff

* finish message history alignment

* incorporate PR 9138

* missed a link

* file management ui

* align w ui pr

* Apply suggestions from code review

* memory edits after discussion
2025-07-23 20:20:59 +00:00
Edwin Jose
31d37dff75
fix: Relax redis dependency version constraint (#9154)
Relax redis dependency version constraint

Changed the redis dependency in pyproject.toml from an exact version (5.2.1) to a minimum version (>=5.2.1) to allow for newer compatible releases.
2025-07-23 20:03:31 +00:00
Lucas Oliveira
e58879f10b
fix: make cleanlab evaluator outputs not be grouped (#9149)
* Added color to number

* Group cleanlab outputs

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-23 18:48:32 +00:00
Jordan Frazier
115b0f535f
ref: make superuser creation more multi-user friendly (#9019)
* Fix superuser creationg race condition

* remove now unnecessary race condition check

* Add tests

* [autofix.ci] apply automated fixes

* ruff

* [autofix.ci] apply automated fixes

* clean up tests

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-23 18:45:03 +00:00
Lucas Oliveira
e6ca374d07
fix: updated design of info button on files component (#9146)
* Updated design of info button

* [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>
2025-07-23 18:25:59 +00:00
Mendon Kissling
b519057df7
docs: reduce duplicate content in contributing.md (#9136)
reduce-duplicate-setup-content
2025-07-23 14:17:29 +00:00
Victor-w-Madeira
78a2ff69b6
docs: expand multiple outputs section to include group_outputs behavior (#9075)
* Expand multiple outputs section with group_outputs behavior

* Update docs/docs/Components/components-custom-components.mdx

Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>

* Update docs/docs/Components/components-custom-components.mdx

Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>

---------

Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
2025-07-23 13:52:40 +00:00
Mendon Kissling
d59c890dce
docs: langflow 1.5 auto-login security doc (#9057)
* langflow-auto-login-security-doc

* trailing-space

* auto-not-auth

* clarify-new-behavior

* env-var-default

* security-md-and-var-names

* Apply suggestions from code review

* Update docs/docs/Configuration/environment-variables.mdx

* Update docs/docs/Configuration/configuration-authentication.mdx

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
2025-07-23 13:48:46 +00:00
Lucas Oliveira
491af2ec77
fix: update text truncation limits to allow better visibility (#9147)
* Updated limits to triple

* removed update of items length
2025-07-23 13:41:44 +00:00
Lucas Oliveira
9e24202466
feat: adds authentication to mcp server under feature flag (#9095)
* init auth forms

* Add iam endpoint

* Add radix radio

* Add radio group UI element

* Add IAM endpoint to types

* Add auth modal

* Remove auth from tools component

* Add auth modal to mcp server tab

* Add placeholders to fields

* Add dynamic headers

* changed authentication name

* CHanged paddings

* Added header and button under feature flag

* [autofix.ci] apply automated fixes

* update api key form field

* add credential handling and fix feature flag

* Update autologin condition

* design update

* style updates

* ci details

* revert ci logs

* test update, ff name update, and username + pass -> basic

* restore ci

* default fix

* added iam endpoint

* add oauth

* remove secretstr

* updated backend test and schema

* updated test

* updated test user can update

* test fix

---------

Co-authored-by: Mike Fortman <michael.fortman@datastax.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-22 20:04:47 +00:00
Cristhian Zanforlin Lousa
c1d417adf2
fix: Improve duplicate flow name handling and add comprehensive tests (#8962)
*  (flows.py): Improve flow naming logic to handle duplicate names more effectively and accurately
📝 (test_rename_flow_to_save.py): Add unit tests to ensure correct numbering and handling of duplicate flow names

* [autofix.ci] apply automated fixes

*  (test_rename_flow_to_save.py): refactor test functions to remove unnecessary session parameter and improve code readability

* 📝 (flows.py): improve regex pattern to extract numbers only from flows following a specific naming convention to avoid extracting numbers from the original flow name if it contains parentheses

* [autofix.ci] apply automated fixes

* 📝 (flows.py): improve comments for better readability and understanding of regex usage in extracting numbers from flow names

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-22 17:45:15 +00:00
April I. Murphy
bd8e3a162a
docs: Move small edits to reduce scope of PR 9115 (#9135)
port a few missed things
2025-07-22 16:39:57 +00:00
Mendon Kissling
8f84d9100d
docs: user feedback items (#9122)
* db-location-and-agent-memory

* cleanup

* postgresql-for-agent-memory

* postgresql-in-message-history

* remove-mcp-tutorial-note
2025-07-22 16:22:30 +00:00
Mendon Kissling
7b3c4b2c0d
docs: update integrations-docling.mdx (#9131)
Add apostophes for extra install.
2025-07-22 15:39:12 +00:00
April I. Murphy
2fa2a43f96
docs: Various edits related to style, syntax, and adding more detail to some pages (#9132)
* port unrelated changes from IA PR

* few more ports

* fix build

* edit to try to restart build
2025-07-22 15:20:31 +00:00
Rodrigo Nader
3bb22b29cc
feat: Add dual output support to Agent component with structured JSON parsing (#8836)
* feat: Add dual output support to Agent component with structured JSON parsing

## Summary
- Add "Structured Response" output alongside existing "Response" output
- Filter out conflicting json_mode field from OpenAI inputs
- Implement robust JSON parsing with fallback handling

## Changes Made
### Agent Component (agent.py)
- Add second output: "Structured Response" (Data type) with tool_mode=False
- Filter json_mode from OpenAI inputs to prevent UI conflicts
- Add json_response() method with multi-stage JSON parsing:
  - Direct JSON parsing for valid responses
  - Regex extraction for embedded JSON in text
  - Graceful error handling with diagnostic info
- Share execution between outputs (no duplicate agent runs)
- Fix model building to handle missing json_mode attribute

### Tests (test_agent_component.py)
- Add 9 comprehensive test cases covering:
  - Dual output structure validation
  - Input filtering verification
  - JSON parsing (valid, embedded, error cases)
  - Model building without json_mode
  - Shared execution efficiency
  - Frontend node structure
  - Component initialization

## Benefits
- Users get both Message and Data output types to choose from
- Clean UI without confusing duplicate JSON toggles
- Robust JSON parsing handles various response formats
- Efficient single-execution approach
- Maintains backward compatibility

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* [autofix.ci] apply automated fixes

* update to templates with  model list update

* [autofix.ci] apply automated fixes

* Update test_agent_component.py

* update to the test and update to templates

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-07-21 16:33:30 +00:00
Mendon Kissling
400ff562c4
docs: update components-helpers.mdx (#9120) 2025-07-21 15:38:25 +00:00
Cristhian Zanforlin Lousa
16d34e0a99
feat: Add CustomMarkdownField wrapper component (#9042)
 (custom-markdown-field.tsx): create a new CustomMarkdownField component to encapsulate MarkdownField with additional props
♻️ (chat-message.tsx): refactor ChatMessage component to use CustomMarkdownField instead of MarkdownField for better customization and reusability
2025-07-21 14:24:58 +00:00
Eric Pinzur
65a977cba2
feat: added code coverage reporting (#9081)
* added code coverage reporting

* fix issues

* more cleanup

* fix action configs

* cleanup token debug

* added comments to codecov.yml config

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-07-21 14:03:34 +00:00
Gabriel Luiz Freitas Almeida
ca595ac7fb
feat: add module and code hash to component's metadata (#8737)
* feat: filter out base components path in custom component loading

* revert changes to allow testing the function

* feat: add module_name parameter to custom component template functions

* feat: include full module name in component template creation

* feat: add module metadata to various starter project JSON files

* feat: add code hash generation for custom component templates

* test: add unit tests for code hash and module metadata functionality

* feat: add code hash to metadata in various starter project JSON files

* feat: refactor code hash generation to accept source code and class name

* feat: implement loading strategy for custom components in settings service

* Update metadata for various starter project JSON files to include code hashes and module references for ChatInput and ChatOutput components. This enhances traceability and consistency across the project configurations.

* refactor: improve _generate_code_hash function for better error handling and clarity

- Simplified the logic to generate a SHA256 hash of the source code.
- Added explicit error handling for empty source code, encoding issues, and type errors.
- Updated docstring to reflect changes in argument descriptions and added information about raised exceptions.

* test: add unit tests for metadata functionality in custom utils

- Introduced tests for the _generate_code_hash function, covering basic hash generation, error handling for empty and None source, hash consistency, and uniqueness for different code.
- Added tests to verify metadata addition in template building functions, ensuring that module names and code hashes are correctly included in the metadata of custom components.

---------

Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-07-18 18:03:17 +00:00
namastex888
d9f3ced8b0
fix: enhance API snippet generation with file upload support and consistent authentication (#9018)
* feat: implement file upload API snippet generation

Add proper two-step file upload support for API code generation:
- Detect file tweaks in ChatInput (string), File/VideoFile (path/file_path)
- Generate step-based cURL commands with separate copy buttons
- Fix ChatInput to use correct /api/v1/run endpoint with tweaks structure
- Update JavaScript and Python generators with proper endpoints and payloads
- Support dynamic node IDs and processedPayload values
- Implement step parsing UI for cURL with proper formatting

Co-Authored-By: Automagik Genie <genie@namastex.ai>

* fix: update JavaScript API snippet generator for native Node.js

Replace browser-based FormData approach with native Node.js http module
- Use built-in fs, http, and path modules instead of browser APIs
- Manually construct multipart/form-data payloads
- Add proper error handling and HTTP request helpers
- Support both ChatInput and File/VideoFile upload scenarios
- Maintain authentication header support

Co-Authored-By: Automagik Genie <genie@namastex.ai>

* fix: include output_type, input_type, input_value in File component cURL snippets

File/VideoFile components were missing the required payload fields when
generating cURL commands, causing flows to fail execution. Added the missing
fields to match the working pattern used in Chat Input components.

Co-Authored-By: Automagik Genie <genie@namastex.ai>

* fix: include output_type, input_type, input_value in Python and JavaScript File component snippets

File/VideoFile components were missing the required payload fields in Python
and JavaScript generators, matching the fix applied to cURL snippets.

Co-Authored-By: Automagik Genie <genie@namastex.ai>

* fix: use 'path' field for File components instead of 'file_id'

File components require the 'path' field from v2 upload response as an array,
not 'file_id'. Updated all three generators:
- Changed file_id to file_path variable extraction
- Changed "file_id": value to "path": [value] in tweaks
- Updated placeholder text for consistency

This fixes the "No files to process" error in File components.

Co-Authored-By: Automagik Genie <genie@namastex.ai>

* fix: implement additive file upload API snippet generation

- Fixed UI parsing to handle multiple file components correctly
- Consolidated upload steps into single step with multiple commands
- All file components (ChatInput, File, VideoFile) now work additively
- Simplified UI to show only 2 steps: uploads and execution
- Improved scrolling for better debugging experience
- Removed debug console.log statements

* fix: enhance API snippet generation with file upload support and consistent authentication

- Add multi-step file upload handling for ChatInput, File, and VideoFile components
- Implement automatic session ID generation using UUIDs across all snippets
- Ensure API key is always required in generated code (Python, JavaScript, cURL)
- Remove unused isAuth parameter from code generation logic
- Add comprehensive unit tests for file detection and code generation
- Support both Unix/Linux and PowerShell platforms for cURL commands

* [autofix.ci] apply automated fixes

* 📝 CodeRabbit Chat: Fix curl file upload commands for ChatInput and File/VideoFile APIs

* fix: coderabit's feedbacks

* [autofix.ci] apply automated fixes

* fix: use curl.exe for PowerShell to avoid alias conflicts

- Change curl to curl.exe in PowerShell snippets to avoid conflicts with Invoke-WebRequest alias
- Remove unused hasChatFiles variable from all code generators
- Remove redundant edge case check in curl code generator
- Fix Python syntax error (|| to or)
- Fix JavaScript crypto.randomUUID() to generate at runtime
- Remove unused singleLinePayload variable in Unix branch
- Update tests to match new httpModule usage pattern

* [autofix.ci] apply automated fixes

* fix: remove duplicate API key declaration and add file existence validation

- Remove duplicate apiKey declaration from top-level generated code
- Keep only the apiKey declaration inside uploadAndExecuteFlow function
- Add fs.existsSync() validation before reading files in createFormData
- This prevents runtime errors when files don't exist
- Maintains 'YOUR_API_KEY_HERE' placeholder as requested

* fix: improve hostname/port extraction robustness in JavaScript generator

- Replace fragile string splitting with proper URL parsing
- Use URL constructor to reliably extract hostname and port
- Handle IPv6 addresses, URLs with authentication, and complex hostnames
- Apply fix to all three usage locations: ChatInput, File/VideoFile, and execution options
- Fallback to default ports (443 for HTTPS, 80 for HTTP) when port not specified

* [autofix.ci] apply automated fixes

* refactor: streamline code snippet generation for API calls

- Remove deprecated step parsing logic in favor of structured data handling
- Update getNewCurlCode function to return structured steps for curl commands
- Simplify rendering of steps in APITabsComponent to enhance readability and maintainability
- Ensure consistent handling of code snippets across different platforms

* [autofix.ci] apply automated fixes

* test: enhance API snippet generation tests for structured output

- Update tests for getNewCurlCode to validate structured steps output
- Ensure API key and session_id checks accommodate both string and object return types
- Improve clarity and maintainability of test cases for API snippet generation utilities

* fix: update session_id handling in curl code generation

- Replace dynamic session_id generation with a placeholder "YOUR_SESSION_ID_HERE" for both Unix and PowerShell environments.
- Update tests to reflect the change, ensuring they check for the new session_id placeholder instead of UUID generation commands.
- Enhance clarity in generated curl commands and maintain consistency across different platforms.

* 🔧 (frontend): refactor NodeInputField component to improve readability and maintainability
🔧 (frontend): refactor codeTabs component to add support for auto login feature
🔧 (frontend): refactor api-snippet-generation test to include tests for API key authentication
🔧 (frontend): refactor get-curl-code, get-js-api-code, and get-python-api-code to conditionally include API key based on shouldDisplayApiKey parameter

---------

Co-authored-by: Automagik Genie <genie@namastex.ai>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
Co-authored-by: cristhianzl <cristhian.lousa@gmail.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-07-17 23:33:16 +00:00
Edwin Jose
e20ae03c38
ref: refactor MCP-related functionality centralizing common utilities (#9059)
* reactor to have common mcp codes in mcp_support

* [autofix.ci] apply automated fixes

* Refactor MCP API argument passing and function signatures

Updated function calls in mcp_projects.py to use explicit keyword arguments for clarity. Refactored mcp_support.py to use more concise query assignment and added keyword-only arguments to handle_call_tool and handle_list_tools for improved code readability and maintainability.

* Rename mcp_support.py to mcp_utils.py and update imports

Renamed mcp_support.py to mcp_utils.py for clarity and updated all relevant import statements in mcp.py and mcp_projects.py to reflect the new module name.

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-17 19:21:04 +00:00
Mendon Kissling
607cadfe17
docs: data types (#9074)
* data-data-type

* content

* cleanup

* why-to-use

* cleanup

* more-cleanup

* last-cleanup

* redirects

* remove-concepts-objects-and-add-redirects-and-fix-links

* edit data types page

---------

Co-authored-by: April M <april.murphy@datastax.com>
Co-authored-by: Eric Hare <ericrhare@gmail.com>
2025-07-17 16:30:42 +00:00
Mendon Kissling
ecf44e6908
docs: add mcp tutorial (#9022)
* minimal-working-code

* remove-old-files-and-add-new-content

* cleanup

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* intro-and-sidebars

* Apply suggestions from code review

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

* Apply suggestions from code review

* add-fake-resume

* docs: update chat-with-files tutorial to include Langflow API key and clarify file upload process

* docs: enhance chat-with-files tutorial to support multiple file uploads with example code

* move-file-and-fixpath

* Apply suggestions from code review

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

* docs: update fake resume with new example details

* Apply suggestions from code review

* initial-content

* basic-app

* more

* more

* fix-screenshot

* cleanup

* Apply suggestions from code review

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

* clarify-server-side-geolocation

* revise intro

* pt 2

* last part

* change file type

---------

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
Co-authored-by: April M <april.murphy@datastax.com>
2025-07-17 13:55:43 +00:00
Mendon Kissling
b4fa86961d
docs: endquote in code alias (#9080)
endquote

Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
2025-07-17 12:12:29 +00:00
Mendon Kissling
4fa76768e6
docs: add deepwiki badge to readme (#9079)
Co-authored-by: Rodrigo Nader <rodrigosilvanader@gmail.com>
2025-07-16 21:04:43 -03:00
Mendon Kissling
dc6bc753bc
docs: clarify group components false behavior (#9046)
clarify-group-outputs-false
2025-07-16 21:42:37 +00:00
Mendon Kissling
c65ed4559e
docs: remove unused template (#9073)
remove-unused-template
2025-07-16 14:44:31 +00:00