Skip to content

v0.8.0

Latest

Choose a tag to compare

@lyingbug lyingbug released this 03 Sep 07:03

What's Changed

  • fix(tenant): clear stale home tenant after member removal by @jiahao6635 in #2589
  • Feat/issue 2401 auto tag by @Syt3s in #2548
  • fix(knowledge): harden auto-tagging and let it respect manual tags by @lyingbug in #2595
  • feat(auth): add self-service change password in user profile by @jiahao6635 in #2591
  • fix(auth): harden self-service change password after #2591 by @lyingbug in #2596
  • fix(query-understand): LLM 输出不可解析时应回退到原始查询输入 by @mdrkrg in #2592
  • docs: fix 登陆 typo to 登录 by @jiahao6635 in #2598
  • feat(files): add message-scoped proxy for shared-agent chat images by @lyingbug in #2605
  • fix(vlm): use max_completion_tokens for GPT-5 / o-series vision models by @renezander030 in #2614
  • fix: pptx/ppt attachment parsing fails — missing parser engine + markitdown extras by @putcn in #2621
  • fix(security): harden outbound URL SSRF protection by @lyingbug in #2626
  • feat: add Metaso web search provider by @hiasky in #2625
  • feat: 邀请链接在 invite_only 模式下改为登录后加入空间 by @asmh1989 in #2627
  • feat(invitation): add auto-accept switch for inviting registered users by @asmh1989 in #2633
  • fix(invitation): harden auto-accept follow-ups from code review by @lyingbug in #2638
  • fix(im): persist session mode configuration by @jacentsao in #2629
  • feat(agent): prefill default rerank model on agent creation by @mdrkrg in #2631
  • fix(frontend): dismiss stale card popover on folder navigation by @hiasky in #2624
  • fix(mcp): preserve omitted service update fields by @jay3cx in #2622
  • fix(test): use resolvable URLs in MCP service update test by @lyingbug in #2640
  • fix(cli): preserve agent update flags in retry_argv by @jiahao6635 in #2599
  • refactor(handler): extract shared searchResultFromMap by @mdrkrg in #2610
  • fix(config): 补齐 WEKNORA_TENANT_ENABLE_CROSS_TENANT_ACCESS 的 env 读取 by @asmh1989 in #2594
  • feat(yunzhijia): support thread sessions by @jacentsao in #2630
  • feat(sandbox) by @nullptr-error in #2301
  • fix(i18n): add common update success translations by @hanxiantao in #2649
  • feat(auth): add /auth/oidc/start endpoint for direct 302 OIDC login by @asmh1989 in #2647
  • feat(sandbox): 沙箱后端改为按空间配置,并补齐 E2B 模板与检测诊断 by @lyingbug in #2651
  • fix: 修复共享空间下拉列表无法滚动 by @WHUTcjh-2024 in #2644
  • fix(embedding): validate WeKnoraCloud response indexes by @pengpengyi92 in #2646
  • feat: add Exa WebSearch by @Syt3s in #2617
  • feat(sandbox): unify remote sandbox on E2B protocol with self-hosted support by @lyingbug in #2655
  • feat(knowledge): add document download action by @hanxiantao in #2654
  • feat(i18n): 前端默认语言支持经 DEFAULT_LOCALE 环境变量运行时配置 by @asmh1989 in #2658
  • fix(i18n): harden DEFAULT_LOCALE runtime config after #2658 by @lyingbug in #2660
  • feat(sandbox): enhance logging for sandbox operations and error diagnostics by @lyingbug in #2659
  • fix(docreader): preserve vertically merged table cells by @Lion-Leporidae in #2657
  • fix(frontend): keep knowledge view controls visible by @hiasky in #2661
  • feat: allow updating API key knowledge base scope by @estongu in #2607
  • fix(wiki): set MaxTokens for generateWithTemplate LLM calls by @jiahao6635 in #2608
  • feat: paginate document chunks by @hiasky in #2664
  • fix(frontend): harden document chunk pagination state handling by @lyingbug in #2665
  • fix(docreader): avoid chart serialization during xlsx preprocessing by @jiahao6635 in #2663
  • feat(datasource): add Tencent IMA datasource by @chengjoey in #2662
  • fix(frontend): refine user profile change-password popup UX by @lyingbug in #2670
  • fix(ui): 统一剪贴板复制为公共方法,HTTP 环境回退 execCommand by @asmh1989 in #2668
  • fix: restore FAQ batch actions by @ttommybot in #2669
  • fix(agent): shared knowledge bases render doc_count=0 in runtime_context by @ShadowSmallBaby in #2564
  • feat(im): process file attachments in QA by @jacentsao in #2667
  • feat(datasource): 支持 GitLab 数据源文档同步 by @Numblgw in #2656
  • feat(im): support reverse proxy for feishu websocket long connection by @Greenplumwine in #2550
  • fix(datasource/gitlab): 修复项目路径编码与连接器单例缓存问题 by @lyingbug in #2673
  • fix: support folder drag-and-drop upload with directory structure preserved by @wheatzone in #2677
  • fix: allow clearing optional model selections by @ttommybot in #2675
  • fix(data-analysis): 修复 Excel 表格摘要丢失样本数据 by @Numblgw in #2682
  • fix(chunking): preserve parent-child text child embeddings by @sandaogouchen in #2680
  • fix(dev): use IPv4 loopback for local services by @hanxiantao in #2683
  • feat(memory): add cross-session long-term memory by @lyingbug in #2689
  • 修复:同步 knowledge-search 的 Swagger 路由与实际接口 by @T3L000 in #2691
  • fix(docparser): preserve filename extension in MinerU multipart uploads by @oscarlius in #2695
  • ci: add golangci-lint workflow gating new PR code by @lyingbug in #2696
  • fix(datasource): perform real sync deletions scoped per data source by @mdrkrg in #2690
  • 修复:完善 API Playground SSE 终态处理 by @T3L000 in #2697
  • fix(chunk-merge): stop dropping content when contiguous chunks repeat text by @ChenRussell in #2686
  • fix: filter menus by deployment capabilities by @ttommybot in #2674
  • fix(chat): 修复对话时间轴的三处失真(占位行样式、历史丢步骤、兜底计数) by @lyingbug in #2699
  • 【Fix】修复docker-compose.yml中配置的postgres 安全检查问题 by @Greenplumwine in #2704
  • feat(docparser): 引入 anydoc 引擎,在 Go 进程内解析 office 文档 by @lyingbug in #2702
  • fix(docker): copy anydoc-go go.mod before go mod download by @lyingbug in #2719
  • fix(anydoc): 升级到 0.1.9,为恶意 PDF 的解析开销加上上界 by @lyingbug in #2720
  • fix(docker): 默认在 app 镜像中链接 anydoc 解析引擎 by @lyingbug in #2721
  • fix(build): Enable Docker BuildKit in build_images.sh by @hbh112233abc in #2287
  • docs: update website screenshot tracker by @hata333 in #2735
  • fix(chunk): sanitize context headers before persistence by @oscarlius in #2701
  • docs(cli): align retry guidance with retry_argv by @Lem0nTea2002 in #2731
  • fix(hybrid-search): guard MatchCount=0 truncating all results by @toy0116 in #1156
  • Fix/hybrid search match count normalization by @iuyo5678 in #2750
  • fix(i18n): restore tenantless onboarding copy by @koishi514-Z in #2739
  • fix: localize builtin agent cards when config is persisted in DB by @LHMQ878 in #2710
  • fix(retrieval): 分段中删除的图片不再被检索到 by @lawrence1912 in #2730
  • fix: navigate chat references to document folder by @hiasky in #2754
  • fix(migrations): 补齐 Lite 模式缺失的 SQLite 版本化迁移 (fixes #2158) by @icatw in #2749
  • fix(deps): Upgrade dingtalk-stream-sdk-go to fix the crash caused by sending on a closed channel by @jettjia in #2727
  • feat: support editing document summaries by @hiasky in #2752
  • ci: 按路径裁剪 PR checks,避免 anydoc 与无关模块 lint 误触发 by @lyingbug in #2755
  • feat(frontend): 选择VLLM模型时添加supports_vision判断 by @cainbit in #2741
  • fix(session): bound the auto-generated session title to fit the column by @hjxccc in #2738
  • fix(frontend): isolate markdown preview renderers by @jacentsao in #2732
  • perf(agent): make knowledge_search MMR selection incremental by @hjxccc in #2737
  • Docs/cli wire vocab sweep by @iuyo5678 in #2748
  • docs: fix URL-encoded slash in Trendshift badge alt text by @bilibili336396-prog in #2757
  • fix(wiki): stop housekeeping from force-failing documents with durable Wiki backlog by @hjxccc in #2715
  • feat(docreader): add XMind outline parsing by @guiyangyuan in #2713
  • feat(system-admin): add endpoint for creating users by @mdrkrg in #2722
  • feat(dsh-weknora): DeepSeek Harness plugin exposing WeKnora retrieval tools by @lyingbug in #2759
  • ci(dsh-weknora): cache pinned dsh install to speed up e2e by @lyingbug in #2760
  • ci(dsh-weknora): restore e2e timeout for cold dsh cache by @lyingbug in #2764
  • fix(anydoc): rebuild truncated patched crate instead of failing cargo by @lyingbug in #2766
  • fix(datasource): 修复同步删除关闭状态无法保存的问题 by @Numblgw in #2765
  • feat(agent): report and attribute per-turn LLM token usage by @ochanism in #2772
  • fix(i18n): add missing common locale keys by @hanxiantao in #2773
  • feat(sandbox): replace one-shot docker run with session-scoped containers by @lyingbug in #2769
  • fix(handler): validate knowledge search pagination by @pengpengyi92 in #2776
  • fix(docreader): apply PDF image SMask so embedded figures are not all-black by @649111698 in #2775
  • fix(im): handle DingTalk rich text messages by @waterbang in #2777
  • feat(sandbox): add tenant skill snapshot infrastructure by @nullptr-error in #2781
  • docs: clarify Docker image release tags by @hiasky in #2784
  • feat(chat): display message timestamps by @Jonesxq in #2762
  • feat(sandbox): add tenant skill install and remove service layer by @nullptr-error in #2783
  • fix: stop markdown table regex catastrophic backtracking by @sufan721 in #2770
  • fix(chat): insert timestamps as conversation flow dividers by @lyingbug in #2788
  • fix(frontend): expose history and retrieval retention to smart-reasoning agents by @ochanism in #2787
  • feat(sandbox): expose tenant skill management over HTTP and in the console by @nullptr-error in #2789
  • ui(sandbox): rename settings to skill sandbox and fix skill install by @lyingbug in #2792
  • fix(sandbox): skip identical skill installs and prune old snapshots by @lyingbug in #2791
  • feat(sandbox): install skills from ClawHub, SkillHub, and git URLs by @lyingbug in #2795
  • fix(frontend): sync settings nav with a single section query by @lyingbug in #2797
  • ui(chat): polish generated-files surfaces and shell_exec cards by @lyingbug in #2801
  • fix(sandbox): advertise only image skills and unstick installs by @lyingbug in #2800
  • fix(sandbox): hide Cube skill snapshots from the template catalog by @lyingbug in #2802
  • feat(sandbox): browse installed skill files from settings by @lyingbug in #2804
  • ui(agent): merge skills and sandbox into one editor tab by @lyingbug in #2806
  • feat(sandbox): Docker skill snapshots, Cube DNS, and freeze configs after skills by @lyingbug in #2805
  • feat(api): honor resource_urls=public on hybrid-search by @lyingbug in #2814
  • feat(sandbox): remove the Local host-process backend by @lyingbug in #2815
  • ui(sandbox): explain who still holds a config by @lyingbug in #2816
  • ui(agent): unify skill naming and icon across editor and mentions by @lyingbug in #2818
  • fix(agent): keep compacted sandbox streams in persisted history by @lyingbug in #2821
  • feat(agent): preview skill artifacts and verify installs without running them by @lyingbug in #2823
  • test(sandbox): drop TEST-NET DNS fixture from Cube tests by @lyingbug in #2830
  • fix(agent): stop using the chat model to rerank knowledge search by @lyingbug in #2831
  • fix(sandbox): pin Docker sessions so skill artifacts get collected by @lyingbug in #2834
  • fix(i18n): 修复内置智能体名称与描述不随界面语言切换的问题 by @asmh1989 in #2828
  • feat(sandbox): inject per-user and workspace skill env vars at execution by @nullptr-error in #2833
  • feat(chat): add a question outline for long overflowing sessions by @nullptr-error in #2839
  • fix(sandbox): keep skill env declarations and first-install Docker exec by @lyingbug in #2842
  • ui(chat): refine the question outline to a tighter Codex-like rail by @lyingbug in #2845
  • ui(skills): split the skill catalog out of the sandbox editor by @lyingbug in #2847
  • fix(agent): keep skill-script stdout on failure for the model and UI by @lyingbug in #2853
  • feat(skills): tenant catalog with install-per-sandbox by @lyingbug in #2852
  • fix(im): handle WeCom 32-byte PKCS7 padding by @Roovelrz in #2848
  • ui(chat): show skill names on tool cards and render sandbox file lists by @lyingbug in #2854
  • fix(wiki): prevent concurrent duplicate page identities by @JYao-Chen in #2850
  • fix(agent): stage sandbox attachments and expose file tools by @nullptr-error in #2856
  • feat(agent): write workspace scripts and run them with installed skills by @lyingbug in #2865
  • fix(skills): map ClawHub @owner/slug to slug plus ownerHandle by @lyingbug in #2866
  • feat(agent): keep max completion tokens as default or a custom cap by @lyingbug in #2867
  • fix(skills): verify installs by loadability and repair missing deps by @lyingbug in #2889
  • fix(markdown): sanitize invalid UTF-8 and NUL bytes by @Jonesxq in #2870
  • fix(s3): disable optional checksums for compatible endpoints by @Jonesxq in #2872
  • fix(wiki): fall back to a knowledge QA model by @Jonesxq in #2871
  • fix: reconcile direct invites after share-link join by @hiasky in #2864
  • fix(frontend): keep streamed Mermaid diagrams from reverting to code by @lyingbug in #2890
  • fix(docreader): fail URL scrape instead of indexing error text by @lyingbug in #2891
  • fix(parser): default ppt/pptx to markitdown when no engine rules by @lyingbug in #2892
  • docs: link dsh-weknora to its npm package page by @lyingbug in #2893
  • fix(dsh-weknora): show knowledge-base figures in plugin answers (#2829) by @lyingbug in #2895
  • fix(docreader): handle Header object when stripping mhtml header by @ResistanceTo in #2902
  • fix(docreader): keep DOCX table content in parsed text by @LuckVd in #2898
  • fix(observability): nest follow-up and sandbox spans under the chat trace by @lyingbug in #2904
  • fix(frontend): tighten skill catalog cards and add an avatar shortcut by @lyingbug in #2910
  • fix(frontend): clarify agent skill picker and open install progress in-place by @lyingbug in #2928
  • fix(frontend): use latest system setting value by @cainbit in #2926
  • fix: verify OIDC id_token signature via JWKS (Fixes #2799) by @chiliec in #2927
  • feat: support complex password by @cainbit in #2929
  • feat: add LiteLLM as a model provider by @prodmanpd in #2923
  • fix(im/feishu): show progress card in full output mode by @LeonPure in #2909
  • fix(feishu): finalize streaming card state by @gongwen in #2911
  • fix: share IP classification between SSRF and sandbox URL guards by @lyingbug in #2935
  • feat: require opt-in for the Docker sandbox backend by @lyingbug in #2936
  • fix(auth): record last-active-tenant preference on SwitchTenant by @mdrkrg in #2922
  • fix(sandbox): grant appuser the docker.sock group inside the app container by @lyingbug in #2939
  • chore(deps): bump the cli-deps group in /cli with 2 updates by @dependabot[bot] in #2947
  • fix(agent): recover tool arguments with a stray trailing fragment by @lyingbug in #2952
  • perf(skills): batch install verification and live installer progress by @nullptr-error in #2960
  • fix(skills): count GitHub skill subtrees and polish catalog install UI by @lyingbug in #2948
  • fix(skill): @mention 不再收窄技能白名单 by @Greenplumwine in #2954
  • fix(frontend): include nginx-api-proxy.conf in the UI image build by @lyingbug in #2986
  • fix(skill): 解析 stringified JSON 数组形式的 args by @Greenplumwine in #2955
  • feat(agent): tell session agents their workspace and scope the sandbox tools to it by @lyingbug in #2988
  • fix(skills): install ClawHub skills.sh catalog pages via the install resolver by @lyingbug in #2941
  • fix(models): show usage details when deletion is blocked by @leon4z in #2975
  • feat(agent): keep long sandbox turns from truncating, overflowing, or rewriting files by @lyingbug in #2994
  • feat(agent): stream live +/- progress for sandbox write and edit by @lyingbug in #3000
  • feat(chat): keep prompt prefixes stable and send provider cache markers by @lyingbug in #3002
  • feat(sandbox): add tenant-configurable network policy by @nullptr-error in #2995
  • fix(sandbox): hide inbound radios and let Cube L7 rules be reordered by @nullptr-error in #3007
  • chore: prepare v0.8.0 release by @lyingbug in #3009

New Contributors

Full Changelog: v0.7.2...v0.8.0