v1.9.0
langflow-ai/langflowv1.9.0Apr 14, 2026by github-actions[bot]
AI Summary
A major release introducing Watsonx Orchestrate integration, a new MCP server, Flow Version Control, the Langflow SDK, and Python 3.14 support, alongside extensive security fixes.
Key Highlights
- Watsonx Orchestrate integration (wxO)
- MCP server for REST API operations
- Flow version control
- Langflow SDK and Flow DevOps API Toolkit
- Python 3.14 support
New Features
- Watsonx Orchestrate deployment UI
- MCP server for operating Langflow
- Flow version control
- Deployment API surface
- Python 3.14 support
- DataFrame operations (Concatenate/Merge)
- Langflow SDK
Full Release Notes
<!-- Release notes generated using configuration in .github/release.yml at main --> ## What's Changed ### โจ New Features * feat: traces v0 (#11689) * feat: schemas for pluggable deployment service (#11979) * feat: Add Concatenate and Merge operations to DataFrame Operations (#11601) * feat: add secret key rotation script and documentation (#10978) * feat: add flow version control (#11859) * feat: Support the new ModelInput in Astra DB (#11203) * feat(lfx): add adapter registries (#11990) * feat: add basic types and database accessors for wxo integration (#12011) * feat: generate requirements.txt from dependencies (#11810) (#12087) * feat: deployments api surface (#12041) * feat: revise deployment schemas (#12150) * feat(deployment): add list operations for configs and snapshots (#12162) * feat(deployments): unify payload passthrough from api to adapter (#12190) * feat: add wxO deployment adapter (#12079) * feat: Add Windows Playwright testing to nightly builds (#12221) * feat: add support for Langchain 1.0 (#11114) * feat: Refactor and Unify the ModelInput Selector Across Components (#12025) * feat: Add Windows Playwright test fixes to RC (#12265) * feat(models): Add latest OpenAI GPT-5.3 and GPT-5.4 model families (#12304) * feat: add session_metadata JSON column to message table (#12255) * feat(playground): add bulk delete sessions with Select All functionality (#12119) * feat(ui): Add custom build error message transform hook (#12208) * feat: add core deployment implementation (#12108) * feat(deployments): add environment variable overrides for IBM IAM URLs (wxO) (#12373) * feat: MCP server for operating Langflow via REST API (#12237) * feat(wxo): list / update (agents) directly from Langflow API (#12390) * feat: Add Langflow Assistant chat panel for component generation (#11636) * feat(deployments): add list (llms) endpoint and wxo implementation (#12389) * feat: LE-374 token usage tracking for LLM and Agent components (#11891) * feat: opensearch multimodal: support filters, adjust defaults (#12319) * feat: MCP server UX improvements, batch, and spec-based flow creation (#12205) * feat: Langflow SDK and Flow DevOps API Toolkit (#12245) * feat(ui): Add "Connect other models" option for model-type handles (#12466) * feat: add Langflow MCP Client settings page (#12321) * feat: flow event polling for real-time MCP agent activity (#12340) * feat: Remove deprecated Astra Assistants to support latest docling package versions (#12442) * feat: add var to block custom component execution (#11893) * feat: add LANGFLOW_MCP_BASE_URL config for MCP server URL override (#12523) * feat: add telemetry service to lfx MCP server (#12422) * feat(playground): Add auth gate, session persistence and token display to shareable playground (#12519) * feat(agentics): Refactor bundle components to agenerate/amap/areduce pattern for Langflow 1.9 (#12518) * feat: deployment page and stepper UI with watsonx Orchestrate integration (#12303) * feat: hide advanced fields in InspectionPanel for File and SplitText components (#12473) * feat: IBM Globalization Pipeline integration and i18n setup (#12226) * feat: boazdavid policies component added (#12564) * feat: expose api_key in InspectionPanel, hide from advanced settings edit mode (#12578) * feat: add policies component for tool protection via ToolGuard (#12592) * feat: watsonx Orchestrate deployment UI polish (#12621) * feat: wxo api provider data url for provider accounts (#12607) * feat: add project_id query param to list /deployments endpoint (#12574) * feat(templates): replace AstraDB with native Knowledge Base in Vector Store RAG (#12629) * feat: harden /variables/detections to return only global variables (#12650) * feat: add SHA-256 hash-based API key lookup (#12597) * feat: add langflow-sdk support to release workflow (#12679) * feat: enforce unique snapshot to flow version relationship (#12680) * feat: validate duplicate tool names at deployment review step (#12675) * feat: rename deployment /executions endpoint to /runs (#12685) * feat(deployments): verify wxO credentials against instance API (#12449) ### ๐ Bug Fixes * fix(test): Fix superuser timeout test errors by replacing heavy client fixture (#11972) * fix: Fixes Kubernetes deployment crash on runtime_port parsing (#11968) * fix: Sanitize database credentials in error messages (#11621) * fix: Resolve ruff check failures in lfx deployment service (#11992) * fix: update pydantic to 2.12.5 for fastapi-pagination compatibility (#11566) * fix: coerce UUID session_id to string in ChatOutputResponse (#11958) * fix: Custom Component Generator Template contains broken URLs returning 404 errors (#11866) * fix: MCP Server Modal Improvements (#12017) * fix: knowledge Base Table โ Row Icon Appears Clipped/Cut for Some Entries (#12009) * fix: change loop description (#12018) * fix: playground does not scroll down to the latest user message upon sending (Regression) (#12006) * fix: Knowledge Base Improvements (#12023) * fix: standardize "README" title and update API key configuration notes in 3 main flow templates (#12005) * fix(test): Reduce response length assertions in flaky integration tests (#12057) * fix: add ondelete flag to fk in flow version table (#12059) * fix: Security/fix nltk CVE path traversal (#12109) * fix: upgrade axios to ^1.12.0 to address PVR0686555 vulnerability (#11995) * fix(ui): improve model provider modal layout and styling (#12112) * fix: ReDoS vulnerability in mustache template validation (LE-505) (#12076) * fix: Fix image preview for Windows paths in playground (#12083) * fix(core): Fix race condition in custom component tool invocations (#11994) * fix: update openai api key prefix in fe (#12122) * fix: gate PyPI publish jobs on CI completion in release workflow (#12168) * fix: filter Docker Hub tag queries to prevent rc0 overwrite (LE-515) (#12173) * fix: Cascading deletes to files when deleting users (#12155) * fix: prevent RCE via data parameter in build_public_tmp endpoint (#12160) * fix: Postgres JSON column fails with "Token NaN is invalid" when Agent stores message (psycopg InvalidTextRepresentation) (#11977) * fix: use timezone=true on flow_version created_at field (#12180) * fix: Proper refresh of Groq models (#12158) * fix: make LANGFUSE_BASE_URL the preferred URL variable (#12154) * fix: allow clearing Max Tokens field with Backspace/Delete (#12198) * fix: Resolve CodeQL false positives for path injection and URL substring sanitization (#12201) * fix: Add explicit left/right DataFrame inputs for merge operations (#12177) * fix: add dict to allowlist preventing TableInput data loss (#12074) * fix: 1.9.0 nightly (#12210) * fix(mcp): Add schema-driven type conversion (#11796) * fix: prevent overwriting user-selected global variables in provider cโฆ (#12217) * fix: Fixed CodeQL security scan about Incomplete URL substring sanitization on watsonx test suite (#12212) * fix: remove ibm-watsonx extra from complete installation (#12230) * fix: prevent arbitrary file write via path traversal in files endpoint (#12227) * fix: Avoid foreign key violation on span table with topological sort (#12232) * fix: use deepcopy to prevent shared reference mutation in component updates (#12252) * fix: prevent CI injection via unsanitized GitHub context interpolation (#12224) * fix: Wait for dynamic model fetch in Nvidia (#12229) * fix: protect image downloads by flow ownership (#12234) * fix: Sanitize folder names for CodeQL (#12263) * fix(deps): pin tar-fs to >=2.1.4 to fix symlink following vulnerability (#12078) * fix: Rebuild the embedding model in the nv template (#12275) * fix: support ZIP file upload for flows and projects endpoints (#12253) * fix(test): Fix Playwright E2E tests and backend compatibility on Windows (#12297) * fix: resolve File Component 'no component context' error for non-ASCII files (#12286) * fix: Handle multiple outputs in ComponentToolkit and clean edge logic (#12268) * fix(docker): Remove broken npm self-upgrade from Docker images (#12309) * fix: File Manager last item cut off in normal view (#12254) * fix: prevent path traversal in knowledge base bulk delete (#12243) * fix: disable dangerous deserialization by default in FAISS component (#11999) * fix: Use plain axios for external GitHub and Discord API calls (#12347) * fix: Add ephemeral file upload support (#12300) * fix(core): Add environment variable fallback for provider API key resolution (#12288) * fix: prevent path traversal in knowledge base create endpoint (#12337) * fix: update PyTorch to 2.6.0+ to fix torch.load() RCE vulnerability (#12323) * fix: prevent MCP command injection via allowlist validation (CWE-78) (#12290) * fix: replace grep -oP with sed for Node.js version extraction in Docker builds (#12331) * fix: enforce ownership check in build_flow endpoint (GHSA-qj98-rhf8-v93f) (#12305) * fix: enforce message ownership in monitor endpoints (#12202) * fix(test): Increase timeout and add waitFor on folder rename input (#12402) * fix: Fix shareable playground build events and message rendering (#12361) * fix: Add platform markers to cuga extra for macOS x86_64 (#12416) * fix: update npm dependencies (#12412) * fix: Propagate error details to Playground chat on flow build failure (#12366) * fix: resolve code scanning alerts for URL sanitization and insecure randomness (#12362) * fix: Improve the sub-process handling of the Docling Worker (#12296) * fix(test): Add missing required `llm` field to Watsonx deployment mapper tests (#12434) * fix(test): Add missing required `llm` field and fix flaky assertions in Watsonx tests (#12436) * fix(mcp): Stop sending API key as Bearer token in MCP client (#12349) * fix: Address a dictionary comprehension ruff error (#12438) * fix: Always resolve first dep for determinism (#12204) * fix: Support self-referential MCP JSON schema (#12359) * fix: redact sensitive information from log output (#12271) * fix: restore langflow-logo-color-black-solid.svg removed in docs release (#12447) * fix: Import and Statistics fixes for Knowledge Bases (#12446) * fix: Close popup when navigating to MCP settings (#12358) * fix: Build and install the langflow-sdk for lfx (fixes nightly) (#12481) * fix: upgrade dependencies to address CVE vulnerabilities (#12470) * fix: Properly grep for the langflow version (#12486) * fix: add SSRF protection to URL component (PVR0699081) (#11996) * fix(mcp): stop sending API key as Bearer token in MCP client (#12441) * fix: upgrade fastmcp to 3.2.0 to fix SSRF vulnerability (CVE) (#12516) * fix: Accept inputs for the URL component (#12474) * fix: enforce IDOR protection on v2 workflow job endpoints (#12398) * fix(ci): add missing lfx build step to cross-platform workflow_dispatch (#12524) * fix: upgrade vulnerable dependencies with override enforcement (#12526) * fix(ci): add missing SDK build step to cross-platform workflow_dispatch (#12536) * fix: preserve nested dictionaries in MCP tool parameters (#11970) * fix: Search beyond the first page of users (#12203) * fix: Display proper error messages and strip null params from tool calls (#12437) * fix(ui): Fix update banner hidden behind canvas controls (#12527) * fix: Preserve MCP tool selection on flow reload (#12363) * fix: add trailing newline to component_index.json (#12545) * fix: Restore MCP tool dropdown visibility when adding component from sidebar (#12550) * fix: Replace aiofile with aiofiles to prevent caio context leak under concurrent execution (#12525) * fix: Indefinitely loading KB page for errors (#12295) * fix: Accept appropriate types in OpenSearch mm (#12547) * fix: add missing ownership checks in projects API (GHSA-rpf3-3973-4gjr) (#12462) * fix: frozen vertices crash with TypeError when no cache service available (#12409) * fix: Added dependency updates for security and bug fixes (#12543) * fix: hide header CTA buttons during empty/loading states (#12560) * fix: Sort and check for Phase in migration (#12569) * fix: show empty state message in deployment wizard model dropdown (#12561) * fix: fixed concurrent tool usage error (#12548) * fix: cache deployment LLMs query to avoid refetch between wizard steps (#12562) * fix: remove retries on connection verification (#12568) * fix: Show the write file path in Write File Component (#12563) * fix: include connection changes in deployment update payload (#12573) * fix: ensure global vars load properly on first flow (#12538) * fix: Change the order of deps for re parsing (#12581) * fix: handle missing lfx package metadata in Docker (#12594) * fix: Don't update the model selection when changing key (#12596) * fix: enforce brace-expansion override (#12598) * fix: deployment UX improvements โ error toast, tool name, refetch, runtime feature flag (#12593) * fix: Added handlebars override to fix DepBot issue. (#12602) * fix: add message table indexes for PostgreSQL to model (#12572) * fix: Updated Pillow minimum version (#12609) * fix: convert MCP image content to LangChain multimodal format (#12610) * fix: Add os catch error to prevent windows failure installation on desktop on lfx lazy import (#12617) * fix: Make sure we don't toggle models on hover (#12599) * fix: allow spacebar in chat input textarea (#12612) * fix: Remove ddl_if from session_metadata indexes in MessageTable (#12623) * fix: use startswith for safe path traversal and parsing (#12559) * fix(mcp): Preserve nested dict arguments sent to MCP tools (#12601) * fix(models): Stop returning 'Custom' for Azure and Watsonx LLMs (#12608) * fix: handle read-only filesystem when updating starter project files (#12606) * fix: Remove test that doesnt test anything (#12633) * fix: Update WXO tests for handling none keys (#12636) * fix(ui): Show welcome page for new users when AUTO_LOGIN is false (#12626) * fix: MCP Tools loses optional field types (#12622) * fix: Remove redundant api key field in KB Ingest (#12624) * fix: Make sure flow upgrades work with Agent component and ModelInputs generally (#12620) * fix: make logs and outputs visible for components in tool mode (#11923) * fix: propagate resource-specific conflict error to api (#12580) * fix: Raw input value leaks into Global Variables dropdown list (#12660) * fix: allow booleans, numbers, etc. in root-level tweaks (#12605) * fix: restore webhook SSE authentication using FastAPI dependency injection (#12661) * fix(ui): refactor connection panel and fix search empty state (#12659) * fix: Resolve relative path issues in bundled environment (#12625) * fix: Root path option in settings for reverse proxy (#12603) * fix: Build the correct oauth callback URL for MCP Composer (#12662) * fix(ui): show moved flow in destination project without page refresh (#12670) * fix: resolve race condition in test_component_logging for Python 3.13 (#12676) * fix: upgrade playwright to 1.58.0 to address Chromium CVEs (#12668) * fix: fix base64 padding bug and empty Fernet error messages (#12595) * fix: Allow >= specifications in dependencies (#12682) * fix(frontend): auto-populate global variable key-value pairs (#12687) * fix: Updates the CI workflow to handle known dependency conflicts. (#12691) * fix(loop): iterate when only item is connected and render item as a table (#12669) * fix(mcp): preserve category when loading component registry (#12694) * fix: add uv sync step to SDK version determination job (#12695) * fix(frontend): improve deployment stepper visibility in light mode (#12696) * fix(mcp): expose layout tool as layout_flow to match batch dispatch (#12698) * fix: remove fictional gpt-5.3 ids and surface helpful message on model_not_found (#12693) * fix: retry on flow execution failure and surface friendly message for weak models (#12699) * fix(mcp): dedupe edges in connect_components (#12701) * fix(mcp): validate_flow fast-fails and reports partial errors (#12697) * fix: failing wxo list llm test (#12700) * fix: add pydantic validation on component assistant (#12706) * fix: Upgrade cuga to 0.2.20 to resolve playwright dependency conflict (#12703) ### โป๏ธ Refactoring * refactor: extract session management into dedicated store and hook (#12048) * refactor(ui): Replace raw Tailwind color classes with project design tokens (#12033) * refactor(types): Rename Data to JSON and DataFrame to Table (#11554) * refactor: design sweep for 1.9.0 release (#12684) ### ๐ Maintenance Tasks * chore: remove CodeFlash integration (#11670) * chore: clean up files created during testing (#11844) * chore: fix model attribute accessor (#11976) * chore: merge release 1.8.0 (#12088) * chore: Added support for `space_id` scope in `WatsonxAIComponent` (#11732) * chore: Added support for `space_id` scope in `WatsonxEmbeddingsComponent` (#11734) * chore: clean up secrets.baseline (#12125) * chore: fix safe biome issues (#12169) * chore: merge branch release-1.8.1 into main (#12185) * chore: remove hash history (#12183) * chore: release nightlies from of release branch (#12181) * chore: update deps due to security vulnerabilities (#12371) * chore: remove mypy from CI (#12448) * chore: merge main into release-1.9.0 (excluding Gemini tool_calling disable) (#12553) * chore(i18n): disable automatic browser language detection (#12671) * chore: update deps (#12657) * chore: add default models to llm list result from wxo adapter (#12686) ### ๐ Documentation * docs: docker uv install for MCP tools (#12089) * docs: square up inline icons CSS (#12159) * docs: OpenAPI spec content updated without version change (#12113) * docs: uv included in 1.8.1 images (#12135) * docs: replace the file upload utility (#12153) * docs: lfx readme content (#11870) * docs: add a copy to markdown button to docusaurus theme (#12189) * docs: add versioning (#12218) * docs: replace api build automation (#12214) * docs: Add AI coding agent skills for code review, testing, and refactoring (#12241) * docs: cherry pick 1.8 changes from main to release (#12292) * docs: CSS redesign (#12306) * docs: rename data to JSON and dataframe to table (#12352) * docs: point security reports to hackerone (#12368) * docs: block custom components with env var (#12413) * docs: add CI optimization analysis for pre-release builds (#12207) * docs: test harness for api reference code samples (#12338) * docs: increase padding for sidebars icons (#12480) * docs: Flow DevOps Toolkit SDK (#12472) * docs: enhance Agentics documentation with embedded video (#12272) * docs: investigate PyTorch macOS AMD64 + Python 3.13 CI failure (LE-172) (#12469) * docs: investigate deprecated macOS support and impact on Langflow (LE-265) (#12477) * docs: langflow assistant feature (#12439) * docs: flow devops toolkit SDK manage multiple environments (#12479) * docs: policies component (#12628) * docs: components index path env var (#12630) * docs: generate and bump open API spec to 1.9.0 (#12638) * docs: add flow versioning (#12634) * docs: mcp client and other changes (#12627) * docs: update wxo signup link (#12683) * docs: cut version 1.9.0 (#12681) * docs: release note typo (#12690) ### ๐งช Tests * tests: Add soft content on flaky test (#12081) * tests: Prevent session deletion data leakage in playground chat (#12099) * test: add upgrade migration check to ci (#12061) * test: add playwright code coverage (#12294) * test: add PostgreSQL to migration CI tests (#12257) ### ๐ง CI/CD * ci: add lfx paths to CI path filters (#11212) * ci: allow docs-only pull requests to skip tests (#12174) * ci: upgrade runtime to python:3.14.3-slim-trixie (#12369) * ci: add component index sync on label addition (#12590) ### โก Performance * perf(test): Optimize CI tests causing timeout on Windows and Python 3.12 (#12405) * perf: enable Gunicorn preload_app to reduce memory per worker (#12364) ### ๐ Security * security: update NLTK to 3.9.3 to fix path traversal vulnerability (#12090) ### Others * Docs: 1.8 release (#11295) * ref: architectural renames for deployment api, service, persistence layer (#12106) * improvement: graceful error when PostgreSQL version is less than 15 (#11811) * Fix: session metadata migration consistency (#12328) * ref: add feature flag around BE wxo deployments (#12365) * deps: add official wxo client package to langflow-base complete (#12383) * Revert "fix(mcp): Stop sending API key as Bearer token in MCP client (#12349)" * ref: update wxo language (#12571) * Feat: Playground - Need to accept File uploading (#12326) * Fix: Build Output for Table and Dataframes (#12450) * Revert: policies component (#12564) (#12585) **Full Changelog**: https://github.com/langflow-ai/langflow/compare/v1.8.0...v1.9.0