Skip to content

Conversation

@italojohnny
Copy link
Contributor

@italojohnny italojohnny commented Sep 9, 2025

This PR reintroduces the clean_data input that was accidentally removed in PR #9610.

Summary by CodeRabbit

  • New Features
    • Added MCP Composer URL endpoint and orchestration with API-key auth; auto start/stop on OAuth changes.
    • Config now exposes voice_mode availability.
  • Improvements
    • Windows run scripts better detect and use .env files.
    • Knowledge Base components revamped (ingestion/retrieval), more flexible inputs, optional embeddings.
    • Agent model provider UX updated; “connect other models” flow.
    • File loading/Docling OCR defaults and error messages improved.
  • Bug Fixes
    • More consistent message history slicing and conditional routing behavior.
    • Safer auth updates and no default password logging.
  • Deprecations/Removals
    • Removed deprecated MCP SSE/stdio and Google Search/Serper tools; legacy Python Function prototype removed.
  • Documentation
    • Default OpenAI models updated to gpt-4.1 in examples.
  • Chores
    • Version bumped to 1.6.0; dependency pins tightened; ignore temp member_servers.json.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 9, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Renames the MCP composer env flag and adjusts Windows scripts; bumps version and pins dependencies. Adds MCP Composer orchestration, DB-backed API-key auth, and related endpoints. Refactors knowledge-base components and exports. Updates Docling/file handling and message/memory behaviors. Removes deprecated tools/components. Changes various UI labels and provider constants. Updates docs defaults.

Changes

