Skip to content

Commit a91863a

Browse files
committed
chore(release): update version to 0.3.5
- Added new integrations for Telegram, DingTalk, and Mattermost IM channels. - Introduced a pluggable slash command system and a suggested questions feature for enhanced user interaction. - Implemented VLM auto-description for images returned by MCP tools. - Improved stability of MCP tool names and added channel tracking for knowledge entries. - Fixed multiple bugs including empty responses when no knowledge base is configured and UTF-8 truncation issues. - Updated documentation to reflect new features and enhancements.
1 parent 35ecd49 commit a91863a

File tree

7 files changed

+274
-199
lines changed

7 files changed

+274
-199
lines changed

CHANGELOG.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,58 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [0.3.5] - 2026-03-27
6+
7+
### 🚀 New Features
8+
- **NEW**: Telegram IM Integration — Telegram bot adapter with webhook and long-polling modes, streaming replies via editMessageText, file download via getFile API, and timing-safe secret token verification
9+
- **NEW**: DingTalk IM Integration — DingTalk bot supporting webhook (HmacSHA256 signature verification) and Stream mode (via dingtalk-stream-sdk-go), with AI Card streaming via OpenAPI and AccessToken caching
10+
- **NEW**: Mattermost IM Channel — Mattermost IM channel adapter support
11+
- **NEW**: IM Slash Command System — pluggable command framework with five built-in commands: /help, /info, /search, /stop, /clear; wired into all IM channel message dispatch
12+
- **NEW**: IM Distributed Coordination — Redis-based multi-instance coordination: per-user queue limits, global concurrency gate, message dedup, WebSocket leader election, /stop cancellation for queued and in-flight requests
13+
- **NEW**: Suggested Questions — agent-specific suggested questions API based on knowledge bases, with frontend display in chat and create-chat views; image knowledge auto-enqueues question generation tasks
14+
- **NEW**: VLM Auto-Describe MCP Tool Images — when MCP tools return image content, the agent automatically generates text descriptions via the configured VLM model, making image data accessible to text-only LLMs
15+
- **NEW**: Novita AI Provider — new LLM provider with OpenAI-compatible API supporting chat, embedding, and VLLM model types
16+
- **NEW**: Channel Tracking — channel field added to knowledge entries and messages to track source (web/api/im/browser_extension) with frontend labels and DB migrations
17+
- **NEW**: Expose Built-in Parser Engine in Settings — built-in parser engine now visible and selectable in the settings UI
18+
19+
### ⚡ Improvements
20+
- MCP tool names now derived from service.Name (stable across server reconnections) instead of UUID; added collision detection and unique (tenant_id, name) DB index
21+
- Frontend formats MCP tool names from snake_case (e.g. mcp_my_server_search_docs) to human-readable form (My Server Search Docs)
22+
- Enhanced intent classification and context templates: runtime metadata (current time, weekday) injected into context, critical instructions added to rewrite template for entity/keyword preservation
23+
- Knowledge search: added SQL LIKE wildcard escaping, title-based filtering, URL and HTML file type support; FindByMetadataKey method added
24+
- Chunk search returns total chunk counts per knowledge ID for improved agent context awareness
25+
- MiniMax models upgraded from M2.1/M2.1-lightning to M2.7/M2.7-highspeed; Novita AI MiniMax reference updated to M2.7
26+
- DingTalk AI Card streaming: create/deliver/update via OpenAPI; shared think-block rendering via im.TransformThinkBlocks applied to all IM reply paths (DingTalk, Telegram, Feishu)
27+
- IM stream orphan reaper and edit throttling added for DingTalk and Telegram; Feishu stream reaper fixes memory leak
28+
- WeCom group chat replies fixed via appchat API with user fallback; empty-stream fallback when no visible content is produced
29+
- Improved LLM call log summarization: limits output to last few messages to reduce verbosity
30+
- ParallelToolCalls option added to ChatOptions
31+
32+
### 🐛 Bug Fixes
33+
- Fixed agent producing empty response when no knowledge base is configured: retry (max 2), nudge message, and fallback response added
34+
- Fixed UTF-8 byte-based truncation in summary fallback causing PostgreSQL invalid byte sequence errors for Chinese/emoji content; changed to rune-based truncation
35+
- Fixed marked.js usage errors; upgraded marked dependency to v17.0.5 for correct code block rendering
36+
- Fixed vLLM streaming: reasoning content now parsed and propagated through streaming pipeline alongside standard response
37+
- Fixed frontend page counter not resetting to 1 after knowledge file operations (tag, upload, move, edit, delete), causing pagination skips
38+
- Fixed image markdown being stripped during message sanitization
39+
- Fixed MCP tool naming to use service.Name instead of UUID, preventing tool call failures after server reconnection
40+
- Fixed global default storage engine not respected when creating a new knowledge base (was hardcoded to "local")
41+
- Fixed API key encryption loss when updating tenant settings via PUT /tenants/kv/{key}: AfterFind-decrypted plaintext no longer written back to DB
42+
- Fixed empty passage filtering in rerank to prevent Aliyun and Baidu Qianfan 400 errors
43+
- Fixed markdown table rows being passed raw to rerank; now converted to plain text (col1, col2) before reranking
44+
- Fixed OpenRouter embedding provider missing support
45+
- Fixed Milvus vector metric type now configurable via MILVUS_METRIC_TYPE environment variable
46+
- Fixed temperature validation to accept zero as a valid value (was previously defaulting)
47+
- Fixed pg_search update guarded with skip_embedding to prevent unnecessary re-embedding
48+
- Fixed thinking block content being indexed into chat history knowledge base, degrading RAG retrieval quality
49+
50+
### 📚 Documentation
51+
- Added Telegram and DingTalk IM platform setup guides (WebSocket/Webhook modes, streaming, architecture diagrams)
52+
- Updated IM integration docs with Slack, slash commands, QA queue, rate limiting, and streaming output sections
53+
54+
### 🔒 Security Enhancements
55+
- Enhanced SSRF protection in RemoteAPIChat: replaced default DialContext with SSRFSafeDialContext; added SSRF URL validation for BaseURL and endpoint in NewRemoteAPIChat and chat methods
56+
557
## [0.3.4] - 2026-03-19
658

759
### 🚀 New Features
@@ -740,6 +792,7 @@ All notable changes to this project will be documented in this file.
740792
- Docker Compose for quick startup and service orchestration.
741793
- MCP server support for integrating with MCP-compatible clients.
742794

795+
[0.3.5]: https://github.com/Tencent/WeKnora/tree/v0.3.5
743796
[0.3.4]: https://github.com/Tencent/WeKnora/tree/v0.3.4
744797
[0.3.3]: https://github.com/Tencent/WeKnora/tree/v0.3.3
745798
[0.3.2]: https://github.com/Tencent/WeKnora/tree/v0.3.2

README.md

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<img src="https://img.shields.io/badge/License-MIT-ffffff?labelColor=d4eaf7&color=2e6cc4" alt="License">
2323
</a>
2424
<a href="./CHANGELOG.md">
25-
<img alt="Version" src="https://img.shields.io/badge/version-0.3.4-2e6cc4?labelColor=d4eaf7">
25+
<img alt="Version" src="https://img.shields.io/badge/version-0.3.5-2e6cc4?labelColor=d4eaf7">
2626
</a>
2727
</p>
2828

@@ -50,6 +50,17 @@ It adopts a modular architecture that combines multimodal preprocessing, semanti
5050

5151
## ✨ Latest Updates
5252

53+
**v0.3.5 Highlights:**
54+
55+
- **Telegram, DingTalk & Mattermost IM Integration**: Added Telegram bot (webhook/long-polling, streaming via editMessageText), DingTalk bot (webhook/Stream mode, AI Card streaming), and Mattermost adapter; IM channel coverage now includes WeCom, Feishu, Slack, Telegram, DingTalk, and Mattermost
56+
- **IM Slash Commands & QA Queue**: Pluggable slash-command system (/help, /info, /search, /stop, /clear) with a bounded QA worker pool, per-user rate limiting, and Redis-based multi-instance coordination
57+
- **Suggested Questions**: Agents surface context-aware suggested questions based on configured knowledge bases; image knowledge automatically enqueues question generation
58+
- **VLM Auto-Describe MCP Tool Images**: When MCP tools return images, the agent generates text descriptions via the configured VLM model, enabling image content to be used by text-only LLMs
59+
- **Novita AI Provider**: New LLM provider with OpenAI-compatible API supporting chat, embedding, and VLLM model types
60+
- **MCP Tool Name Stability**: Tool names now based on service name (stable across reconnections) instead of UUID; unique name constraint added; frontend formats names into human-readable form
61+
- **Channel Tracking**: Knowledge entries and messages record source channel (web/api/im/browser_extension) for traceability
62+
- **Bug Fixes**: Fixed agent empty response when no knowledge base is configured, UTF-8 truncation in summaries for Chinese/emoji documents, API key encryption loss on tenant settings update, vLLM streaming reasoning content propagation, and rerank empty passage errors
63+
5364
**v0.3.4 Highlights:**
5465

5566
- **IM Bot Integration**: WeCom, Feishu, and Slack IM channel support with WebSocket/Webhook modes, streaming, and knowledge base integration
@@ -60,25 +71,21 @@ It adopts a modular architecture that combines multimodal preprocessing, semanti
6071
- **AWS S3 Storage**: Integrated AWS S3 storage adapter with configuration UI and database migrations
6172
- **AES-256-GCM Encryption**: API keys encrypted at rest with AES-256-GCM for enhanced security
6273
- **Built-in MCP Service**: Built-in MCP service support for extending agent capabilities
63-
- **Agent Streaming Panel**: Optimized AgentStreamDisplay with auto-scrolling, improved styling, and loading indicators
6474
- **Hybrid Search Optimization**: Grouped targets and reused query embeddings for better retrieval performance
6575
- **Final Answer Tool**: New final_answer tool with agent duration tracking for improved agent workflows
6676

67-
**v0.3.3 Highlights:**
68-
69-
- 🧩 **Parent-Child Chunking**: Hierarchical parent-child chunking strategy for enhanced context management and more accurate retrieval
70-
- 📌 **Knowledge Base Pinning**: Pin frequently-used knowledge bases for quick access
71-
- 🔄 **Fallback Response**: Fallback response handling with UI indicators when no relevant results are found
72-
- 🖼️ **Image Icon Detection**: Automatic image icon detection and filtering in document processing
73-
- 🧹 **Passage Cleaning for Rerank**: Passage cleaning for rerank model to improve relevance scoring accuracy
74-
- 🐳 **Docker & Skill Management**: Enhanced Docker setup with entrypoint script and skill management
75-
- 🗄️ **Storage Auto-Creation**: Storage engine connectivity check with auto-creation of buckets
76-
- 🎨 **UI Consistency**: Standardized border styles, updated theme and component styles across the application
77-
-**Chunk Size Tuning**: Updated chunk size configurations for knowledge base processing
78-
7977
<details>
8078
<summary><b>Earlier Releases</b></summary>
8179

80+
**v0.3.3 Highlights:**
81+
82+
- **Parent-Child Chunking**: Hierarchical parent-child chunking strategy for enhanced context management and more accurate retrieval
83+
- **Knowledge Base Pinning**: Pin frequently-used knowledge bases for quick access
84+
- **Fallback Response**: Fallback response handling with UI indicators when no relevant results are found
85+
- **Passage Cleaning for Rerank**: Passage cleaning for rerank model to improve relevance scoring accuracy
86+
- **Storage Auto-Creation**: Storage engine connectivity check with auto-creation of buckets
87+
- **Milvus Vector DB**: Added Milvus as a new vector database backend for knowledge retrieval
88+
8289
**v0.3.2 Highlights:**
8390

8491
- 🔍 **Knowledge Search**: New "Knowledge Search" entry point with semantic retrieval, supporting bringing search results directly into the conversation window
@@ -163,24 +170,28 @@ WeKnora employs a modern modular design to build a complete document understandi
163170

164171
## 🧩 Feature Matrix
165172

166-
| Module | Support | Description |
167-
|---------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
168-
| Agent Mode | ✅ ReACT Agent Mode | Support for using built-in tools to retrieve knowledge bases, MCP tools, and web search, with cross-knowledge base retrieval and multiple iterations |
169-
| Knowledge Base Types | ✅ FAQ / Document | Support for creating FAQ and document knowledge base types, with folder import, URL import, tag management, and online entry |
170-
| Document Formats | ✅ PDF / Word / Txt / Markdown / Images (with OCR / Caption) | Support for structured and unstructured documents with text extraction from images |
171-
| Model Management | ✅ Centralized configuration, built-in model sharing | Centralized model configuration with model selection in knowledge base settings, support for multi-tenant shared built-in models |
172-
| Embedding Models | ✅ Local models, BGE / GTE APIs, etc. | Customizable embedding models, compatible with local deployment and cloud vector generation APIs |
173-
| Vector DB Integration | ✅ PostgreSQL (pgvector), Elasticsearch | Support for mainstream vector index backends, flexible switching for different retrieval scenarios |
174-
| Retrieval Strategies | ✅ BM25 / Dense Retrieval / GraphRAG | Support for sparse/dense recall and knowledge graph-enhanced retrieval with customizable retrieve-rerank-generate pipelines |
175-
| LLM Integration | ✅ Support for Qwen, DeepSeek, etc., with thinking/non-thinking mode switching | Compatible with local models (e.g., via Ollama) or external API services with flexible inference configuration |
176-
| Conversation Strategy | ✅ Agent models, normal mode models, retrieval thresholds, Prompt configuration | Support for configuring Agent models, normal mode models, retrieval thresholds, online Prompt configuration, precise control over multi-turn conversation behavior |
177-
| Web Search | ✅ Extensible search engines, DuckDuckGo / Google | Support for extensible web search engines with built-in DuckDuckGo search engine |
178-
| MCP Tools | ✅ uvx, npx launchers, Stdio/HTTP Streamable/SSE | Support for extending Agent capabilities through MCP, with built-in uvx and npx launchers, supporting three transport methods |
179-
| QA Capabilities | ✅ Context-aware, multi-turn dialogue, prompt templates | Support for complex semantic modeling, instruction control and chain-of-thought Q&A with configurable prompts and context windows |
180-
| E2E Testing | ✅ Retrieval+generation process visualization and metric evaluation | End-to-end testing tools for evaluating recall hit rates, answer coverage, BLEU/ROUGE and other metrics |
181-
| Deployment Modes | ✅ Support for local deployment / Docker images | Meets private, offline deployment and flexible operation requirements, with fast development mode support |
182-
| User Interfaces | ✅ Web UI + RESTful API | Interactive interface and standard API endpoints, with Agent mode/normal mode switching and tool call process display |
183-
| Task Management | ✅ MQ async tasks, automatic database migration | MQ-based async task state maintenance, support for automatic database schema and data migration during version upgrades |
173+
| Module | Support | Description |
174+
|---------|---------|-------------|
175+
| Agent Mode | ✅ ReACT Agent Mode | Built-in tools for knowledge base retrieval, MCP tool calls, and web search; cross-knowledge base retrieval with multi-step iteration |
176+
| Knowledge Base Types | ✅ FAQ / Document | FAQ and document knowledge bases with folder import, URL import, tag management, online entry, and knowledge move |
177+
| Document Formats | ✅ PDF / Word / Txt / Markdown / HTML / Images (OCR + Caption) | Structured and unstructured document parsing; image text extraction via OCR; image caption generation via VLM |
178+
| IM Channel Integration | ✅ WeCom / Feishu / Slack / Telegram / DingTalk / Mattermost | WebSocket and Webhook modes; streaming replies; slash commands (/help, /info, /search, /stop, /clear); per-user rate limiting; Redis-based multi-instance coordination |
179+
| Model Management | ✅ Centralized configuration, built-in model sharing | Centralized model config with per-knowledge-base model selection; multi-tenant shared built-in model support |
180+
| Embedding Models | ✅ Local models (Ollama), BGE / GTE / OpenAI-compatible APIs | Customizable embedding models compatible with local deployment and cloud vector generation APIs |
181+
| Vector DB Integration | ✅ PostgreSQL (pgvector) / Elasticsearch / Milvus / Weaviate / Qdrant | Five vector index backends with flexible switching to match retrieval scenario requirements |
182+
| Object Storage | ✅ Local / MinIO / AWS S3 / Volcengine TOS | Pluggable storage adapters for file and image assets; bucket auto-creation on startup |
183+
| Retrieval Strategies | ✅ BM25 / Dense Retrieval / GraphRAG | Sparse/dense recall and knowledge graph-enhanced retrieval; customizable retrieve-rerank-generate pipeline |
184+
| LLM Integration | ✅ Qwen / DeepSeek / MiniMax / NVIDIA / Novita AI / OpenAI-compatible | Local models via Ollama or external API services; thinking/non-thinking mode switching; vLLM streaming reasoning content support |
185+
| Conversation Strategy | ✅ Agent model, normal model, retrieval threshold, Prompt configuration | Online Prompt editing; retrieval threshold tuning; precise multi-turn conversation behavior control |
186+
| Web Search | ✅ DuckDuckGo / Bing / Google (extensible) | Pluggable search engine providers; web search toggle per conversation |
187+
| MCP Tools | ✅ uvx / npx launchers, Stdio / HTTP Streamable / SSE | Extend agent capabilities via MCP; stable tool naming with collision protection; VLM auto-description for tool-returned images |
188+
| Suggested Questions | ✅ Knowledge-base-driven question suggestions | Agent surfaces context-aware suggested questions in chat interface; image knowledge auto-generates questions |
189+
| QA Capabilities | ✅ Context-aware, multi-turn dialogue, prompt templates | Complex semantic modeling, instruction control, chain-of-thought Q&A with configurable prompts and context windows |
190+
| Security | ✅ AES-256-GCM at-rest encryption, SSRF protection | API keys encrypted at rest; SSRF-safe HTTP client for remote API calls; sandbox execution for agent skills |
191+
| E2E Testing | ✅ Retrieval + generation visualization and metric evaluation | End-to-end test tools for evaluating recall hit rates, answer coverage, BLEU/ROUGE metrics |
192+
| Deployment Modes | ✅ Local / Docker / Kubernetes (Helm) | Private and offline deployment; fast development mode with hot-reload; Helm chart for Kubernetes |
193+
| User Interfaces | ✅ Web UI + RESTful API | Interactive web interface and standard API; Agent/normal mode switching; tool call process display |
194+
| Task Management | ✅ MQ async tasks, automatic database migration | MQ-based async task state; automatic schema and data migration on version upgrade |
184195

185196
## 🚀 Getting Started
186197

0 commit comments

Comments
 (0)