v0.8.3
Tencent/WeKnorav0.8.3Oct 14, 2026by lyingbug
Upgrading?
AI Summary
This release introduces a new image gallery interface and improves chat functionality by adding citation support. It enhances document parsing capabilities with MinerU 4.0 support and refines the search retrieval system. However, a major effort to implement a comprehensive plugin system was reverted prior to the final release.
Key Highlights
- New Image Gallery with schema-driven filters and reworked toolbar.
- Plugin system (P2 batches 1-8) was reverted in the final release.
- Enhanced search retrieval with unified rerank and diagnostics.
- Added support for MinerU 4.0 V1 API for document parsing.
- Updated Confluence integration with directory sync and private assets.
Breaking Changes
- The comprehensive plugin system (P2 batches 1-8) was reverted in the final release.
- Frontend resource caching strategy was refactored, dropping TTL caches.
New Features
- System admin model catalog console
- MinerU 4.0 V1 API support for self-hosted MinerU
- Unified rerank across search APIs with diagnostics
- Image gallery tab with schema-driven filters
- Chat citations that open documents at the cited passage
- Cross-knowledge base Wiki search endpoint
- Confluence directory sync and private image assets
- Yuque datasource preserving TOC folder hierarchy
Full Release Notes
## What's Changed * fix(website-docs): serve everything but the homepage from /docs/ by @lyingbug in https://github.com/Tencent/WeKnora/pull/3664 * test(website-docs): update integration test for the v0.8.2 header and release gallery by @lyingbug in https://github.com/Tencent/WeKnora/pull/3665 * fix(session): keep auto-generated titles plain text by @lyingbug in https://github.com/Tencent/WeKnora/pull/3633 * feat(models): add system admin model catalog console by @lyingbug in https://github.com/Tencent/WeKnora/pull/3662 * fix(ui): restore inner padding on form popups by @vinhchuquang in https://github.com/Tencent/WeKnora/pull/3673 * fix(browser): let shared-space agents drive the caller's local browser by @lyingbug in https://github.com/Tencent/WeKnora/pull/3670 * docs: restructure the English and Chinese READMEs by @lyingbug in https://github.com/Tencent/WeKnora/pull/3676 * docs(readme): website-matched design for all four READMEs by @lyingbug in https://github.com/Tencent/WeKnora/pull/3679 * fix(retriever/es): keep vectors and enabled state on CopyIndices by @lyingbug in https://github.com/Tencent/WeKnora/pull/3678 * fix(embed): warn at startup when no signing key is configured by @lyingbug in https://github.com/Tencent/WeKnora/pull/3680 * feat(docparser): support MinerU 4.0 V1 API for self-hosted MinerU by @lyingbug in https://github.com/Tencent/WeKnora/pull/3671 * fix(frontend): link docs to the public docs site instead of GitHub by @lyingbug in https://github.com/Tencent/WeKnora/pull/3674 * feat(retrieval): unify rerank across search APIs and expose diagnostics by @lyingbug in https://github.com/Tencent/WeKnora/pull/3675 * fix(desktop): pair the Lite browser against the local API listener by @nullptr-error in https://github.com/Tencent/WeKnora/pull/3677 * fix(rss): reject oversized responses instead of accepting truncated content by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3658 * docs: new intro video, with its source by @lyingbug in https://github.com/Tencent/WeKnora/pull/3684 * feat(lite): install and run skills on the host by @nullptr-error in https://github.com/Tencent/WeKnora/pull/3661 * docs(readme): surface agent tools in the overview and condense feature tables by @lyingbug in https://github.com/Tencent/WeKnora/pull/3688 * fix(retrieval): fix recall correctness, score scales, cost and agent tools by @lyingbug in https://github.com/Tencent/WeKnora/pull/3687 * feat(gallery): add an image gallery tab with schema-driven filters by @tayadwx in https://github.com/Tencent/WeKnora/pull/3694 * feat(gallery): rework the gallery toolbar, header tabs and image viewer by @lyingbug in https://github.com/Tencent/WeKnora/pull/3703 * feat(chat): open cited documents at the cited passage by @lyingbug in https://github.com/Tencent/WeKnora/pull/3700 * fix(knowledge): stop parses from getting stuck in processing or finalizing by @lyingbug in https://github.com/Tencent/WeKnora/pull/3696 * docs(readme): swap in the new intro video by @lyingbug in https://github.com/Tencent/WeKnora/pull/3685 * fix: harden agent tool execution, stream completion and LLM retries by @lyingbug in https://github.com/Tencent/WeKnora/pull/3706 * fix(docparser): make the MinerU parse timeouts configurable by @lyingbug in https://github.com/Tencent/WeKnora/pull/3707 * fix(weaviate): accept a class another worker created first by @po-et in https://github.com/Tencent/WeKnora/pull/3689 * fix(notion): abort incremental sync when resource discovery fails by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3682 * fix(feishu): stop Wiki pagination on repeated page tokens by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/3645 * fix(agent): 合并相邻 assistant 消息时保留 tool_calls,避免孤儿 tool 消息导致整轮 400 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3574 * fix(files): accept canonical storage:// paths in bare provider services by @dzc-bit in https://github.com/Tencent/WeKnora/pull/3166 * fix(im): handle unresolved Feishu resource images by @Jonesxq in https://github.com/Tencent/WeKnora/pull/2761 * docs: drop references to source files that no longer exist by @Jinzhengxu in https://github.com/Tencent/WeKnora/pull/3631 * docs(dev): clarify Swagger access in Docker Compose by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3620 * fix(container): propagate host project lookup errors by @dvd233 in https://github.com/Tencent/WeKnora/pull/3611 * fix(helm): pin application images to chart version by @dafyy321-pixel in https://github.com/Tencent/WeKnora/pull/3669 * fix(frontend): mount the settings modal only once on /platform/settings by @lyingbug in https://github.com/Tencent/WeKnora/pull/3717 * refactor(frontend): drop TTL resource caches and remove duplicate startup requests by @lyingbug in https://github.com/Tencent/WeKnora/pull/3562 * feat(wiki): 增加跨知识库 Wiki 搜索 POST /wiki-search by @MercuialC in https://github.com/Tencent/WeKnora/pull/3535 * fix(models): stop advertising graded thinking levels the wire format drops by @DerrickLinus in https://github.com/Tencent/WeKnora/pull/3552 * fix(datasource): validate cron schedules and persist manual-only mode by @Perfecto23 in https://github.com/Tencent/WeKnora/pull/3653 * fix(knowledge): reject invalid JSON uploads before async parse by @xiaojunxiang2023 in https://github.com/Tencent/WeKnora/pull/3360 * fix(client): accumulate multiline SSE data by @quan020406 in https://github.com/Tencent/WeKnora/pull/2122 * feat(confluence): add directory sync and private image assets by @jacentsao in https://github.com/Tencent/WeKnora/pull/3319 * fix(docreader): sanitize non-conforming styles.xml fills before openpyxl loads (#3637) by @vicfei in https://github.com/Tencent/WeKnora/pull/3638 * fix(docreader): drop data validation ranges openpyxl cannot parse instead of failing the sheet (#3599) by @po-et in https://github.com/Tencent/WeKnora/pull/3608 * feat(datasource/yuque): preserve TOC folder hierarchy for synced documents by @RichardChengshaojin in https://github.com/Tencent/WeKnora/pull/3476 * fix(frontend): initialize chat citation popover after botmsg props by @lyingbug in https://github.com/Tencent/WeKnora/pull/3732 * feat(plugin): plugin system foundation — builtin plugins, config schemas and workspace switches by @lyingbug in https://github.com/Tencent/WeKnora/pull/3711 * feat(plugin): install declarative plugins — MCP servers, skills and model vendors by @lyingbug in https://github.com/Tencent/WeKnora/pull/3716 * feat(plugin): code plugins — extension protocol, Go SDK, plugin host, web search and data source adapters by @lyingbug in https://github.com/Tencent/WeKnora/pull/3720 * feat(plugin): Host API with a key-value store, and document parsers from plugins by @lyingbug in https://github.com/Tencent/WeKnora/pull/3721 * feat(plugin): remote runtime, Python SDK and python host plugins (P2 batch 3) by @lyingbug in https://github.com/Tencent/WeKnora/pull/3724 * feat(plugin): standalone plugin hosts with Redis discovery (P2 batch 4) by @lyingbug in https://github.com/Tencent/WeKnora/pull/3725 * feat(plugin): sandboxed plugin pages and the @weknora/plugin-ui bridge (P2 batch 5) by @lyingbug in https://github.com/Tencent/WeKnora/pull/3727 * feat(plugin): event delivery and webhooks for plugins (P2 batch 6) by @lyingbug in https://github.com/Tencent/WeKnora/pull/3728 * feat(plugin): dynamic form options, OAuth connections and resource limits (P2 batch 7) by @lyingbug in https://github.com/Tencent/WeKnora/pull/3729 * feat(examples): Jira Cloud plugin with OAuth, dynamic options and a skill by @lyingbug in https://github.com/Tencent/WeKnora/pull/3730 * feat(plugin): agent tools served by plugins, with result views (P2 batch 8) by @lyingbug in https://github.com/Tencent/WeKnora/pull/3733 * revert: take the plugin system back out of main by @lyingbug in https://github.com/Tencent/WeKnora/pull/3735 * fix(dev): propagate dev.sh exit status and pull MinIO from pgsty/minio by @lyingbug in https://github.com/Tencent/WeKnora/pull/3738 * fix(chat): drop stale minimap-target class binding by @lyingbug in https://github.com/Tencent/WeKnora/pull/3754 * fix(citations): 修复原文定位、高亮范围与 DocReader 启动失败 by @lyingbug in https://github.com/Tencent/WeKnora/pull/3794 * test(wiki): 表格夹具改用合成数据 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3795 * fix(faq): actually clean FAQ entry payloads before validation and storage by @VictorMaznyuk in https://github.com/Tencent/WeKnora/pull/3749 * test(skills): wait for the host install to release its lock before asserting by @VictorMaznyuk in https://github.com/Tencent/WeKnora/pull/3799 * docs: extract active tenant ID in the API quickstart by @kwsYegar in https://github.com/Tencent/WeKnora/pull/3719 * fix(frontend): label host-sandbox skill secret cards like the sandbox cards by @VictorMaznyuk in https://github.com/Tencent/WeKnora/pull/3736 * fix(chat): clear stale KB scope on session restore by @bigdu332 in https://github.com/Tencent/WeKnora/pull/3801 * fix: skip table-summary tasks for missing documents by @Perfecto23 in https://github.com/Tencent/WeKnora/pull/3742 * fix: reject empty table-summary model responses by @Perfecto23 in https://github.com/Tencent/WeKnora/pull/3740 * fix(sandbox): pass desktop slot timing to the renew goroutine by @VictorMaznyuk in https://github.com/Tencent/WeKnora/pull/3744 * fix(wiki): fan out follow-up triggers so backlogs drain at ingest_max_inflight by @BaiMoHan in https://github.com/Tencent/WeKnora/pull/3726 * fix(server): run ResourceCleaner on signal shutdown instead of racing Fatalf exit by @vicfei in https://github.com/Tencent/WeKnora/pull/3804 * fix(datasource/dingtalk): 跳过不再静默,展开叶子不再报错 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3784 * fix(datasource/dingtalk): 块级渲染不再静默丢内容(列表按线上真实形状渲染 + 未建模块类型可见) by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3822 * fix(gitlab): compare snapshots directly during incremental sync by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3815 * fix(feishu): 云盘分页补上 #3645 给 wiki 加的重复 page token 防护 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3770 * fix(notion): replace stale content when pages are cleared by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3756 * fix(rss): retry full-text resolution after fallback by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3713 * fix(models): keep Retry-After on HTTPError and honour it in agent LLM retries by @VictorMaznyuk in https://github.com/Tencent/WeKnora/pull/3737 * fix(compaction): 流因取消而关闭时不得当成空摘要成功返回 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3772 * fix(repository): 关键词 LIKE/ILIKE 检索补显式 ESCAPE,修复 Lite 上静默漏结果 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3761 * test(weaviate): 消除并发建表用例的随机失败(假服务器在 barrier 之后才采样 exists) by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3759 * fix(embed): 开启 Host context 后点击追问建议不再返回 400 by @nullptr-error in https://github.com/Tencent/WeKnora/pull/3850 * fix(frontend): normalize style guard paths by @dajiaohuang in https://github.com/Tencent/WeKnora/pull/3860 * fix(docs): spawn nested npm through Node on Windows by @dajiaohuang in https://github.com/Tencent/WeKnora/pull/3858 * fix(frontend): 修复复制模型时模型名称被改写的问题 by @lizijing98 in https://github.com/Tencent/WeKnora/pull/3830 * feat(auth): 新增仅限邀请注册档位 by @lyingbug in https://github.com/Tencent/WeKnora/pull/3900 * fix(sandbox): build real arm64 sandbox images and ship arm64 Cube variants by @nullptr-error in https://github.com/Tencent/WeKnora/pull/3897 * docs(api): 补充模型复制接口说明 by @lizijing98 in https://github.com/Tencent/WeKnora/pull/3894 * fix(auth): 登录时 token 落库失败不再被忽略 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3892 * fix(ima): 笔记正文被清空后不再残留旧内容 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3888 * fix(gitlab): 仓库文件下载补体积上限,超限报错而不是无界读入 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3887 * feat(docparser): upgrade AnyDoc to 0.2.4 and parse assets once by @lyingbug in https://github.com/Tencent/WeKnora/pull/3904 * fix(embed): 内嵌网页只传图片不输入文字时不再返回 400 by @nullptr-error in https://github.com/Tencent/WeKnora/pull/3866 * fix(notion): 查询撞厂商上限被截断时不再静默,截断轮次不下发删除 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3845 * fix(dataset): use supported default QA model by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/3965 * fix(sqlite): 检索后端批量更新索引副本失败不再吞掉错误 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3768 * fix(sqlite): 索引行写入失败不再被丢弃,BatchSave 回滚而不是留下「主行在、索引行不在」 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3843 * fix(retriever/es): _bulk 的 per-item 失败不再被吞,全部被拒时 BatchSave 返回错误 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3842 * fix(retriever): Qdrant/Milvus 关键词检索整批失败返回 error,不再当成「没有匹配」 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3847 * fix(milvus): CopyIndices 按源 chunk ID 分批读,不再用 offset 窗口 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3883 * fix(agent): query_knowledge_graph 的截断对模型与界面可见 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3885 * fix: use consistent qdrant env settings by @Goodnight77 in https://github.com/Tencent/WeKnora/pull/3960 * fix(milvus): validate connections and preserve gRPC resolver defaults by @TaylorChen in https://github.com/Tencent/WeKnora/pull/3654 * fix(graph): preserve relationship direction and document provenance by @knqiufan in https://github.com/Tencent/WeKnora/pull/3950 * fix(faq): preserve chunk content and index state during clone status sync by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3993 * fix: keep failed data-analysis table loads retryable by @Perfecto23 in https://github.com/Tencent/WeKnora/pull/3745 * fix(storage): use virtual-hosted addressing for Tencent COS through the S3 driver by @ankit373 in https://github.com/Tencent/WeKnora/pull/3722 * fix(summary): 坏 JSON 不再冒充文档摘要(截断/畸形 JSON 走失败路径,纯文本兜底保留) by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3769 * fix(chunker): preserve source offsets for table child chunks by @kwsYegar in https://github.com/Tencent/WeKnora/pull/3969 * fix(chunker): count an escaped pipe as cell text when matching table widths by @L4XB in https://github.com/Tencent/WeKnora/pull/3979 * fix(yuque): don't acknowledge failed detail fetches in the incremental cursor by @LuckVd in https://github.com/Tencent/WeKnora/pull/3702 * fix(feishu): 多维表格字段分页补重复 page_token 防护与条数上限 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3840 * fix(gitlab): 分页循环补重复页防护与跳数上限 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3841 * fix(ima): 三处游标分页补重复游标防护与跳数上限 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3889 * fix(docreader): read EPUB chapters in spine order by @L4XB in https://github.com/Tencent/WeKnora/pull/3977 * fix(docparser): anydoc 内嵌 EMF/WMF 图片的扩展名与 Rust 序列化器对齐,不再静默丢图 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3938 * fix(models): honor OpenRouter native thinking for legacy defaults by @tsumon in https://github.com/Tencent/WeKnora/pull/3807 * fix(agent): preserve SQL literals during data analysis column reconciliation by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3812 * fix(agent): validate tool string lengths by Unicode code points by @icearia0219 in https://github.com/Tencent/WeKnora/pull/3937 * fix(agent): reject incomplete compaction summaries before checkpointing by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3994 * fix(agent): 子 goroutine 上的 panic 不再杀死进程(MCP 预热 / 检索扇出 / 看门狗) by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3846 * fix(chat): clear stale file and tool selections on session restore by @Linxiushen in https://github.com/Tencent/WeKnora/pull/3802 * fix(mcp): keep the client secret from dynamic client registration by @po-et in https://github.com/Tencent/WeKnora/pull/3763 * fix(mcp): reconnect after the server forgets the session by @po-et in https://github.com/Tencent/WeKnora/pull/3765 * fix(mcp): pass embedded resources in tool results to the agent by @po-et in https://github.com/Tencent/WeKnora/pull/3766 * fix(mcp): include shared knowledge bases in endpoint scope by @dajiaohuang in https://github.com/Tencent/WeKnora/pull/3848 * fix(mcp): close legacy chat responses on HTTP errors by @KennyMcSimpson in https://github.com/Tencent/WeKnora/pull/3930 * fix(im/wecom): preserve image in mixed messages with text captions by @loganv in https://github.com/Tencent/WeKnora/pull/3901 * fix(knowledge): retry document processing after transient indexing failures by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3915 * fix(knowledge): close spans left open on terminal rows and superseded attempts by @asmh1989 in https://github.com/Tencent/WeKnora/pull/3855 * fix(wiki): preserve pending work when source lookups fail by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/3715 * fix(wiki): RebuildLinks 写失败不再静默,接口如实返回错误 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3884 * chore(deps): bump the cli-deps group in /cli with 2 updates by @dependabot[bot] in https://github.com/Tencent/WeKnora/pull/3920 * fix(docs): make `make docs` reproduce the committed Swagger again by @VictorMaznyuk in https://github.com/Tencent/WeKnora/pull/3751 * feat(ui): add search to Skills and MCP toolbox lists by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/3731 * fix(cli): propagate paginated response read errors by @dvd233 in https://github.com/Tencent/WeKnora/pull/3983 * fix(cli): render paginated API results in text mode by @dvd233 in https://github.com/Tencent/WeKnora/pull/3984 * fix(client): make multipart uploads replayable by @LeonSGP43 in https://github.com/Tencent/WeKnora/pull/3989 * fix(cli): apply list limits after filtering and sorting by @LeonSGP43 in https://github.com/Tencent/WeKnora/pull/3990 * fix(cli): preserve integer precision in jq output by @LeonSGP43 in https://github.com/Tencent/WeKnora/pull/3991 * fix(cli): classify wrapped SDK HTTP errors correctly by @LeonSGP43 in https://github.com/Tencent/WeKnora/pull/3992 * fix(client): accept optional spaces in SSE event fields by @fhgffy in https://github.com/Tencent/WeKnora/pull/3975 * fix(skills): skip vendored dep trees in install verification script enumeration by @vicfei in https://github.com/Tencent/WeKnora/pull/3943 * fix(sandbox): reclassify exec races with the idle sweep as NotFound so rebinding heals by @vicfei in https://github.com/Tencent/WeKnora/pull/3980 * fix(asynqdl): truncate dead-letter errors on a rune boundary by @kevin9327 in https://github.com/Tencent/WeKnora/pull/3964 * fix(middleware): stop buffering whole request bodies in the access log by @Tong-bit-art in https://github.com/Tencent/WeKnora/pull/3927 * fix(notion): 超过 block 上限截断时补 Warn,避免内容与子页面静默缺失 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3771 * fix(notion): paginatePages 与 GetBlockChildrenFlat 补重复游标防护与页数上限 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3890 * fix(docreader): keep the space held by a whitespace-only inline element by @L4XB in https://github.com/Tencent/WeKnora/pull/3978 * fix(data-analysis): skip style-only worksheets before DuckDB loading by @Perfecto23 in https://github.com/Tencent/WeKnora/pull/3660 * fix(frontend): render single tilde literally instead of GFM strikethrough by @MLYoshi in https://github.com/Tencent/WeKnora/pull/3963 * fix(qdrant): CopyIndices 用服务端返回的 next_page_offset 翻页,不再按页尾 id 回填 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3882 * fix(dataset): allow selecting the QA answer model by @LingYi-Liang in https://github.com/Tencent/WeKnora/pull/3944 * fix(cli): preserve directory structure in doc upload --recursive by @skywolf123 in https://github.com/Tencent/WeKnora/pull/3753 * fix(multimodal): bound remote image downloads by the file size limit by @SEVEN-us in https://github.com/Tencent/WeKnora/pull/3906 * fix(knowledge): delete written chunks when the storage quota check fails by @huiq777 in https://github.com/Tencent/WeKnora/pull/3656 * fix(agent): preserve untouched numeric tool arguments during casting by @icearia0219 in https://github.com/Tencent/WeKnora/pull/3936 * fix(frontend): keep target="_blank" on sanitized markdown links by @ruanhaiqiang in https://github.com/Tencent/WeKnora/pull/3818 * fix(datasource): 语雀/Notion/IMA/飞书连接器 API 响应体补体积上限 by @yetuge in https://github.com/Tencent/WeKnora/pull/3985 * fix(model): treat 400 as reachable in chat connection test again by @KoulLife in https://github.com/Tencent/WeKnora/pull/3929 * fix(docparser): 云解析超时改为跟随既有配置,不再硬编码 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3891 * feat(rerank): support Hugging Face TEI protocol by @bigdu332 in https://github.com/Tencent/WeKnora/pull/3956 * fix(rss): refresh titles and source links when article text is unchanged by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3824 * fix(docreader): preserve PPTX fallback image associations by @LingYi-Liang in https://github.com/Tencent/WeKnora/pull/3973 * fix(kb): let the update API set vlm_config by @5quan in https://github.com/Tencent/WeKnora/pull/3704 * fix(chat_pipeline): treat non-JSON model refusals as skipped graph extraction by @LuckVd in https://github.com/Tencent/WeKnora/pull/3606 * fix(frontend): avoid false unsaved changes warnings by @lyingbug in https://github.com/Tencent/WeKnora/pull/4019 * fix(datasource/dingtalk): Validate 不再因为某个工作区读不到就整库判失败 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3782 * feat(datasource): add Seafile data source connector by @Zaqqmm in https://github.com/Tencent/WeKnora/pull/3616 * feat(i18n): add Traditional Chinese (zh-TW) locale support by @junhao-ye in https://github.com/Tencent/WeKnora/pull/3916 * fix(i18n): add the zh-TW Seafile strings missing after #3616 and #3916 by @lyingbug in https://github.com/Tencent/WeKnora/pull/4027 * fix(chat): restore citation source navigation and soften highlights by @lyingbug in https://github.com/Tencent/WeKnora/pull/4026 * docs(models): state which rerank limits split requests and which fail the call by @lyingbug in https://github.com/Tencent/WeKnora/pull/4033 * fix(models): emit explicit empty content for assistant tool-call turns by @LuckVd in https://github.com/Tencent/WeKnora/pull/3605 * feat(rerank): support Pinecone Inference protocol by @bigdu332 in https://github.com/Tencent/WeKnora/pull/3957 * docs: count 29 built-in model vendors and list Hugging Face TEI and Pinecone by @lyingbug in https://github.com/Tencent/WeKnora/pull/4048 * feat: index and recall images with multimodal embedding models by @lyingbug in https://github.com/Tencent/WeKnora/pull/3683 * fix(settings): improve modal sizing and integration page layout by @lyingbug in https://github.com/Tencent/WeKnora/pull/4052 * fix(chunker): respect Markdown fences during heading detection by @Guo-Yixin in https://github.com/Tencent/WeKnora/pull/3952 * fix(agent): compare tool enum values without string coercion by @icearia0219 in https://github.com/Tencent/WeKnora/pull/3948 * fix(notion): preserve sync cursor when page block fetching fails by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/3693 * fix(weaviate): CopyIndices 补游标防护,并修掉 GraphQL 报错时的 panic by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3881 * fix(im): retry Yunzhijia attachment downloads on timeout by @jacentsao in https://github.com/Tencent/WeKnora/pull/3809 * fix(wiki): resolve titles for unloaded backlinks by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/3931 * fix(chat): 在模型上下文中标注 FILTER_TOP_K 的子集截断,避免把前 N 条当作全集作答 by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3758 * fix(wiki): 唯一写出口 UpdatePage 拦住丢表格行的机器重写(agent 整页写入不再静默改短页面) by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3793 * feat(datasource/dingtalk): 摄取钉钉"上传文件"(docx/pptx/xlsx/pdf) by @linus-liu-web in https://github.com/Tencent/WeKnora/pull/3786 * fix(session): allow tenant admins to manage channel sessions by @helloxjade in https://github.com/Tencent/WeKnora/pull/3939 * fix(docreader): resolve EPUB images relative to their chapters by @SuperSgdk in https://github.com/Tencent/WeKnora/pull/3924 * fix(mcp): report advertised directory failures in connection tests by @helloxjade in https://github.com/Tencent/WeKnora/pull/3905 * fix(knowledge): claim cloned and released document images in the resource catalog by @tayadwx in https://github.com/Tencent/WeKnora/pull/3752 * feat: judge image hits by their image in rerank and show them to vision models by @lyingbug in https://github.com/Tencent/WeKnora/pull/4013 * fix(sandbox): omit env overrides when creating Aliyun E2B sandboxes from snapshots by @nullptr-error in https://github.com/Tencent/WeKnora/pull/4054 * feat: 支持构建时配置 app 与 docreader 下载镜像源 by @lizijing98 in https://github.com/Tencent/WeKnora/pull/4073 * fix(websearch): return results for non-webpage Metaso scopes by @jdzhang1221 in https://github.com/Tencent/WeKnora/pull/4010 * fix(agent): align web_search count limit with the configured maximum by @jdzhang1221 in https://github.com/Tencent/WeKnora/pull/4011 * fix(models): align configuration and multimodal embedding workflows by @lyingbug in https://github.com/Tencent/WeKnora/pull/4080 * fix(sandbox): treat E2B in_progress template builds as building by @lyingbug in https://github.com/Tencent/WeKnora/pull/4108 * fix(frontend): follow configured upload limit in hints by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/4110 * fix(docker): install CA certificates before the browserskill mirror swap by @wangrui19971019 in https://github.com/Tencent/WeKnora/pull/4104 * fix(chat): keep custom metadata on knowledge-chat references by @Sairaj-24 in https://github.com/Tencent/WeKnora/pull/4087 * refactor: 出站拨号超时默认 5s 并改为 env 可配 (WEKNORA_OUTBOUND_DIAL_TIMEOUT) by @tayadwx in https://github.com/Tencent/WeKnora/pull/4122 * feat(mcp): support 2026-07-28 alongside legacy clients by @Perfecto23 in https://github.com/Tencent/WeKnora/pull/4095 * perf(embedding): batch Qwen3-VL message inputs by @lyingbug in https://github.com/Tencent/WeKnora/pull/4126 * fix(observability): distinguish retrieval diagnostic spans by @lyingbug in https://github.com/Tencent/WeKnora/pull/4128 * fix(gallery): improve image detail panel readability by @lyingbug in https://github.com/Tencent/WeKnora/pull/4130 * fix(ocr): reject invalid output and record extraction failures by @lyingbug in https://github.com/Tencent/WeKnora/pull/4132 * fix(ocr): reject split repetition and preserve no-text responses by @lyingbug in https://github.com/Tencent/WeKnora/pull/4135 * fix(chat): smooth streamed citation reveal cadence by @lyingbug in https://github.com/Tencent/WeKnora/pull/4134 * fix(chat): keep queued follow-up answers attached to their own question by @LaiYuanRong in https://github.com/Tencent/WeKnora/pull/4112 * fix(preview): refine source citation highlights by @lyingbug in https://github.com/Tencent/WeKnora/pull/4139 * feat(embed): support pasting screenshots into chat by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/4114 * perf(reranking): accelerate MMR selection with sparse postings by @IIHGMII in https://github.com/Tencent/WeKnora/pull/4094 * fix(mcp): isolate slow connection teardown from other services by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/4081 * fix(mcp): stop advertising read-only endpoint tools as destructive by @wangrui19971019 in https://github.com/Tencent/WeKnora/pull/4103 * test(service): assert RRF ranks ignore retrieval-list arrival order by @iceriverlin in https://github.com/Tencent/WeKnora/pull/4089 * fix(mcp): preserve structured tool results for agents by @Guo-Yixin in https://github.com/Tencent/WeKnora/pull/4074 * fix(im/wecom): accept custom wss long-connection endpoints behind SSRF host checks by @LuckVd in https://github.com/Tencent/WeKnora/pull/4070 * fix(frontend): preserve the caret when outdenting Markdown lists by @dvd233 in https://github.com/Tencent/WeKnora/pull/4071 * fix(datasource/dingtalk): tighten Validate sampling edges by @wangrui19971019 in https://github.com/Tencent/WeKnora/pull/4079 * fix(agent): preserve steering order across persistence failures by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/4078 * fix(agent): enforce idle timeout while opening model streams by @yeliheng-010 in https://github.com/Tencent/WeKnora/pull/4063 * fix(sqlite): add MCP metadata migration by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/4060 * fix(qdrant): wait for writes to finish by @Goodnight77 in https://github.com/Tencent/WeKnora/pull/4061 * fix(mcp): preserve disabled state on service creation by @hahahahahayesyeseys in https://github.com/Tencent/WeKnora/pull/4059 * fix(retrieval): skip KB retrieval for summarize intent by @AstonKrss in https://github.com/Tencent/WeKnora/pull/4062 * fix(i18n): correct Korean username rule message to match the pattern by @KoulLife in https://github.com/Tencent/WeKnora/pull/4025 * fix(agent): account for file paths in read pagination budgets by @icearia0219 in https://github.com/Tencent/WeKnora/pull/4018 * test(docreader): add unit tests for utils.split text-splitting helpers by @Jay0130-a in https://github.com/Tencent/WeKnora/pull/4020 * feat(sandbox): Docker 后端支持交互式终端 by @nullptr-error in https://github.com/Tencent/WeKnora/pull/4023 * feat(wiki): improve graph layout, theme captions and group focus by @lyingbug in https://github.com/Tencent/WeKnora/pull/4147 * style: polish sidebar, list pages, toolbox and citation UI by @lyingbug in https://github.com/Tencent/WeKnora/pull/4154 * feat(gallery): replace pagination with infinite masonry scrolling by @lyingbug in https://github.com/Tencent/WeKnora/pull/4156 * feat(system): add platform user management and streamline settings by @desksk in https://github.com/Tencent/WeKnora/pull/4153 * fix(models): stop sending temperature to Claude models that reject it by @pcbeingused333 in https://github.com/Tencent/WeKnora/pull/4155 * fix: align settings layouts and tolerate existing migration objects by @lyingbug in https://github.com/Tencent/WeKnora/pull/4164 * feat(models): add Claude Opus 5.5, Sonnet 5.5 and Haiku 5.5 to the catalog by @pcbeingused333 in https://github.com/Tencent/WeKnora/pull/4158 * fix(deploy): pass WEKNORA_OUTBOUND_DIAL_TIMEOUT through to the app container by @VictorMaznyuk in https://github.com/Tencent/WeKnora/pull/4157 * fix(mcp): close only the authorizing user's connection after OAuth by @ochanism in https://github.com/Tencent/WeKnora/pull/4138 * fix(database_query): preserve owner tenant in shared knowledge scopes by @HelloAndyZhang in https://github.com/Tencent/WeKnora/pull/4136 * fix(deploy): bump paradedb image to v0.25.11-pg17 by @LuckVd in https://github.com/Tencent/WeKnora/pull/4120 * feat(helm): allow Service name overrides with matching consumer references by @Perfecto23 in https://github.com/Tencent/WeKnora/pull/4109 * feat(rerank): add Cohere provider for the v2 rerank API by @kwsYegar in https://github.com/Tencent/WeKnora/pull/4090 * fix(feishu): add shared request pacing and improve HTTP 429 / error 99991400 retries in Feishu Wiki synchronization by @Lyang77 in https://github.com/Tencent/WeKnora/pull/4039 * docs: clarify frontend development proxy configuration by @Jarvis636431 in https://github.com/Tencent/WeKnora/pull/4171 * fix(datasource/gitlab): emptied files no longer leave their old body searchable by @Tong-bit-art in https://github.com/Tencent/WeKnora/pull/4008 * fix(qdrant): accept a collection another worker created first by @Goodnight77 in https://github.com/Tencent/WeKnora/pull/3999 * fix(agent): accept adjacent prefixed Python string literals by @icearia0219 in https://github.com/Tencent/WeKnora/pull/4006 * fix(mcp): bound resource listing pagination by @icearia0219 in https://github.com/Tencent/WeKnora/pull/4007 * docs: refresh LICENSE third-party notices by @lyingbug in https://github.com/Tencent/WeKnora/pull/4178 * docs: explain knowledge upload folder paths by @Jarvis636431 in https://github.com/Tencent/WeKnora/pull/4177 * fix(mcp): ignore discover probe in resource list tests by @lyingbug in https://github.com/Tencent/WeKnora/pull/4179 * feat(gallery): filter images by source document by @tayadwx in https://github.com/Tencent/WeKnora/pull/4159 * refactor(gallery): turn source document filter into a toolbar popover by @lyingbug in https://github.com/Tencent/WeKnora/pull/4190 * docs(api): clarify knowledge-search scope union of knowledge_base_ids and knowledge_ids by @lyingbug in https://github.com/Tencent/WeKnora/pull/4191 * style(frontend): polish knowledge base settings hints and sub-sections by @lyingbug in https://github.com/Tencent/WeKnora/pull/4193 * fix(frontend): respect Markdown indentation selection boundaries by @Jarvis636431 in https://github.com/Tencent/WeKnora/pull/4195 * fix(helm): configure app rollouts and document shared storage by @Jarvis636431 in https://github.com/Tencent/WeKnora/pull/4180 * fix(agent): make agent tool selection match the tools the runtime registers by @ochanism in https://github.com/Tencent/WeKnora/pull/4211 * feat(agent): read chat attachments on demand by @lyingbug in https://github.com/Tencent/WeKnora/pull/4203 * feat(mcp): let callers without a browser obtain MCP OAuth tokens by @ochanism in https://github.com/Tencent/WeKnora/pull/4229 * fix(frontend): preserve inline images in EPUB previews by @Jarvis636431 in https://github.com/Tencent/WeKnora/pull/4226 * fix(frontend): preserve nonempty lists when pressing Enter by @Jarvis636431 in https://github.com/Tencent/WeKnora/pull/4224 * fix(knowledge): make the knowledge base description token budget configurable by @LuckVd in https://github.com/Tencent/WeKnora/pull/4230 * fix(docs): prebundle fastdom when mermaid imports it (#2899) by @Frank-zhu2000 in https://github.com/Tencent/WeKnora/pull/4208 * fix(mcp): keep OAuth token expiry independent of the process time zone by @ochanism in https://github.com/Tencent/WeKnora/pull/4207 * feat(models): add WeMM embedding presets and Transformers serving by @lyingbug in https://github.com/Tencent/WeKnora/pull/4238 * fix(skill): do not fail installs on non-blocking observations by @lyingbug in https://github.com/Tencent/WeKnora/pull/4246 * feat(chat): polish rewind confirm and mark sessions with unread replies by @lyingbug in https://github.com/Tencent/WeKnora/pull/4247 * fix(mcp): offer OAuth prompt after tool approval and tidy tools panel by @lyingbug in https://github.com/Tencent/WeKnora/pull/4248 * feat(chat): add global search to the @ mention menu and align its styling by @lyingbug in https://github.com/Tencent/WeKnora/pull/4249 * feat(agent): name the turn's chat model on the completion event by @ochanism in https://github.com/Tencent/WeKnora/pull/4252 * fix(chat): locate citations in manual Markdown documents by @lyingbug in https://github.com/Tencent/WeKnora/pull/4278 * fix(agent): clarify attachment image paths and chart readings by @lyingbug in https://github.com/Tencent/WeKnora/pull/4283 * chore(release): finalize v0.8.3 website and documentation by @lyingbug in https://github.com/Tencent/WeKnora/pull/4285 ## New Contributors * @dafyy321-pixel made their first contribution in https://github.com/Tencent/WeKnora/pull/3669 * @DerrickLinus made their first contribution in https://github.com/Tencent/WeKnora/pull/3552 * @Perfecto23 made their first contribution in https://github.com/Tencent/WeKnora/pull/3653 * @xiaojunxiang2023 made their first contribution in https://github.com/Tencent/WeKnora/pull/3360 * @RichardChengshaojin made their first contribution in https://github.com/Tencent/WeKnora/pull/3476 * @kwsYegar made their first contribution in https://github.com/Tencent/WeKnora/pull/3719 * @bigdu332 made their first contribution in https://github.com/Tencent/WeKnora/pull/3801 * @BaiMoHan made their first contribution in https://github.com/Tencent/WeKnora/pull/3726 * @dajiaohuang made their first contribution in https://github.com/Tencent/WeKnora/pull/3860 * @lizijing98 made their first contribution in https://github.com/Tencent/WeKnora/pull/3830 * @TaylorChen made their first contribution in https://github.com/Tencent/WeKnora/pull/3654 * @knqiufan made their first contribution in https://github.com/Tencent/WeKnora/pull/3950 * @L4XB made their first contribution in https://github.com/Tencent/WeKnora/pull/3979 * @tsumon made their first contribution in https://github.com/Tencent/WeKnora/pull/3807 * @icearia0219 made their first contribution in https://github.com/Tencent/WeKnora/pull/3937 * @KennyMcSimpson made their first contribution in https://github.com/Tencent/WeKnora/pull/3930 * @loganv made their first contribution in https://github.com/Tencent/WeKnora/pull/3901 * @LeonSGP43 made their first contribution in https://github.com/Tencent/WeKnora/pull/3989 * @fhgffy made their first contribution in https://github.com/Tencent/WeKnora/pull/3975 * @kevin9327 made their first contribution in https://github.com/Tencent/WeKnora/pull/3964 * @Tong-bit-art made their first contribution in https://github.com/Tencent/WeKnora/pull/3927 * @MLYoshi made their first contribution in https://github.com/Tencent/WeKnora/pull/3963 * @LingYi-Liang made their first contribution in https://github.com/Tencent/WeKnora/pull/3944 * @skywolf123 made their first contribution in https://github.com/Tencent/WeKnora/pull/3753 * @SEVEN-us made their first contribution in https://github.com/Tencent/WeKnora/pull/3906 * @huiq777 made their first contribution in https://github.com/Tencent/WeKnora/pull/3656 * @ruanhaiqiang made their first contribution in https://github.com/Tencent/WeKnora/pull/3818 * @yetuge made their first contribution in https://github.com/Tencent/WeKnora/pull/3985 * @KoulLife made their first contribution in https://github.com/Tencent/WeKnora/pull/3929 * @5quan made their first contribution in https://github.com/Tencent/WeKnora/pull/3704 * @Zaqqmm made their first contribution in https://github.com/Tencent/WeKnora/pull/3616 * @junhao-ye made their first contribution in https://github.com/Tencent/WeKnora/pull/3916 * @Guo-Yixin made their first contribution in https://github.com/Tencent/WeKnora/pull/3952 * @helloxjade made their first contribution in https://github.com/Tencent/WeKnora/pull/3939 * @SuperSgdk made their first contribution in https://github.com/Tencent/WeKnora/pull/3924 * @jdzhang1221 made their first contribution in https://github.com/Tencent/WeKnora/pull/4010 * @wangrui19971019 made their first contribution in https://github.com/Tencent/WeKnora/pull/4104 * @Sairaj-24 made their first contribution in https://github.com/Tencent/WeKnora/pull/4087 * @LaiYuanRong made their first contribution in https://github.com/Tencent/WeKnora/pull/4112 * @IIHGMII made their first contribution in https://github.com/Tencent/WeKnora/pull/4094 * @iceriverlin made their first contribution in https://github.com/Tencent/WeKnora/pull/4089 * @AstonKrss made their first contribution in https://github.com/Tencent/WeKnora/pull/4062 * @Jay0130-a made their first contribution in https://github.com/Tencent/WeKnora/pull/4020 * @desksk made their first contribution in https://github.com/Tencent/WeKnora/pull/4153 * @pcbeingused333 made their first contribution in https://github.com/Tencent/WeKnora/pull/4155 * @Lyang77 made their first contribution in https://github.com/Tencent/WeKnora/pull/4039 * @Jarvis636431 made their first contribution in https://github.com/Tencent/WeKnora/pull/4171 * @Frank-zhu2000 made their first contribution in https://github.com/Tencent/WeKnora/pull/4208 **Full Changelog**: https://github.com/Tencent/WeKnora/compare/v0.8.2...v0.8.3 https://weknora.weixin.qq.com/docs/07-releases/v0.8.3
Related Repositories
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Terminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more.
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
The world’s fastest framework for building websites.