Cohort / File(s) Summary
Env & Packaging
/.env.example, /.gitignore, /pyproject.toml
Renames MCP composer flag to LANGFLOW_MCP_COMPOSER_ENABLED (default false); ignores src/frontend/temp/member_servers.json; bumps version to 1.6.0; pins composio deps (composio==0.8.5, composio-langchain==0.8.5).
Windows scripts
/scripts/windows/build_and_run.bat, /scripts/windows/build_and_run.ps1
Switch to USE_ENV_FILE flag; pass --env-file directly to uv run before langflow run.
Backend auth & MCP Composer
/src/backend/base/langflow/api/v1/mcp_projects.py, /src/backend/base/langflow/api/v1/auth_helpers.py, /src/backend/base/langflow/api/v1/projects.py, /src/backend/base/langflow/api/build.py, /src/backend/base/langflow/__main__.py, /src/backend/base/langflow/api/v1/schemas.py
Adds composer URL/registration helpers and endpoints; DB-backed API key verification; auth settings update helper with secret masking; project create/update/delete hooks to start/stop composer; merges conditionally excluded vertices in build; removes default credential logging; adds voice_mode_available to ConfigResponse.
Agents, providers, constants
/.../base/constants.py, /.../base/models/anthropic_constants.py, /.../base/models/model_input_constants.py, /.../components/agents/agent.py, /.../base/agents/events.py
Narrows SKIPPED_COMPONENTS; marks claude-3-sonnet-20240229 deprecated; disables Groq provider; removes “Custom” provider path and structured_response output; updates agent provider flow; returns raw input text in agent events.
Docling & file data pipeline
/.../base/data/docling_utils.py, /.../components/docling/docling_inline.py, /.../components/docling/docling_remote.py, /.../components/data/file.py, /.../components/data/url.py, /.../components/data/api_request.py, /.../base/data/utils.py, /.../components/processing/structured_output.py
Adds dependency-specific error classification and result packaging; improves inline error propagation; updates remote API to /v1 with new payload; adjusts File component OCR defaults and extensions; filters None headers; unwraps Data in API request parsing; reorders TEXT_FILE_TYPES; DataFrame construction directly from dicts.
Knowledge-base refactor
/.../components/knowledge_bases/__init__.py, /.../components/knowledge_bases/ingestion.py, /.../components/knowledge_bases/retrieval.py, /.../components/data/__init__.py
Replaces KBIngestion/KBRetrieval with KnowledgeIngestion/KnowledgeRetrieval; updates inputs/outputs and options (adds Cohere embeddings, HandleInput); new include_embeddings flag; adjusts exports.
Removals: deprecated tools/components
/.../components/tools/google_search_api.py, /.../components/tools/google_serper_api.py, /.../components/tools/__init__.py, /.../components/prototypes/python_function.py, /.../components/deactivated/mcp_sse.py, /.../components/deactivated/mcp_stdio.py, /.../components/google/google_serper_api_core.py, /.../components/__init__.py
Removes Google Search/Serper tools and Serper core; drops prototype PythonFunction and deactivated MCP components; removes prototypes export; updates tools exports.
Logic routers & flow tools
/.../components/logic/conditional_router.py, /.../components/logic/data_conditional_router.py, /.../components/logic/flow_tool.py, /.../components/logic/sub_flow.py, /.../components/logic/pass_message.py
Adjusts iteration/conditional exclusion behavior; adds replacement mappings; removes “[Deprecated]” labels; sets replacements to RunFlow/ConditionalRouter.
Messaging & memory
/.../components/input_output/chat.py, /.../components/input_output/chat_output.py, /.../components/helpers/memory.py, /.../components/helpers/output_parser.py, /.../components/helpers/store_message.py
Removes per-message style inputs/properties; standardizes last-N message slicing before ordering; adds replacement hints for parser/memory components.
Component labels and minor metadata
/.../components/azure/*, /.../components/google/google_generative_ai_embeddings.py, /.../components/huggingface/*, /.../components/ibm/*, /.../components/elastic/*, /.../components/qdrant/qdrant.py, /.../components/redis/redis_chat.py, /.../components/milvus/milvus.py, /.../components/firecrawl/*, /.../components/clickhouse/clickhouse.py, /.../components/icosacomputing/combinatorial_reasoner.py, /.../components/agentql/agentql_api.py, /.../components/langchain_utilities/langchain_hub.py, /.../components/olivya/olivya.py, /.../components/crewai/*, /.../components/embeddings/*, /.../components/processing/*, /.../components/data/csv_to_data.py, /.../components/data/json_to_data.py, /.../components/google/gmail.py
Renames display labels for API keys/passwords; adds replacement attributes across many components; minor display/description tweaks; no logic changes.
Datastax modules
/.../components/datastax/__init__.py, /.../components/datastax/astra_vectorize.py, /.../components/datastax/astra_db.py
Points dynamic import to astradb_vectorstore; adjusts labels; removes deprecation tag; adds replacement to AstraDB.
Docs defaults
/docs/docs/Integrations/Cleanlab/eval_and_remediate_cleanlab.json, /docs/docs/Integrations/Notion/*
Updates default OpenAI model values to gpt-4.1.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor U as User
  participant API as Projects API
  participant AH as handle_auth_settings_update
  participant S as Settings/Services
  participant MC as MCPComposerService
  participant DB as DB

  U->>API: PATCH /projects/{id} (auth_settings, ... )
  API->>DB: Load project
  API->>AH: handle_auth_settings_update(project, new_auth_settings)
  AH-->>API: { should_start, should_stop, should_handle }
  API->>DB: Save updated project/auth_settings
  alt should_start
    API->>MC: register_project_with_composer(project) (bg task)
    MC-->>API: ack
  else should_stop
    API->>MC: stop_project_composer(project_id)
    MC-->>API: ack
  end
  API-->>U: 200 Updated
Loading
sequenceDiagram
  autonumber
  participant C as Client
  participant API as MCP Projects API
  participant DB as DB
  participant K as API Key Store
  participant M as MCP Composer

  C->>API: GET /projects/{id}/composer_url (auth)
  API->>DB: verify_project_access(user, project)
  API->>DB: verify_project_auth(db, project_id, key/query/header)
  DB->>K: check_key(project_id, key)
  K-->>DB: user or error
  alt uses composer
    API->>M: get_or_start_mcp_composer(config, name, id)
    M-->>API: running
    API-->>C: 200 { sse_url, uses_composer: true }
  else not using composer
    API-->>C: 200 { uses_composer: false }
  end
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/clean_data_chat_output

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.

@italojohnny italojohnny changed the base branch from main to release-1.6.0 September 9, 2025 20:43
@italojohnny italojohnny closed this Sep 9, 2025
@sonarqubecloud
Copy link

sonarqubecloud bot commented Sep 9, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
14 Security Hotspots
D Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants