What's Changed
- fix(parser): keep recovered PDF TOC leader lines out of the body guard by @jay77721 in #21768
- CI: Fix log tee failure by @myf-bee in #21791
- Update release notes of 1.0.0.rc3 by @yingfeng in #21793
- feat: add Wally as a model provider by @adityabatra072 in #21719
- add audit hooks to file APIs by @JinHai-CN in #21807
- add log hooks by @JinHai-CN in #21822
- i18n: translate pipeline version and parser settings strings in tr-TR by @bakiburakogun in #21819
- fix(models): honour context cancellation in driver HTTP requests by @ccclucky in #21643
- feat(vastbase): support Vastbase G100 as the metadata database in Go by @FengYikai710 in #20913
- fix: README.md by @eridan-ltu in #21828
- fix(chunker): prevent PDF child chunks from overwriting each other by @jay77721 in #21773
- test(sdk): remove explicit Python SDK test skips by @6ba3i in #21783
- fix(syncer): retain Dropbox checkpoints on download failure by @Zhi-Xiang-Guo in #21809
- fix(api): keep the datasets API error response body shape by @simpleqt in #21831
- perf(web): virtualize chat message lists by @dcc123456 in #21790
- CI: add check for ASCII, disallow none ASCII code check-in by @wangq8 in #21784
- fix(anthropic): support struct json schema in tool parameters by @Sanderhoff-alt in #21638
- feat(parser): hand off Markdown and HTML remote images as media refs by @jay77721 in #21764
- fix(paddleocr): handle submit request creation errors by @QAQadws in #21839
- fix(deepdoc): add cgo constraints to native configuration tests by @QAQadws in #21837
- fix: SoMark web page is missing by @fenglingxiansheng in #21710
- fix(agent): clamp dataset navigation max_docs to the default budget by @flyingwhit in #21755
- feat(admin): add user search, status filtering, sorting, and CLI pagination by @QAQadws in #21729
- feat(chat): add AnySearch web search provider by @GunaPalanivel in #20633
- refa: consolidate model access and tenant defaults by @buua436 in #21740
- fix(ingestion): stop MinerU JSON path from inlining zip figure bytes by @Souravrajvi0 in #21803
- fix(tool): cap tool HTTP response bodies at 4 MiB in arxiv, querit, duckduckgo and yahoo_finance by @flyingwhit in #21769
- fix(models): publish the provider catalog through an atomic pointer and drop the dao-side cache so concurrent readers and publishers no longer race by @flyingwhit in #21749
- fix(agent): resolve DeepL and QWeather credentials from node config or DEEPL_API_KEY/QWEATHER_API_KEY instead of model-visible params by @flyingwhit in #21735
- fix(dify): keep retrieval unscoped when metadata conditions are empty by @MoonPointer-Byte in #21766
- test(retrieval) : add unit tests for retrieval and reranker by @zzy1017-crypto in #21611
- fix(agent): prevent checkpoint crashes and propagate component errors by @6ba3i in #21854
- fix(agent): detect webhook Begin in saved canvases by @6ba3i in #21849
- fix(file): record commit deletions without a missing status column by @ccclucky in #21796
- fix(tokenizer): replace the default fields instead of appending by @ccclucky in #21799
- test(mediacache): cover real Kvrocks lifecycle and index boundary by @jay77721 in #21851
- fix(user): use string for user id in DAO and handler lookups by @xugangqiang in #21792
- fix(build): adjust onnxruntime static link flags on Darwin arm64 by @Sanderhoff-alt in #21162
- release dockerhub image remove unnecessary tag by @myf-bee in #21860
- fix(chunk): number paragraph chunks by their position by @Steve-20-ai in #21823
- perf(chunker): coalesce PDF renders and share crop workers by @jay77721 in #21850
- fix(web): restore entity type colors in knowledge graphs by @okht in #21443
- fix(chunker): align PDF child previews with source positions by @jay77721 in #21853
- fix(cli): list only accepted commands in \help by @mmporong in #21503
- fix(channels): stop leaking a goroutine per WhatsApp events reconnect by @flyingwhit in #21863
- fix(channel): add limit check to qqbot response by @flyingwhit in #21859
- refactor(kvrocks): remove unused Client.GetOrCreateKey by @Sanderhoff-alt in #21298
- refa: remove permission service wrappers by @buua436 in #21856
- fix(ingestion): settle a terminal task's open run before deletion by @ccclucky in #21798
- fix(agent): resolve single-brace variable references by @6ba3i in #21865
- Revert "CI: add check for ASCII, disallow none ASCII code check-in" by @wangq8 in #21873
- test: gate community-only tenant cases from EE by @buua436 in #21874
- Update docs by @yingfeng in #21876
- feat(ingestion): emit structured lifecycle events for document-parse tasks by @xugangqiang in #21711
- refactor by @JinHai-CN in #21875
- fix(agent): serialize HTTP fields and preserve errors by @6ba3i in #21857
- fix(agent): resolve nested subagent components by @6ba3i in #21872
- fix(agent): normalize Invoke proxy URLs and avoid panics by @QAQadws in #21855
- fix(deepseek): validate and normalize thinking effort by @QAQadws in #21852
- fix(test): remove two races that reddened the ingestion packages by @ccclucky in #21716
- fix(gmail): retain complete MIME payload when loading threads by @Zhi-Xiang-Guo in #21811
- feat: add Synap as a model provider by @jimmyplup in #21818
- fix(agentic-rag): make the finalize and claims budgets configurable by @ccclucky in #21879
- test(service): gate API-token identity test out of EE builds by @xugangqiang in #21885
- feat(document): one-click cancel all documents in parsing queue by @xugangqiang in #21861
- fix(docker): stop the SPA fallback from masking stale hashed assets by @ccclucky in #21878
- update readme by @JinHai-CN in #21894
- feat(go): MonkeyOCR PDF dispatch on Go ingestion path by @Souravrajvi0 in #20469
- fix(ingestion): add process_end_at column and keep OSS ingest-log a no-op by @xugangqiang in #21888
- Fix: Increase the spacing between the labels and the dropdown menus for the PDF and table parsers. by @cike8899 in #21882
- refa: derive permission identity from context by @buua436 in #21892
- Refactor: refine response data by @wangq8 in #21858
- Revert "fix(ingestion): add process_end_at column and keep OSS ingest-log a no-op" by @JinHai-CN in #21897
- fix(agent): use stored log titles in tables and exports by @6ba3i in #21890
- fix(agent): pass scalar thresholds to memory retrieval by @6ba3i in #21889
- add sync audit hook by @JinHai-CN in #21901
- Fix: Variables within the "Wait for Input" and "Start" components of an agent are not accessible in the floating window. by @cike8899 in #21900
- remove codecov upload by @JinHai-CN in #21902
- refactor(common): revert OSS ingest-log collection from #21711 (keep instrumentation only) by @xugangqiang in #21893
- Fix: Delete the agent log entry by @cike8899 in #21910
- Stop persisting process_end_at; recover end time from begin + duration by @xugangqiang in #21906
- feat: add user ownership to resources by @buua436 in #21914
- Feat: Add a cancel button to pause tasks that are currently running or queued. by @cike8899 in #21917
- Fix: The referenced content in chat and agent messages is being obscured. by @cike8899 in #21918
- Fix: disable ciation not working in agentic chat by @wangq8 in #21913
- fix(parser): detect Office content before selecting Go parsers by @jay77721 in #21909
- feat(web): add enterprise (ee) seam layer for build-time overlays by @dcc123456 in #21908
- refa: derive service identity from context by @buua436 in #21904
- fix(service): purge engine data from RemoveDocumentKeepFile (#20659) by @Harsh23Kashyap in #20768
- fix(ingestion): share extractor concurrency across tag extraction by @jay77721 in #21891
- fix(dao): include skill spaces in auto migration by @buua436 in #21921
- fix(es): preserve dataset and document scope in single chunk updates by @zzy1017-crypto in #21842
- fix(whatsapp): escape the gateway events session key once by @flyingwhit in #21871
- docs:Restructure the Team documentation and align sharing configuration across Dataset, Agent, and Memory. by @Yannnnnnny in #21922
- fix(file): scope commit changes to the target folder tree by @ccclucky in #21795
- feat(ocr): make MinerU parser timeout configurable via environment and setup by @superwiboy in #21832
- Refactor: Better no such name by @wangq8 in #21925
- Fix: Adjust layout of DatasetFilter component to conditionally render FilterPopover and SearchInput by @dcc123456 in #21924
- Fix: Agent – Incomplete display of blueprint examples when creating a wiki template in Compiler by @cike8899 in #21919
- fix(agent): populate structured output and resolve deferred @structured by @huang-aoqin in #20679
- feat(gpustack): rework provider setup and fix driver issues by @lemisky in #21903
- fix(agent): runtime fixes for tool naming, legacy sessions, tenant scoping and MCP SSRF by @techpreneur-a in #20558
- fix(ingestion): pass the MinerU timeout to the MonkeyOCR file_parse upload by @ccclucky in #21930
- refa: derive service identity from request context by @buua436 in #21923
- fix(retrieval): bound rerank and KNN candidate windows by @zzy1017-crypto in #21907
- feat(ingestion): recognize image tables through the DeepDoc page pipeline by @jay77721 in #21911
- doc: fix typos by @JinHai-CN in #21947
- Fix: Variables inserted using shortcuts fail to display in the message node. by @cike8899 in #21946
- Fix: Chat embedded in a website: automatically scrolls down when a question is answered. by @cike8899 in #21940
- refa: derive service identity from context by @buua436 in #21942
- Fix: Long messages in floating embedded pages overflow the message box. by @cike8899 in #21951
- Fix: The pipeline name is too long and overflows the release dialog. by @cike8899 in #21957
- fix(agent): support String and Object Invoke parameters by @6ba3i in #21953
- feat(chunker): support media context in title and manual pipelines by @ZXLyyds100 in #21111
- refa: derive connector, MCP, and memory identity from context by @buua436 in #21952
- allow chinese words as model instance name by @JinHai-CN in #21948
- Fix: add system_settings seeder by @Lynn-Inf in #21955
- perf(pdf): read page directives once per document by @jay77721 in #21950
- Fix: honor ALLOW_ANY_HOST by @wangq8 in #21949
- Fix: File Management - Move - Folder name is too long, causing visual clipping (clipping through UI elements) by @cike8899 in #21962
- Filter agent version, allow filter with alias by @wangq8 in #21943
- refactor(extractor): resolve chat model config once per run by @xugangqiang in #21960
- Fix: Add a text description to the cancel-parsing button. by @cike8899 in #21966
- Fix: when agentic chat fail, show the real error by @wangq8 in #21964
- refactor(deepdoc): drop dead covered-slice+sort in GroupCells span injection by @xugangqiang in #21954
- refactor(ingestion): consolidate unique* string dedup helpers into common by @xugangqiang in #21961
- Fix: allow to move to root directory by @wangq8 in #21969
- ci: web not run go test by @myf-bee in #21958
- Fix: The messages in the embedded chat interface are positioned too close to the right edge. by @cike8899 in #21974
- feat(observability): carry user_name/tenant_name through IngestionLog by @xugangqiang in #21968
- i18n: translate GPUStack provider setup and parse cancel strings in tr-TR by @bakiburakogun in #21963
- feat(ingestion): record pipeline version on operation logs by @jay77721 in #21916
- fix(agentic_rag): make the decisionhead package compile without cgo by @ccclucky in #21932
- fix(deepdoc): keep DLA-labeled body prose out of table captions by @jay77721 in #21979
- deepdoc/pdf: extend TableBuilder with FinalizeGrid and AttachSpanInfo by @xugangqiang in #21980
- Fix: agent session by default should not return dsl by @wangq8 in #21989
- Fix: Deleting a pipeline bound to a dataset should not trigger an error when navigating to the file list page of a different dataset. by @cike8899 in #21985
- fix(sdk): guard Session._structure_answer against KeyError on non-streaming agent responses by @sandiyochristan in #21933
- fix(storage): add Content-MD5 to S3 batch delete requests by @liuzelei in #21877
- fix(go): paginate the Anthropic models list by @pcbeingused333 in #21899
- fix(chunker): bound the crop page cache by bytes and release pages when a crop task panics by @Xavierando in #21880
- refactor(structure): read STRUCT_MAX_CHUNKS_PER_BATCH via common.GetEnvInt by @xugangqiang in #21984
- docs: Documentation Updates and UI Alignment by @Yannnnnnny in #21986
- fix(nlp): add retrieval prune logic and tests by @zzy1017-crypto in #21627
- fix: align version catalog test with EE permissions by @buua436 in #22011
- Fix: Dataset file configuration: switching from "pipeline" to "built-in" also triggers an exclamation mark warning. by @cike8899 in #22010
- Fix: If the title of an agent operator is too long, it overflows beyond the boundaries of the sheet. by @cike8899 in #22013
- fix(web): hide Agent-related content in chat channel connect dialog by @dcc123456 in #22015
- Fix: Increase the right-hand margin on the agent share page. by @cike8899 in #22016
- Fix: second sort key for memory messages by @Lynn-Inf in #22004
- Upgrade office_oxide to v0.1.16 and drop temporary caption/table fixes by @xugangqiang in #21978
- refa: remove remaining identity arguments by @buua436 in #22005
- fix(es): return error on item-level failures in metadata bulk write by @zzy1017-crypto in #21956
- fix(ingestion): preserve PDF sentences across page boundaries by @jay77721 in #21982
- refactor(ingestion): consolidate duplicated meta-reader helpers into kccommon by @xugangqiang in #21983
- Add Somark VerifyOCRConnection by @fenglingxiansheng in #21927
- fix(knowledge-compiler): honor node settings and degrade missing vector mapping by @buua436 in #22026
- fix(web): pass through 413/504 responses without a duplicate error toast by @dcc123456 in #22024
- fix(core): enforce consistent name and alias length limits by @jay77721 in #22020
- fix(parser): preserve Office table cell spans by @jay77721 in #22012
- Fix: The model category filter does not change based on the system language, and there is no clear visual indicator to show which item is currently selected. by @cike8899 in #22038
- fix(channels): propagate delivery errors without exposing credentials by @6ba3i in #22033
- fix(parser): keep the paragraphs of a Markdown blockquote apart by @L4XB in #21347
- Fix: The agent operator name is too long, causing the icon to be compressed. by @cike8899 in #22042
- feat(doc-generator): render markdown and expose html decorations by @6ba3i in #22040
- fix(channels): support WhatsApp gateways through Docker by @6ba3i in #22032
- Refactor: restrict page_size max value 100 by @wangq8 in #22036
- docs: record name column widening in database change log by @jay77721 in #22030
- Feat: Image parsing: DeepDoc is distinguished from other OCR models and is offered as a separate option. by @cike8899 in #22047
- Bump Infinity to v0.7.5 by @qinling0210 in #22022
- fix(admin): return every user when the list is unpaged by @ccclucky in #21723
- docs: add tutorial in quickstart by @Yannnnnnny in #22027
- docs:add use cases for common scenarios by @Yannnnnnny in #22054
- fix(models): support the MinerU 4.1 Tasks API in ParseMinerUV1 by @ccclucky in #21995
- Fix: Align the agent operator title to the left. by @cike8899 in #22051
- fix(pregel): preserve slice types during state reduction by @6ba3i in #22014
- Add RenderVH dispatch hook to ConstructTable for EE V/H tables by @xugangqiang in #22055
- fix: seed user rows in tenant service tests by @buua436 in #22060
- Resolve the comments by @wangq8 in #22059
- fix: restore harness interrupt resume and events by @buua436 in #22050
- refactor(common): move IngestionLog and ingest-log sink out of stub.go by @xugangqiang in #22006
- fix(chat): always conjoin the authorized kb_id filter to SQL retrieval by @zzy1017-crypto in #21866
- fix(web): harden rename flows and dialog UX by @dcc123456 in #22068
- feat(channels): support agent workflows and isolate startup failures by @6ba3i in #22031
- Revert "fix(web): hide Agent-related content in chat channel connect dialog" by @wangq8 in #22069
- fix(storage): use bounded synchronous MinIO health probes by @liuzelei in #21945
- refactor(ingestion): drop Python/migration-history comments from tree sub-package by @xugangqiang in #22008
- fix: harden native analyzer conversions and JSON output by @buua436 in #22070
- fix: harden agent export, timeout, and artifact handling by @buua436 in #22037
- fix: clean agent subgraphs and repair frontend requests by @buua436 in #22048
- fix(pregel): propagate conditional edge and branch errors by @6ba3i in #22074
- fix(web): use secondary buttons for tenant table actions by @dcc123456 in #22079
- fix(agent): preserve Markdown headings and lists in DOCX by @6ba3i in #22078
- Docs: Get rid of (optional) by @wangq8 in #22085
- feat(parser): add MiniCPM-OCR as a PDF parser by @Caldalis in #21785
- add more glm models by @JinHai-CN in #22087
- Provision native libs from versioned user cache (offline CI, drop /opt pre-bake) by @xugangqiang in #22023
- Fix: handle Vite preload errors with automatic reload by @cike8899 in #22086
- fix: resolve template, rerank, and migration regressions by @buua436 in #22083
- fix(agent): preserve nested Markdown lists in PDF exports by @6ba3i in #22084
- fix: scope upload quotas and lock WeCom listener binding by @buua436 in #22076
- fix: harden OAuth, gateway auth, and provider parsing by @buua436 in #22072
- Fix: long name error by @wangq8 in #22088
- fix(es): prevent Lucene injection in session_id and enforce dataset scope in DeleteChunks by @zzy1017-crypto in #21981
- fix(web): truncate overflowing titles in embedded chat headers by @dcc123456 in #22091
- fix: prefix agent channel sessions with the chat channel name by @flyingwhit in #22090
- feat(chatchannel): stream Feishu, WeCom and DingTalk replies by @flyingwhit in #22041
- fix(channels): truncate Telegram and Discord upstream error bodies to 200 bytes by @flyingwhit in #22075
- fix(channels): apply saved agent updates to existing conversations by @6ba3i in #22093
- Revert "Provision native libs from versioned user cache (offline CI, drop /opt pre-bake)" by @xugangqiang in #22097
- fix(web): refresh tenant user list after removing a member by @dcc123456 in #22096
- fix(test): fix always-true assertions in reranker normalize test by @zzy1017-crypto in #22039
- fix(dataset): sync folder rename in same transaction to prevent binding loss by @zzy1017-crypto in #22021
- refactor(ingestion): centralize component names and identity checks by @jay77721 in #22081
- fix(deepdoc): preserve missed PDF table rows and merged headers by @jay77721 in #22073
- fix(channels): strip citations from outgoing replies by @6ba3i in #22106
- fix(syncer): retry startup task publication failures by @6ba3i in #22101
- fix: align ChatChannel permission tests by @buua436 in #22107
- fix(infinity): decode tag_feas on chunk search reads by @ccclucky in #21782
- Release notes 1.0 GA by @wangq8 in #22109
- Docs: Update version references to v1.0.0 in READMEs and docs by @asiroliu in #22108
- update macos runner to macos-15 for arm64 architecture by @myf-bee in #22110
New Contributors
- @adityabatra072 made their first contribution in #21719
- @eridan-ltu made their first contribution in #21828
- @Zhi-Xiang-Guo made their first contribution in #21809
- @fenglingxiansheng made their first contribution in #21710
- @GunaPalanivel made their first contribution in #20633
- @MoonPointer-Byte made their first contribution in #21766
- @Steve-20-ai made their first contribution in #21823
- @mmporong made their first contribution in #21503
- @jimmyplup made their first contribution in #21818
- @superwiboy made their first contribution in #21832
- @sandiyochristan made their first contribution in #21933
- @liuzelei made their first contribution in #21877
- @pcbeingused333 made their first contribution in #21899
- @Caldalis made their first contribution in #21785
Full Changelog: v1.0.0-rc3...v1.0.0