Traceary

Catalog / Dify

1.11.0

v1.11.0 - Your knowledge base just went from mono to full HD

9 months agosecurityaddedfixedOriginal notes

🧠 Multimodal Knowledge Base

Dify can now understand both text and images in your knowledge base.

Before, embeddings only cared about words. But real docs? They’re full of screenshots, diagrams, memes (don’t lie), and markdown with embedded images. Now those visuals count too.

What’s Actually Happening

  1. Auto‑Image Extraction
    Drop a doc with Markdown images — like ![vibe](https://cats.png) — and Dify grabs them automatically (JPG, PNG, GIF ≤ 2 MB).
  2. Smart Attachment Handling
    Each image is linked to its matching text chunk, so context stays tight.
  3. Embedding Behavior
    • Using a multimodal embedding model? Then both text + image get vectorized. You can:
      • search text ↔ image,
      • image ↔ image,
      • or image ↔ text.
        Basically, everything ↔ everything.
    • Sticking with a regular text‑only model? Cool — the images still go along for the ride and will appear in prompts when you use a Vision‑enabled LLM.
  4. Developer Candy Knowledge Pipeline’s KnowledgeBase node speaks two new dialects —
    • multimodal‑Parent‑Child
    • multimodal‑General Perfect for plugin devs who want to feed Dify structured mixed‑modality data without headaches.
  5. Supported Multimodal Models (tips: update below plugin to the latest version)
    • AWS Bedrock: nova‑2‑multimodal‑embeddings‑v1:0
    • Google Vertex AI: multimodalembedding@001
    • Jina: jina‑embedding‑v4, jina‑clip‑v1, jina‑clip‑v2, jina‑reranker‑m0
    • Tongyi (Qwen): multimodal‑embedding‑v1

Once everything’s embedded, you’ll see a shiny new Multimodal tag in your knowledge base — because now your data’s two‑dimensional (and twice as cool).

Huge thanks to @JohnJyong (#29115) and @WTW0313 (#27793) for bringing visual intelligence to Dify. Absolute legends.

🧩 Other New Features

  • Zen Mode — disappear into your flow; fewer buttons, more focus. use cmd + k to enter. thanks @ZeroZ‑lab (#28794)
  • “Open Workflow” shortcut for WorkflowTool — hop straight into editing like a boss.
    props @CrabSAMA (#28898)
  • Start Node JSON Schema — keeps your workflows honest.
    thanks @fatelei (#29053)
  • Admin API Keys skip CSRF — automation now flows smoother than espresso.
    thanks @kenwoodjw (#29139)
  • Dark‑mode icons, ReactScan, and spicy color polish all landed too.
    shoutout @hjlarry (#28858) and @zhsama (#29086)

⚙️ Performance & Infrastructure

A whole lot of behind‑the‑curtain magic here:

  • GraphEngine got chill pause/resume handling — no more jumping gears mid‑flow.
    thanks @QuantumGhost (#28196)
  • Automatic Storage Permission Repair Introduced an init container that automatically fixes file system permissions on startup, removing the need for manual intervention when deploying with different storage backends. thanks to @kurokobo and @zhutong6688 (#29297).
  • Redis caching makes tool provider listings zoom. thanks @yangzheli (#29101)
  • Milvus 2.6.0 upgrade in Docker — fewer installation freak‑outs. cheers @majinghe (#26618)
  • Pydantic upgrade cleaned up node hydration code. thanks @asukaminato0721 (#28993)
  • Less UI lag — fewer unnecessary re‑renders across Workflow and Marketplace. props @iamjoel (#28776, #28783)
  • Massive test overhaul — embeddings, datasets, plugins, workflows… you name it. thanks @codomposer, @SmartDever02, @hsparks‑codes

🐞 Key Fixes

  • Webhook Node Conversion Error Resolved Fixed an issue where converting an existing node into a webhook node could cause a 404 error. thanks to @hjlarry (#28686).
  • Chat Auto‑Scroll Stability Restored
    Addressed a problem that caused the chat interface to stop auto‑scrolling during active conversations.
    thanks to @utsumi‑fj (#28690).
  • OceanBase Vector Search Accuracy Improved
    Implemented proper handling of the score_threshold parameter to ensure consistent and relevant retrieval results.
    thanks to @connermo (#28536).
  • Dark Theme Rendering Adjustments
    Corrected tooltip display and text color inconsistencies in dark mode for a more stable visual experience.
    thanks to @hjlarry (#29186).
  • MySQL Query Compatibility Fixes
    Resolved issues with UUID queries and unsupported returning statements when using MySQL drivers.
    thanks to @wangype (#28941) and @longbingljw (#29069).
  • Database Session Management
    Fixed errors that could occur when database sessions were initialized multiple times during workflow execution.
    thanks to @fatelei (#29160).
  • UI Consistency Enhancements
    Addressed several minor rendering and layout issues, including small‑screen text visibility and tooltip behavior.

🤘 A ton of folks touched this release — whether you built features, fixed a typo, or added a single test, thank you.
You made Dify 1.11.0 faster, funnier, and just plain better.


Upgrade Guide

[!NOTE]

We have re-released the image of this version. If you pulled the image before the release time, you need to delete them and re-fetch.

Docker Compose Deployments

  1. Back up your customized docker-compose YAML file (optional)

    cd docker
    cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
    
  2. Get the latest code from the main branch

    git checkout main
    git pull origin main
    
  3. Stop the service. Please execute in the docker directory

    docker compose down
    
  4. Back up data

    tar -cvf volumes-$(date +%s).tgz volumes
    
  5. Upgrade services

    docker compose up -d
    

[!NOTE]

If you encounter errors like below

2025/11/26 11:37:57 /app/internal/db/pg/pg.go:30
[error] failed to initialize database, got error failed to connect to `host=db_postgres user=postgres database=dify_plugin`: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)

2025/11/26 11:37:57 /app/internal/db/pg/pg.go:34
[error] failed to initialize database, got error failed to connect to `host=db_postgres user=postgres database=postgres`: hostname > resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)
2025/11/26 11:37:57 init.go:99: [PANIC]failed to init dify plugin db: failed to connect to `host=db_postgres user=postgres database=postgres`: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)
panic: [PANIC]failed to init dify plugin db: failed to connect to `host=db_postgres user=postgres database=postgres`: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)

Please use the following command instead. For details, please read this https://github.com/langgenius/dify/issues/28706

docker compose --profile postgresql up -d

Source Code Deployments

  1. Stop the API server, Worker, and Web frontend Server.

  2. Get the latest code from the release branch:

    git checkout 1.11.0
    
  3. Update Python dependencies:

    cd api
    uv sync
    
  4. Then, let's run the migration script:

    uv run flask db upgrade
    
  5. Finally, run the API server, Worker, and Web frontend Server again.


What's Changed

These notes run past the length kept in the archive. The rest is on the publisher’s page.