Skip to content

Conversation

@Adam-Aghili
Copy link
Collaborator

@Adam-Aghili Adam-Aghili commented Dec 17, 2025

fix release workflow

Cristhianzl and others added 2 commits December 17, 2025 17:47
…optional to improve clarity

feat(release.yml): add ensure-lfx-published job to automate LFX version check and publishing process to PyPI
comment out unneeded cross platform test and move steps around to match the already existing pattern
@Adam-Aghili Adam-Aghili changed the base branch from main to release-1.7.0 December 17, 2025 21:43
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 17, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This comprehensive update introduces streamable HTTP transport for MCP alongside existing SSE, implements storage-scoped filesystem safety for flow operations, expands authentication requirements across multiple API endpoints, updates GitHub CI/CD workflows for improved LFX package handling, refreshes starter project templates with enhanced session context handling and documentation links, and updates project dependencies including langchain-mcp-adapters support.

Changes

Cohort / File(s) Summary
Environment & Configuration
.env.example
Added LANGFLOW_API_KEY_SOURCE and LANGFLOW_API_KEY environment variables for configurable API key validation source (db or env).
Dependency Updates
pyproject.toml
Updated cuga from 0.1.10 to ~0.2.6, added langchain-mcp-adapters>=0.1.14,<0.2.0, upgraded agent-lifecycle-toolkit from ~=0.4.1 to ~=0.4.4.
CI/CD Workflows
.github/workflows/cross-platform-test.yml
Added --prerelease=allow flag to uv pip install commands across Windows and Unix wheel installation paths.
CI/CD Workflows
.github/workflows/nightly_build.yml
Added build_docker_ep: true to release-nightly-build job inputs; removed uv lock step in src/lfx directory during commit tag sequence.
CI/CD Workflows
.github/workflows/release.yml, .github/workflows/release_nightly.yml
Major workflow restructuring: release_lfx input changed from required/unimplemented to optional; added new ensure-lfx-published job with PyPI version checks, build, test, publish, and propagation wait logic; build-lfx job added; release_nightly.yml now passes --no-sources --wheel flags to base build.
Secrets Baseline
.secrets.baseline
Updated secret detection baselines for release.yml line numbers and expanded Hex High Entropy String entries for starter project JSON files; updated timestamp.
Core Logging
src/backend/base/langflow/__main__.py
Removed debug logging statement in set_var_for_macos_issue().
Flow Storage Security
src/backend/base/langflow/api/v1/flows.py, src/backend/base/langflow/agentic/utils/template_create.py
Introduced storage-scoped path handling with _get_safe_flow_path(), _verify_fs_path(), and _save_flow_to_fs() helpers; integrated StorageService dependency into create_flow(), update_flow(), and upload_file() endpoints; added storage_service parameter propagation.
File Operations
src/backend/base/langflow/api/v1/files.py, src/backend/base/langflow/api/v2/files.py
Unified authorization via get_flow dependency; enhanced profile picture validation with path traversal prevention; refactored file access control to return 404 on both missing and unauthorized access; added _get_allowed_profile_picture_folders() helper; improved error handling for PermissionError.
Initial Setup & Flow Sync
src/backend/base/langflow/initial_setup/setup.py
Updated sync_flows_from_fs() to use StorageService.data_dir with user-scoped path resolution for relative/absolute fs_path handling.
MCP Streamable HTTP Transport
src/backend/base/langflow/api/v1/mcp.py
Added StreamableHTTP class with lifecycle management, ResponseNoOp response wrapper, start_streamable_http_manager(), get_streamable_http_manager(), stop_streamable_http_manager() functions, and handle_streamable_http() / _dispatch_streamable_http() dispatch handlers for new Streamable HTTP transport pathway.
MCP Project Integration
src/backend/base/langflow/api/v1/mcp_projects.py
Added ProjectMCPServer and ProjectTaskGroup classes for per-project StreamableHTTPSessionManager lifecycle; introduced URL transport paths supporting streamable HTTP alongside SSE; added get_composer_streamable_http_url() and get_project_streamable_http_url() URL helpers; updated list_project_tools() to return MCPProjectResponse, refactored tool retrieval and SSE handling, replaced sse_url with streamable_http_url in command construction.
MCP Utilities & Resource Listing
src/backend/base/langflow/api/v1/mcp_utils.py
Added MCP_SERVERS_FILE constant; enhanced handle_list_resources() to include user-uploaded files with /api/v1/files/download/ URI format, added current_user retrieval with error handling, and filtering for MCP server config files.
MCP Configuration
src/backend/base/langflow/api/utils/mcp/config_utils.py
Introduced _get_project_base_url_components(), get_project_streamable_http_url(), _get_mcp_composer_auth_config(), and get_composer_streamable_http_url() functions; refactored URL construction with centralized base components; updated auto_configure_starter_projects_mcp() to use streamable HTTP transport with --transport streamablehttp flag and improved authentication setup; added decrypt_auth_settings import.
MCP Public Exports
src/backend/base/langflow/api/utils/mcp/__init__.py
Exported get_composer_streamable_http_url and get_project_streamable_http_url from config_utils.
API Security & Astra Cloud Guards
src/backend/base/langflow/api/utils/core.py
Added disable_endpoint_in_astra_cloud_msg constant and raise_error_if_astra_cloud_env() function for Astra cloud environment enforcement; improved remove_api_keys() with safer dictionary access checks.
API Utils Exports
src/backend/base/langflow/api/utils/__init__.py
Exported raise_error_if_astra_cloud_env from core.
Authentication on Endpoints
src/backend/base/langflow/api/log_router.py, src/backend/base/langflow/api/v1/chat.py, src/backend/base/langflow/api/v1/endpoints.py, src/backend/base/langflow/api/v1/users.py, src/backend/base/langflow/api/v1/validate.py, src/backend/base/langflow/api/v2/registration.py
Added Depends(get_current_active_user) or Depends(get_current_active_superuser) dependencies to multiple endpoints: /logs-stream, /logs, build endpoints in chat, get_config, add_user, post_validate_code, post_validate_prompt, and /registration; converted some explicit parameters to dependency injection via decorators.
Endpoint Feature Gating
src/backend/base/langflow/api/v1/endpoints.py
Added runtime feature flag check to simplified_run_flow_session requiring agentic_experience enabled, returning 404 if disabled.
Monitor Endpoints
src/backend/base/langflow/api/v1/monitor.py
Added current_user parameter to get_message_sessions() and get_messages() for user-scoped filtering of sessions and messages; added authentication dependencies to get_vertex_builds() and delete_vertex_builds(); added Flow and User model imports.
API Schema Updates
src/backend/base/langflow/api/v1/schemas.py
Added ComposerUrlResponse model with fields for project_id, uses_composer, streamable_http_url, legacy_sse_url, and error_message; added transport field to MCPInstallRequest with options "sse" or "streamablehttp".
Projects API
src/backend/base/langflow/api/v1/projects.py
Updated MCP transport from SSE to streamable HTTP URL via get_project_streamable_http_url(); added --transport streamablehttp flag to MCP proxy command arguments; added import for get_project_streamable_http_url.
MCP Clients
src/backend/base/langflow/api/v2/mcp.py
Updated get_servers() to create MCPStdioClient and MCPStreamableHttpClient instances per-server, pass to update_tools(), and ensure explicit cleanup with try/finally blocks.
Flow Helper Functions
src/backend/base/langflow/helpers/flow.py
Added public functions list_flows_by_flow_folder(), list_flows_by_folder_id(), and get_flow_by_id_or_name() with optional sorting; added SORT_DISPATCHER constant for SQLAlchemy sort mapping; updated list_flows() to filter out component flows.
Starter Project Templates
src/backend/base/langflow/initial_setup/starter_projects/*.json (11 files)
Comprehensive updates across Basic Prompt Chaining, Basic Prompting, Blog Writer, Custom Component Generator, Document Q&A, Financial Report Parser, Image Sentiment Analysis, Instagram Copywriter, Invoice Summarizer, Knowledge Ingestion, Knowledge Retrieval, Meeting Summary, Memory Chatbot, Price Deal Finder, Research Agent: updated ChatInput/ChatOutput session_id derivation to include graph.session_id fallback, enhanced ChatOutput with _build_source() and serialization helpers, updated documentation URLs, bumped fastapi from 0.120.0 to 0.123.0, updated code_hashes, expanded component inputs with override_skip/track_in_telemetry flags, enhanced File component with Docling processing, updated provider options for LanguageModel components.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Areas requiring extra attention:

  • src/backend/base/langflow/api/v1/mcp.py — New StreamableHTTP class with lifecycle management, readiness coordination, and singleton pattern; requires careful review of thread-safety and cleanup paths
  • src/backend/base/langflow/api/v1/mcp_projects.py — Substantial refactoring with new ProjectMCPServer and ProjectTaskGroup classes managing per-project session managers; complex lifecycle and error handling paths
  • src/backend/base/langflow/api/v1/flows.py — Storage-scoped filesystem safety with _get_safe_flow_path(), _verify_fs_path(), and _save_flow_to_fs(); verify path traversal and null-byte protections
  • .github/workflows/release.yml — Major workflow restructuring with new ensure-lfx-published job orchestration, version checking, PyPI propagation waits, and dry_run mode; requires thorough logic verification
  • src/backend/base/langflow/api/v1/files.py — Authorization refactoring to use get_flow dependency; verify 404 vs. 403 behavior is correct and consistent across endpoints
  • Starter project templates — 11 files with extensive session handling and component updates; spot-check representative samples for correctness in session_id derivation and ChatOutput helper logic

Possibly related PRs

Suggested labels

architecture, authentication, dependencies, feature, refactoring, security

Suggested reviewers

  • erichare
  • Cristhianzl

Pre-merge checks and finishing touches

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 2 warnings, 2 inconclusive)
Check name Status Explanation Resolution
Test Coverage For New Implementations ❌ Error Streamable HTTP routes lack Depends(raise_error_if_astra_cloud_env) security guard and tests don't verify Astra cloud environment restrictions. Add missing security guard to streamable HTTP routes in src/backend/base/langflow/api/v1/mcp.py and create tests verifying Astra environment rejection.
Docstring Coverage ⚠️ Warning Docstring coverage is 67.26% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Test Quality And Coverage ⚠️ Warning Test coverage is incomplete for critical new implementations with significant gaps in authentication, feature flag, and integration tests. Add missing authentication/error-case tests for newly guarded endpoints, create tests for agentic_experience feature flag, add Astra cloud guard to streamable routes, add storage_service integration tests, and create tests for file.py authorization changes.
Title check ❓ Inconclusive The title 'fix: release workflow' is vague and does not clearly convey the extensive scope of changes in this large PR, which includes security enhancements, API modifications, component updates, and multiple workflow adjustments across numerous files. Consider a more descriptive title that captures the primary objectives, such as 'fix: release workflow and add streamable HTTP MCP transport support with security enhancements' or provide a more specific summary of the main changes.
Excessive Mock Usage Warning ❓ Inconclusive No PR summary or verification output was provided to analyze. Please provide the PR summary and specific test files information to examine.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Test File Naming And Structure ✅ Passed Backend and frontend tests follow proper naming conventions with appropriate structure, fixtures, and async patterns.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added the bug Something isn't working label Dec 17, 2025
@Adam-Aghili Adam-Aghili enabled auto-merge (squash) December 17, 2025 21:44
@github-actions github-actions bot added bug Something isn't working and removed bug Something isn't working labels Dec 17, 2025
if: steps.check-lfx.outputs.already_published == 'false' && inputs.dry_run
run: |
echo "⚠️ DRY RUN: Would have published LFX ${{ steps.check-lfx.outputs.lfx_version }} to PyPI"
echo "In actual release, this step will publish the package"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Adam-Aghili will this be added in this PR?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, skipping on dry run is in the PR.

Copy link
Contributor

@ogabrielluiz ogabrielluiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with a comment

@github-actions github-actions bot added the lgtm This PR has been approved by a maintainer label Dec 17, 2025
@ogabrielluiz ogabrielluiz requested a review from Copilot December 17, 2025 21:53
@Adam-Aghili Adam-Aghili merged commit b26d032 into release-1.7.0 Dec 17, 2025
19 checks passed
@Adam-Aghili Adam-Aghili deleted the cz/release-1.7.0-lfx-publish branch December 17, 2025 21:56
@github-actions github-actions bot added bug Something isn't working and removed bug Something isn't working labels Dec 17, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses issues in the release workflow by implementing automatic LFX dependency publishing and removing blocking validations. The main purpose is to ensure the LFX package (a dependency of langflow-base) is published to PyPI before building langflow-base, eliminating manual coordination requirements.

Key changes:

  • Adds automatic LFX dependency publishing via a new ensure-lfx-published job that checks PyPI and publishes if needed
  • Removes the blocking validation error that prevented using release_lfx input parameter
  • Relocates the build-lfx job and comments out cross-platform testing for LFX

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 11 comments.

File Description
.secrets.baseline Updates line number reference and timestamp to reflect workflow file changes
.github/workflows/release.yml Implements automatic LFX dependency publishing, removes blocking validation, and reorganizes LFX-related jobs

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +154 to +159
LFX_REQUIREMENT=$(grep -E "^\s*\"lfx" pyproject.toml | head -1 | sed 's/.*lfx[~>=<]*//' | sed 's/[",].*//')
echo "LFX requirement from langflow-base: $LFX_REQUIREMENT"

# Get the actual lfx version from source
cd ../../lfx
LFX_SOURCE_VERSION=$(grep -E "^version\s*=" pyproject.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The grep pattern to extract the lfx version requirement is fragile. It uses multiple sed operations and assumes a specific format. If the pyproject.toml format changes slightly (e.g., adding spaces, changing quotes), this could break. Consider using a proper TOML parser like tomlq or yq for more robust parsing, or use Python with the tomli library to parse the pyproject.toml file reliably.

Suggested change
LFX_REQUIREMENT=$(grep -E "^\s*\"lfx" pyproject.toml | head -1 | sed 's/.*lfx[~>=<]*//' | sed 's/[",].*//')
echo "LFX requirement from langflow-base: $LFX_REQUIREMENT"
# Get the actual lfx version from source
cd ../../lfx
LFX_SOURCE_VERSION=$(grep -E "^version\s*=" pyproject.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')
LFX_REQUIREMENT=$(python - << 'PY'
import tomllib
from pathlib import Path
data = tomllib.loads(Path("pyproject.toml").read_text(encoding="utf-8"))
deps = data.get("project", {}).get("dependencies", [])
req = next((d for d in deps if d.strip().startswith("lfx")), "")
print(req)
PY
)
echo "LFX requirement from langflow-base: $LFX_REQUIREMENT"
# Get the actual lfx version from source
cd ../../lfx
LFX_SOURCE_VERSION=$(python - << 'PY'
import tomllib
from pathlib import Path
data = tomllib.loads(Path("pyproject.toml").read_text(encoding="utf-8"))
print(data.get("project", {}).get("version", ""))
PY
)

Copilot uses AI. Check for mistakes.
Comment on lines +151 to +156
run: |
# Get the lfx version required by langflow-base from pyproject.toml
cd src/backend/base
LFX_REQUIREMENT=$(grep -E "^\s*\"lfx" pyproject.toml | head -1 | sed 's/.*lfx[~>=<]*//' | sed 's/[",].*//')
echo "LFX requirement from langflow-base: $LFX_REQUIREMENT"

Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The extracted LFX_REQUIREMENT value is computed but never used or validated. The job should verify that the version in the source matches or is compatible with what langflow-base requires. Currently, there's no check to ensure that the LFX_SOURCE_VERSION satisfies the LFX_REQUIREMENT constraint (e.g., if langflow-base requires "lfx~=0.2.0" and source has "0.3.0", this could cause issues).

Copilot uses AI. Check for mistakes.

- name: Publish LFX to PyPI
id: publish-lfx
if: steps.check-lfx.outputs.already_published == 'false' && !inputs.dry_run
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When both dry_run is true AND the package is not already published, the workflow will skip publishing but the "Wait for PyPI propagation" step (line 209) checks for steps.publish-lfx.outputs.published == 'true', which will never be set in dry_run mode. However, the build-base job will still proceed and try to install the dependency from PyPI. In dry_run mode with an unpublished LFX version, build-base will fail when attempting to resolve dependencies. Consider adding logic to handle the dry_run scenario properly, such as using the local wheel or skipping the dependency check.

Copilot uses AI. Check for mistakes.
id: check-version
run: |
cd src/lfx
version=$(uv tree | grep 'lfx' | head -n 1 | awk '{print $2}' | sed 's/^v//')
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version extraction using uv tree | grep 'lfx' | head -n 1 | awk '{print $2}' is unreliable. This command will match any package name containing 'lfx' and may return incorrect results if other packages with 'lfx' in their names are present. Additionally, the format of uv tree output is not guaranteed to be stable. It would be more reliable to extract the version directly from the pyproject.toml file using grep -E "^version\s*=" src/lfx/pyproject.toml similar to what's done in the ensure-lfx-published job at line 159.

Suggested change
version=$(uv tree | grep 'lfx' | head -n 1 | awk '{print $2}' | sed 's/^v//')
version=$(grep -E '^version\s*=' pyproject.toml | head -n 1 | sed -E 's/^version\s*=\s*"([^"]+)".*/\1/')

Copilot uses AI. Check for mistakes.
Comment on lines +521 to +540
# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# os: [ubuntu-latest, windows-latest, macos-latest]
# python-version: ["3.10", "3.11", "3.12", "3.13"]
# steps:
# - name: Download LFX artifact
# uses: actions/download-artifact@v5
# with:
# name: dist-lfx
# path: dist-lfx
# - name: Setup Environment
# uses: astral-sh/setup-uv@v6
# with:
# enable-cache: false
# python-version: ${{ matrix.python-version }}
# - name: Test LFX installation
# run: |
# uv pip install dist-lfx/*.whl
# uv run lfx --help
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test-lfx-cross-platform job has been commented out rather than removed. If this test is no longer needed, it should be removed entirely. If it's temporarily disabled, there should be a comment explaining why and when it will be re-enabled. Additionally, note that the publish-lfx job at line 497 (outside the changed regions) still has a dependency on test-lfx-cross-platform, which will cause failures when release_lfx is enabled.

Suggested change
# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# os: [ubuntu-latest, windows-latest, macos-latest]
# python-version: ["3.10", "3.11", "3.12", "3.13"]
# steps:
# - name: Download LFX artifact
# uses: actions/download-artifact@v5
# with:
# name: dist-lfx
# path: dist-lfx
# - name: Setup Environment
# uses: astral-sh/setup-uv@v6
# with:
# enable-cache: false
# python-version: ${{ matrix.python-version }}
# - name: Test LFX installation
# run: |
# uv pip install dist-lfx/*.whl
# uv run lfx --help
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- name: Download LFX artifact
uses: actions/download-artifact@v5
with:
name: dist-lfx
path: dist-lfx
- name: Setup Environment
uses: astral-sh/setup-uv@v6
with:
enable-cache: false
python-version: ${{ matrix.python-version }}
- name: Test LFX installation
run: |
uv pip install dist-lfx/*.whl
uv run lfx --help

Copilot uses AI. Check for mistakes.
Comment on lines +126 to +135
ensure-lfx-published:
name: Ensure LFX Dependency is Published
needs: [ci]
if: ${{ inputs.release_package_base }}
runs-on: ubuntu-latest
outputs:
lfx-version: ${{ steps.check-lfx.outputs.lfx_version }}
lfx-published: ${{ steps.check-lfx.outputs.already_published }}
lfx-published-now: ${{ steps.publish-lfx.outputs.published }}
steps:
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a potential race condition: if two releases run concurrently (one for base and one triggered manually), both could detect that LFX is not published and attempt to publish it simultaneously. The second publish will fail since the version already exists. Consider adding a concurrency group for the ensure-lfx-published job or adding retry logic with proper error handling to gracefully handle conflicts if the version gets published between the check and publish steps.

Copilot uses AI. Check for mistakes.
release_lfx:
description: "WARNING: Not implemented yet."
required: true
description: "Release LFX package (manually triggered)"
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The description states "Release LFX package (manually triggered)" but this could be clearer. Since the ensure-lfx-published job now automatically publishes LFX when needed during base releases, the description should clarify that this input is for explicitly triggering an LFX-only release, separate from the automatic publishing that happens when release_package_base is true. Consider: "Explicitly release LFX package independently (automatic when release_package_base is enabled)".

Suggested change
description: "Release LFX package (manually triggered)"
description: "Explicitly release LFX package independently (automatic when release_package_base is enabled)"

Copilot uses AI. Check for mistakes.

# Get the actual lfx version from source
cd ../../lfx
LFX_SOURCE_VERSION=$(grep -E "^version\s*=" pyproject.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to the previous grep, this pattern for extracting the version from pyproject.toml is fragile. The sed expression assumes a specific quote style and format. Consider using a proper TOML parser for more reliable extraction.

Suggested change
LFX_SOURCE_VERSION=$(grep -E "^version\s*=" pyproject.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')
LFX_SOURCE_VERSION=$(python - << 'PY'
import tomllib
from pathlib import Path
with Path("pyproject.toml").open("rb") as f:
data = tomllib.load(f)
project = data.get("project") or {}
version = project.get("version")
if not isinstance(version, str):
raise SystemExit("Could not find string 'project.version' in pyproject.toml")
print(version)
PY
)

Copilot uses AI. Check for mistakes.
Comment on lines +211 to +212
echo "Waiting 60 seconds for PyPI propagation..."
sleep 60
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wait time of 60 seconds plus up to 5 retries with 30-second intervals (total up to 210 seconds) may not be sufficient for PyPI propagation, especially during high-traffic periods. PyPI's CDN can take longer to propagate packages globally. Consider increasing the timeout or making it configurable, and providing more informative output about which CDN endpoint is being checked.

Copilot uses AI. Check for mistakes.
Comment on lines +386 to +433
build-lfx:
name: Build LFX
needs: [ci]
if: ${{ inputs.release_lfx }}
runs-on: ubuntu-latest
outputs:
version: ${{ steps.check-version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
ref: ${{ inputs.release_tag }}
- name: Setup Environment
uses: astral-sh/setup-uv@v6
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
python-version: "3.13"
prune-cache: false
- name: Install LFX dependencies
run: uv sync --dev --package lfx
- name: Check Version
id: check-version
run: |
cd src/lfx
version=$(uv tree | grep 'lfx' | head -n 1 | awk '{print $2}' | sed 's/^v//')
last_released_version=$(curl -s "https://pypi.org/pypi/lfx/json" | jq -r '.releases | keys | .[]' | sort -V | tail -n 1)
if [ "$version" = "$last_released_version" ]; then
echo "Version $version is already released. Skipping release."
exit 1
else
echo version=$version >> $GITHUB_OUTPUT
fi
- name: Build project for distribution
run: |
cd src/lfx
rm -rf dist/
uv build --wheel --out-dir dist
- name: Test CLI
run: |
cd src/lfx
uv pip install dist/*.whl --force-reinstall
uv run lfx --help
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: dist-lfx
path: src/lfx/dist
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build-lfx job duplicates much of the logic from the ensure-lfx-published job (lines 126-232), including version checking, building, and CLI testing. This creates maintenance burden and potential inconsistencies. Consider refactoring to use a reusable workflow or shared composite action for the common LFX build and test logic. The main difference is that build-lfx is for explicit LFX releases (when inputs.release_lfx is true) while ensure-lfx-published is for automatic dependency publishing.

Copilot uses AI. Check for mistakes.
Adam-Aghili added a commit that referenced this pull request Dec 17, 2025
@Adam-Aghili Adam-Aghili restored the cz/release-1.7.0-lfx-publish branch December 17, 2025 22:03
Adam-Aghili added a commit that referenced this pull request Dec 17, 2025
Revert "fix: release workflow  (#11087)"

This reverts commit b26d032.
github-merge-queue bot pushed a commit that referenced this pull request Dec 22, 2025
* docs: update component links to individual pages (#10706)

* Revert "Revert "docs: update component documentation links to individual pages""

This reverts commit 0bc27d6.

* [autofix.ci] apply automated fixes

* llm-selector-renamed

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

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

* Apply suggestions from code review

* [autofix.ci] apply automated fixes

* Apply suggestions from code review

* [autofix.ci] apply automated fixes

* rebuild-component-index

* update-component-index

* [autofix.ci] apply automated fixes

* build-index

* [autofix.ci] apply automated fixes

---------

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

* fix: avoid updating Message if ChatOutput is connected to ChatInput (#10586)

* fix: resolved merge conflict

* [autofix.ci] apply automated fixes

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

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

* fix: create a new message to avoid mutating shared instances

* [autofix.ci] apply automated fixes

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

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

* fix: resolved merge conflict

* [autofix.ci] apply automated fixes

* fix: resolved merge conflict

* [autofix.ci] apply automated fixes

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

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

* fix: added a check for using exisiting message object

* fix: remove unwanted import

* fix: resolve merge conflict

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

* fix: add None checks to prevent errors

* fix: resolve merge conflict

* [autofix.ci] apply automated fixes

* fix: backend unit test

* fix: resolve merge conflict

* [autofix.ci] apply automated fixes

* fix: ruff styling errors

* [autofix.ci] apply automated fixes

---------

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

* Feat: Runflow optimization and improved dropdown behavior (#10720)

* feat: optimize dropdown filtering and output resolution

misc: remove commented out code

feat: add refresh button and sort flows by updated_at date from most to least recent

ruff (flow.py imports)

improve fn contracts in runflow and improve flow id retrieval logic based on graph exec context

add dynamic outputs and optimize db lookups

add flow cache and db query for getting a single flow by id or name

cache run outputs and add refresh context to build config

misc

misc

use ids for flow retrieval

misc

fix missing flow_id bug

add unit and integration tests

add input field flag to persist hidden fields at runtime

move unit tests and change input and output display names

chore: update component index

fix: fix tool mode when flow has multiple inputs by dynamically creating resolvers

chore: update component index

ruff (run_flow and tests)

add resolvers to outputs map for non tool mode runtime

fix tests (current flow excluded in db fetch)

mypy (helpers/flow.py)

chore: update component index

remove unused code and clean up comments

fix: persist user messages in chat-based flows via session injection

chore: update component index

empty string fallback for sessionid in chat.py

chore: update component index

chore: update component index

cache invalidation with timestamps

misc

add cache invalidation

chore: update component index

chore: update comp idx

ruff (run_flow.py)

change session_id input type to MessageTextInput

chore: update component index

chore: update component index

chore: update component index

chore: update component index

sync starter projects with main

chore: update component index

chore: update component index

chore: update component index

remove dead code + impl coderabbit suggestions

chore: update component index

chore: update component index

clear options metadata before updating

chore: update component index

sync starter projects with main

sync starter projects with main

default param val (list flows)

* chore: update component index

* add integration tests

* [autofix.ci] apply automated fixes

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

---------

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

* fix: Add dynamic tool mode descriptions for agent integration (#10744)

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

* fix: Add profile picture management and API endpoints (#10763)

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

* deps: upgrade altk (#10804)

upgrade altk:

* fix: use running event loop to fix asyncio error when calling mcp tools (#10806)

* use existing event loop instead of recreating when calling mcp tools

* component index

* [autofix.ci] apply automated fixes

* starter projects

* [autofix.ci] apply automated fixes

---------

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

* fix: Improve file processing robustness and error feedback (#10781)

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

* fix: resolve merge conflict (#10831)

* fix: fixed warning on console for nested button (#10724) (#10832)

* removed unnecessary buttons on the flows page

* added the asChild prop and hid button so they are not accessible by tabbing

* added tab index to ensure that buttons as not selectable using the tab

* made sure that accessibility is possible one bulk selection is enabled

* made sure that accessibility is possible one bulk selection is enabled

* Fix: added testcases and refactor

* [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: Olayinka Adelakun <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* fix: fixed warning on console (#10745) (#10830)

* remove console warnings

* [autofix.ci] apply automated fixes

---------

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

* fix: mask value to hide null field being returned (#10778) (#10829)

* fix: mask value to hide null field being returned

* [autofix.ci] apply automated fixes

* fix: added testcase and updated functionality

---------

Co-authored-by: Olayinka Adelakun <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Carlos Coelho <[email protected]>
Co-authored-by: Olayinka Adelakun <[email protected]>

* Fix: Allow refresh list button to stay stagnant while zoom (Safari) (… (#10827)

Fix: Allow refresh list button to stay stagnant while zoom (Safari) (#10777)

* remove sticky as it was causing the refresh list to float on safari

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

---------

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

* feat: Add superuser support for running any user flow (#10808)

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

* Revert "feat: Add superuser support for running any user flow (#10808)"

This reverts commit 423419e.

* fix: Ollama models list in Agent component (#10814)

* fix: Ollama model list fails to load in Agent and Ollama components

* [autofix.ci] apply automated fixes

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

---------

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

* Fix: Ensure Default Tab is Credential (#10779) (#10826)

* fix: made sure the tab is visible

* [autofix.ci] apply automated fixes

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

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

* Fix: added typing

* [autofix.ci] apply automated fixes

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

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

* fix: added testcases

* fix: added handleOnValue change function and created a helper file

---------

Co-authored-by: Olayinka Adelakun <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Olayinka Adelakun <[email protected]>
Co-authored-by: Carlos Coelho <[email protected]>

* chore: update cuga version (#10737) (#10738)

Co-authored-by: Sami Marreed <[email protected]>

* chore: Remove DataFrameToToolsetComponent and related tests (#10845)

Remove DataFrameToToolsetComponent and related tests

Deleted the DataFrameToToolsetComponent implementation, its import/registration in the processing module, and all associated unit tests. This cleans up unused code and test files related to converting DataFrame rows into toolset actions.

* fix: Handle GCP JSON parsing credentials (#10859)

fix: Proper parsing of GCP credentials JSON (#10828)

* fix: Proper parsing of GCP credentials JSON

* Update save_file.py

* [autofix.ci] apply automated fixes

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

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

* Update test_save_file_component.py

* [autofix.ci] apply automated fixes

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

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

* Fix GCP issues

* [autofix.ci] apply automated fixes

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

* Update test_save_file_component.py

* Update save_file.py

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

* Update save_file.py

* [autofix.ci] apply automated fixes

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

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

* Update save_file.py

* Fix ruff errors

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

---------

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

* fix: anthropic constants (#10862)

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

* fix: Add feature flag check to simplified_run_flow_session (#10863)

* fix: Improve the debugging messages on startup (#10864)

* fix: Suppress SIGSEGV errors on startup (#10849)

* fix: Suppress SIGSEGV errors

* Update test_cli.py

* [autofix.ci] apply automated fixes

---------

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

* Update News Aggregator.json

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

---------

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

* fix: Don't fail if doc column is missing (#10746) (#10872)

* fix: Don't fail if doc column is missing

* [autofix.ci] apply automated fixes

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

* Surface warning message to the UI

* [autofix.ci] apply automated fixes

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

* Update test_docling_utils.py

* [autofix.ci] apply automated fixes

* Update test_docling_utils.py

---------

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

* add x-api-key auth option

* fix(auth): Disallow refresh token access to API endpoints

* fix: Properly support the Batch Run component for watsonX models (#10877)

* fix: Support Batch Run with watsonX (#10848)

* fix: Support Batch Run with watsonX

* [autofix.ci] apply automated fixes

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

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

* Update batch_run.py

* [autofix.ci] apply automated fixes

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

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

---------

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

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

* fix: Image upload for Gemini/Anthropic (#10880)

* fix: Image upload for Gemini/Anthropic (#10867)

* Fix image upload for Gemini/Anthropic and ChatOutput session_id preservation

* [autofix.ci] apply automated fixes

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

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

* fix ruff erros

* [autofix.ci] apply automated fixes

* resolve conflicts

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

* build component index

* [autofix.ci] apply automated fixes

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

---------

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

* [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>
Co-authored-by: Himavarsha <[email protected]>

* fix: Improve the default startup logging for readability (#10894)

fix: Clean up the default startup logging (#10842)

* fix: Clean up the default startup logging

* [autofix.ci] apply automated fixes

* Update manager.py

* [autofix.ci] apply automated fixes

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

* Update test_security_cors.py

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

---------

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

* Fix: lfx serve aysncio event loop error (#10888)

fix lfx serve asyncio event loop bug

* fix: Update LangflowCounts component to format star and Discord counts (#10896)

* fixed counts

* fix: Update LangflowCounts component to format star and Discord counts

---------

Co-authored-by: Deon Sanchez <[email protected]>

* Fix: update lfx serve tests to mock the .serve() to prevent hanging  (#10905)

port lfx serve test fix from main

* Fix: lfx run agent _noopresult not iterable error (#10893)

* fix _noopresult not iterable and session.add never awaited error and warning, respectively

* just make the add stub sync

* Fix: lfx run agent _noopresult not iterable error  (#10911)

* fix _noopresult not iterable and session.add never awaited error and warning, respectively

* just make the add stub sync

* the real final solution v3

* real solution v4

* revert

* [autofix.ci] apply automated fixes

---------

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

* fix: Add graceful subprocess cleanup during shutdown (#10906)

* add mcp cleanup function

* refactor(mcp_cleanup.py): simplify error handling using contextlib.suppress to improve code readability
test(mcp_cleanup.py): update tests to use context manager for patching to enhance clarity and maintainability

---------

Co-authored-by: Adam Aghili <[email protected]>

* fix(workflows): include src/lfx/uv.lock in git add command to ensure all necessary files are tracked
fix(Makefile): add --no-sources flag to uv build command for langflow_base to optimize build process

* chore(nightly_build.yml): remove unnecessary directory change for lfx in nightly build workflow to streamline the process

* chore(release_nightly): update build command to include --no-sources flag for Langflow Base CLI to ensure proper build configuration
fix(Makefile): remove --no-sources from build_langflow_base to align with updated build command in release workflow

* chore(chat.py): remove unused future annotations import to clean up code

* fix(chat.py): add future annotations import for better type hinting support
fix(deps.py): move certain imports outside TYPE_CHECKING for FastAPI compatibility and update type hinting for get_cache_service function

* chore: print version

* chore: use release_tag as version

* fix: --prerelease=allow

* fix: correctly raise file not found errors in File GET endpoints (#10922)

fix: correctly raise file not found errors in File GET endpoints (#10908)

* Clean up the file GET endpoints

* Add test

* [autofix.ci] apply automated fixes

* ruff/mypy

* [autofix.ci] apply automated fixes

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

* Fix issues with async




* use uvlock from main

* [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>
Co-authored-by: Eric Hare <[email protected]>
Co-authored-by: Himavarsha <[email protected]>

* fix: image pathing to operate with s3 storage (#10919) (#10929)

* Fix image pathing to operate with s3 storage

* [autofix.ci] apply automated fixes

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

* add test

* [autofix.ci] apply automated fixes

* ruff

* Add abstract method annotation

* [autofix.ci] apply automated fixes

* fix: use parse_file_path in get_files for S3 storage compatibility

---------

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

* Feat: migrate MCP transport from SSE to streamable http (#10934)

* port #10727

* [autofix.ci] apply automated fixes

---------

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

* refactor(deps.py): reorganize imports for clarity and compliance with FastAPI requirements
fix(deps.py): update return type of get_cache_service function to use Union for better type hinting

* fix: update sidebar icon styles to maintain backward compatibility (#10948)

* fix: Add empty input check in ALTKAgent for Anthropic (#10926)

* fix: Add empty input check in ALTKAgent for Anthropic

Shamelessly copies agent.py's empty input check to prevent Anthropic API errors.

* [autofix.ci] apply automated fixes

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

---------

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

* fix: add condition to not make folder download fail when flow has Note component (#10953)

* fix: Enhance error handling for langchain-core version compatibility (#10768)

* fix: Restrict message and session access to flow owners (#10973)

* feat(monitor.py): add user flow filtering to message sessions and messages endpoints to enhance data access control
refactor(monitor.py): remove dependencies from route decorators and pass current_user as a parameter for better clarity and maintainability

* test: update message-related test fixtures to associate messages with user-specific flows

This change ensures that messages created in tests are linked to a flow
specific to the active user, allowing for better filtering and
organization of messages in the database. It enhances the test
environment by simulating real-world usage scenarios more accurately.

* chore(monitor.py): reorder import statements to follow consistent structure and improve readability

* Fix: lfx run with agent component throws '_NoopResult' object is not iterable' (#10914)

* fix _noopresult not iterable and session.add never awaited error and warning, respectively

* just make the add stub sync

* the real final solution v3

* real solution v4

* revert

* fix noopresult not iterable error and add was not awaited warning

* do await check in aupdate_messages

* [autofix.ci] apply automated fixes

---------

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

* fix: Support tool mode for components that have no inputs (#10982)

fix: Support tool mode in components without inputs (#10959)

* fix: Support tool mode in components without inputs

* [autofix.ci] apply automated fixes

---------

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

* fix: (Cherry Pick) default Ollama base url (#10981)

* fix: Properly set a default Ollama base url (#10940)

* fix: Properly set a default Ollama base url

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

* [autofix.ci] apply automated fixes

---------

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

* fix: Add authentication to various endpoints (#10977) (#10985)

* fix: Add authentication to various endpoints (#10977)

* fix: Add authentication to various endpoints

* [autofix.ci] apply automated fixes

* Couple more endpoints

* [autofix.ci] apply automated fixes

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

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

* Update log_router.py

* [autofix.ci] apply automated fixes

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

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

* Update mcp.py

* [autofix.ci] apply automated fixes

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

* Fix ruff errors

* [autofix.ci] apply automated fixes

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

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

* Update test_endpoints.py

* Fix tests

* Update Nvidia Remix.json

* Update test_registration.py

* [autofix.ci] apply automated fixes

* Update test_files.py

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

* Address review comments

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

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

* Review updates

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

---------

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

* [autofix.ci] apply automated fixes

---------

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

* Fix: ensure streamable-http session manager is entered and exited from the same task (#10991)

* cherry pick #10966

* [autofix.ci] apply automated fixes

---------

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

* Fix: cuga integration (#10976) (#10990)

* Fix: cuga integration (#10976)

* feat: upgrade cuga version

* chore: add component index

* [autofix.ci] apply automated fixes

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

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

* fix: cuga component

* chore: update index

* [autofix.ci] apply automated fixes

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

* fix: upgrade cuga

* fix: new component index

* [autofix.ci] apply automated fixes

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

* chore: add component index

* [autofix.ci] apply automated fixes

* chore: update package

* chore: update index

* [autofix.ci] apply automated fixes

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

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

* fix: cuga relatetive temp

* fix: update cuga

* chore: add component index

* [autofix.ci] apply automated fixes

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

* fix: remove space

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

* [autofix.ci] apply automated fixes

---------

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

* test(webhook): add comprehensive tests for webhook endpoint functionality and error handling (#10995)

* fix: Improve image path extraction and validation (#10999)

* fix: make key generated on mcp json be shown, make placeholder show up if key not generated (#10997)

* changed api key to show placeholder when api key is empty

* changed useMcpServer to use generated api key if store api key is empty, add dependency to callback

* [autofix.ci] apply automated fixes

* Added tests

* [autofix.ci] apply automated fixes

* Update src/frontend/src/pages/MainPage/pages/homePage/hooks/useMcpServer.ts

Co-authored-by: Cristhian Zanforlin Lousa <[email protected]>

---------

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

* Fix: disable mcp sse endpoints astra (#11004)

* disable mcp sse transport endpoints in astra cloud

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes

---------

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

* fix: mcp-proxy process leak (#11008)

* fix: mcp-proxy process leak (#10988)

* fix leak

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

* Move MCP client imports out of loop iteration in get_servers (#10993)

* Initial plan

* Move MCPStdioClient and MCPStreamableHttpClient imports to get_servers function

Co-authored-by: phact <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: phact <[email protected]>

* [autofix.ci] apply automated fixes

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

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

* [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>
Co-authored-by: Edwin Jose <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: phact <[email protected]>
Co-authored-by: Adam Aghili <[email protected]>

* [autofix.ci] apply automated fixes

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

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

---------

Co-authored-by: Sebastián Estévez <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Edwin Jose <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: phact <[email protected]>

* feat: add build-nightly-ep to docker-nightly-build (#10942)

* feat: add build-nightly-ep to docker-nightly-build

add build-nightly-ep to docker-nightly-build

* chore: update where langflow-nightly-ep is used

update where langflow-nightly-ep is used to match update where langflow-nightly-all

* chore: add nightly-main-ep to release_nightly

add nightly-main-ep to call_docker_build_main_ep in release_nightly

* chore: run what is already here

* chore: revert .secrets.baseline and let it regen

* fix(message.py): simplify file presence check using kwargs.get() for better readability and maintainability

* fix: Disable Local storage option in Write File component for cloud environments (#11003) (#11022)

* fix: Disable Local storage option in Write File component for cloud environments (#11003)

* modify savefile component

* [autofix.ci] apply automated fixes

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

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

* component index

* [autofix.ci] apply automated fixes

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

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

* Update src/lfx/src/lfx/components/files_and_knowledge/save_file.py

Co-authored-by: Hamza Rashid <[email protected]>

* fix ruff errors

* fix conflicts

* resolve conflicts

* [autofix.ci] apply automated fixes

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

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

* fix indentation error

* [autofix.ci] apply automated fixes

* update options dynamically

* build component index

* [autofix.ci] apply automated fixes

* fix ruff errors

* [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>
Co-authored-by: Hamza Rashid <[email protected]>

* [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>
Co-authored-by: Hamza Rashid <[email protected]>

* fix: cuga update (#11019) (#11026)

* fix: update cuga version

* chore: build index

Co-authored-by: Sami Marreed <[email protected]>

* fix: langwatch traces all api endpoints  (#11014)

* create tracerprovider so langwatch doesnt pick up fastapi calls

* move opentel sdk imports to the top

* [autofix.ci] apply automated fixes

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

---------

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

* Fix: improve exception handling and status code for disabled endpoints (#11012)

* port #11011

* recover line from 1.7.0

* [autofix.ci] apply automated fixes

---------

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

* fix(deps): Pin langchain-mcp-adapters to resolve langchain-core compatibility (#11037)

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

* fix: Make sure the research translation loop template is properly operating (#11042)

* fix: Make sure loop inputs are properly handled in research (#11029)

* fix: Make sure loop inputs are properly handled in research

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

* [autofix.ci] apply automated fixes

* Update reactflowUtils.ts

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

* Update reactflowUtils.ts

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

* Revert "Update reactflowUtils.ts"

This reverts commit 9c8b1d1.

* Revert "Update reactflowUtils.ts"

This reverts commit 6be7ab9.

* Fix template

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

* [autofix.ci] apply automated fixes

* Update Research Translation Loop.json

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

* Update reactflowUtils.ts

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

---------

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

* Update Research Translation Loop.json

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

---------

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

* fix: disable knowledge components in astra (#11047)

* cherry-pick #11046

* update component index

* update component index again

* fix: Advanced mode in read file component (#11041) (#11056)

* fix: Advanced mode in read file component (#11041)

* add a proper file path

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

* Update file.py

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

* [autofix.ci] apply automated fixes

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

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

* build component index

* [autofix.ci] apply automated fixes

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

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

* build component index

* [autofix.ci] apply automated fixes

* Fix incorrect use of .tempdir

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

* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

---------

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

* [autofix.ci] apply automated fixes

---------

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

* fix: validate flow file_save path is in a valid location (#11060)

fix: validate flow file_save path is in a valid location (#11039)

* Validate flow file save path is in a valid location

* clean up logic

* fix tests

* comments

* [autofix.ci] apply automated fixes

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

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

* fix backslash vuln

* [autofix.ci] apply automated fixes

* add storage service param to function in agentic utils

* [autofix.ci] apply automated fixes

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

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

* Ruff errors



* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

* Resolve path in setup



* [autofix.ci] apply automated fixes

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

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

* [autofix.ci] apply automated fixes

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

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

* comp index update

* [autofix.ci] apply automated fixes

---------

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

* refactor: Move fetch credentials to the customizations (#11049) (#11063)

move fetch credentials to the customizations

* fix: Fix async context handling in serve command and add integration tests (#10776)

* refactor(tests): rename test IDs from helpersCreate List and logicPass to processingCreate List and flow_controlsPass for consistency and clarity in decision flow tests

* refactor: Langflow cloud updates (#10910)

* refactor: Use customization to get api base urls (#10871)

* fixed counts

* use customization to get api base urls

---------

Co-authored-by: Deon Sanchez <[email protected]>

* refactor: add code sample customizations (#10884)

* add code sample customizations

* import cleanup

* embedded widget generator

---------

Co-authored-by: Deon Sanchez <[email protected]>

* fix: release workflow  (#11087)

* chore(release.yml): update release_lfx input description and make it optional to improve clarity
feat(release.yml): add ensure-lfx-published job to automate LFX version check and publishing process to PyPI

* chore: clean up release workflow

comment out unneeded cross platform test and move steps around to match the already existing pattern

---------

Co-authored-by: cristhianzl <[email protected]>

* Revert "fix: release workflow " (#11088)

Revert "fix: release workflow  (#11087)"

This reverts commit b26d032.

* fix: release workflow (#11089)

* chore(release.yml): update release_lfx input description and make it optional to improve clarity
feat(release.yml): add ensure-lfx-published job to automate LFX version check and publishing process to PyPI

* chore: clean up release workflow

comment out unneeded cross platform test and move steps around to match the already existing pattern

* chore: remove test-lfx-cross-platform

remove test-lfx-cross-platform

* chore: address some of co-pilots comments

address some of co-pilots comments

---------

Co-authored-by: cristhianzl <[email protected]>

* fix: use langflow package path for database location (#11107)

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

* chore: bump versions for langflow 1.7.1, langflow-base 0.7.1, and lfx 0.2.1 (#11108)

* chore: update version to 0.2.1 in pyproject.toml

* bump version to 1.7.1 in package.json

* chore: bump version to 0.7.1 and update lfx dependency to 0.2.1 in pyproject.toml

* chore: bump versions for langflow, langflow-base, and lfx in pyproject.toml and uv.lock

* regenarate lock based on release branch

* new package-lock fixed

* fix: regenerate package-lock.json with missing nested dependencies

Adds [email protected] (for rehype-mathjax) and [email protected] (for tailwindcss)
that were missing from the lock file causing npm ci to fail.

---------

Co-authored-by: cristhianzl <[email protected]>

* test(regression): update test to use box selection for Combine Text nodes instead of Ctrl/Meta+click for better reliability in Playwright with ReactFlow

* test(fileUploadComponent.spec.ts): increase timeout duration for file rename tests to ensure stability
test(general-bugs-reset-flow-run.spec.ts): add wait time to improve reliability of component build checks

* Template update

* [autofix.ci] apply automated fixes

* Fix test failures

---------

Co-authored-by: Mendon Kissling <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: keval shah <[email protected]>
Co-authored-by: Hamza Rashid <[email protected]>
Co-authored-by: Cristhian Zanforlin <[email protected]>
Co-authored-by: Cristhian Zanforlin Lousa <[email protected]>
Co-authored-by: Jordan Frazier <[email protected]>
Co-authored-by: olayinkaadelakun <[email protected]>
Co-authored-by: Olayinka Adelakun <[email protected]>
Co-authored-by: Olayinka Adelakun <[email protected]>
Co-authored-by: Carlos Coelho <[email protected]>
Co-authored-by: Himavarsha <[email protected]>
Co-authored-by: Sami Marreed <[email protected]>
Co-authored-by: Edwin Jose <[email protected]>
Co-authored-by: Eric Hare <[email protected]>
Co-authored-by: Mike Pawlowski <[email protected]>
Co-authored-by: Viktor Avelino <[email protected]>
Co-authored-by: Deon Sanchez <[email protected]>
Co-authored-by: himavarshagoutham <[email protected]>
Co-authored-by: Jason Tsay <[email protected]>
Co-authored-by: Lucas Oliveira <[email protected]>
Co-authored-by: Gabriel Luiz Freitas Almeida <[email protected]>
Co-authored-by: Sebastián Estévez <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: phact <[email protected]>
Co-authored-by: Mike Fortman <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working lgtm This PR has been approved by a maintainer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants