<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: NocoBase</title>
    <description>The latest articles on DEV Community by NocoBase (@nocobase).</description>
    <link>https://dev.to/nocobase</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1349233%2Ffe1061e9-2897-4210-a0b2-a96c044ac3b2.jpg</url>
      <title>DEV Community: NocoBase</title>
      <link>https://dev.to/nocobase</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nocobase"/>
    <language>en</language>
    <item>
      <title>Weekly Updates: Added Structured AI Usage Records</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Mon, 13 Jul 2026 06:43:59 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updates-added-structured-ai-usage-records-4l14</link>
      <guid>https://dev.to/nocobase/weekly-updates-added-structured-ai-usage-records-4l14</guid>
      <description>&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated across three branches: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;next&lt;/code&gt;, and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: The most stable version to date, recommended for installation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;: Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It is mainly used to collect feedback from test users and further optimize features. Ideal for test users who want to experience new features early and provide feedback.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;: Alpha version, contains the latest feature code, may be incomplete or unstable, and is mainly used for internal development and rapid iteration. Suited for technical users interested in cutting-edge product capabilities, but not recommended for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.1.23
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-10&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed v2 ScanInput recognition for Safari QR images selected from the upload path. (&lt;a href="https://github.com/nocobase/nocobase/pull/10011" rel="noopener noreferrer"&gt;#10011&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed client runtime asset base URL normalization when &lt;code&gt;__webpack_public_path__&lt;/code&gt; is injected without a trailing slash, and added coverage for that edge case. (&lt;a href="https://github.com/nocobase/nocobase/pull/10040" rel="noopener noreferrer"&gt;#10040&lt;/a&gt;)by chenos&lt;/li&gt;
&lt;li&gt;Fixed an issue where button linkage rule states in table blocks could become polluted after pagination. (&lt;a href="https://github.com/nocobase/nocobase/pull/10038" rel="noopener noreferrer"&gt;#10038&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[app]&lt;/strong&gt; Fix lazy-loaded assets using an external script URL when &lt;code&gt;CDN_BASE_URL&lt;/code&gt; is empty. (&lt;a href="https://github.com/nocobase/nocobase/pull/10052" rel="noopener noreferrer"&gt;#10052&lt;/a&gt;)by Molunerfinn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed an issue where overriding ctx.api in a JS block could cause a Maximum call stack size exceeded error. (&lt;a href="https://github.com/nocobase/nocobase/pull/10051" rel="noopener noreferrer"&gt;#10051&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Delay node]&lt;/strong&gt; Prevented delay nodes from accepting numeric durations less than 1 through the API (&lt;a href="https://github.com/nocobase/nocobase/pull/10057" rel="noopener noreferrer"&gt;#10057&lt;/a&gt;)by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Form drafts]&lt;/strong&gt; Fixed form drafts disappearing after consecutive page refreshes (&lt;a href="https://github.com/nocobase/nocobase/pull/10059" rel="noopener noreferrer"&gt;#10059&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: Main]&lt;/strong&gt; Prevented invalid many-to-many relationship field configurations from being saved (&lt;a href="https://github.com/nocobase/nocobase/pull/10044" rel="noopener noreferrer"&gt;#10044&lt;/a&gt;)by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection: Tree]&lt;/strong&gt; Fixed tree path collection creation to avoid passing internal field model metadata into collection options. (&lt;a href="https://github.com/nocobase/nocobase/pull/10035" rel="noopener noreferrer"&gt;#10035&lt;/a&gt;)by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed subflow nodes remaining pending when the child workflow fails before creating an execution record (&lt;a href="https://github.com/nocobase/nocobase/pull/10043" rel="noopener noreferrer"&gt;#10043&lt;/a&gt;)by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where using a local AI agent to configure linkage rules could trigger rendering errors. (&lt;a href="https://github.com/nocobase/nocobase/pull/10023" rel="noopener noreferrer"&gt;#10023&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;Fixed popup record variables failing to resolve from external NocoBase data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/10048" rel="noopener noreferrer"&gt;#10048&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Template print]&lt;/strong&gt; Fixed template print permission checks so hidden fields and records outside the current role's view scope are not rendered.by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allow string type of assignee ID to be addedby mytharcher&lt;/li&gt;
&lt;li&gt;Fix approval form fields becoming single-column in print previewby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where fields in disabled approval subtables can still be editedby zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.22
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-09&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix association fields showing the default operator setting in filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10025" rel="noopener noreferrer"&gt;#10025&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix mobile popup spacing for table quick edit and select fields (&lt;a href="https://github.com/nocobase/nocobase/pull/10020" rel="noopener noreferrer"&gt;#10020&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; Fixed NocoBase CLI default value issues for image registry fallback, built-in database images, env info display, and prompt initialization. (&lt;a href="https://github.com/nocobase/nocobase/pull/10027" rel="noopener noreferrer"&gt;#10027&lt;/a&gt;)by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Authentication]&lt;/strong&gt; Fix the issue where reset password links open the sign-in page (&lt;a href="https://github.com/nocobase/nocobase/pull/10006" rel="noopener noreferrer"&gt;#10006&lt;/a&gt;)by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.21
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-08&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Add OrcaRouter as an LLM provider (&lt;a href="https://github.com/nocobase/nocobase/pull/10003" rel="noopener noreferrer"&gt;#10003&lt;/a&gt;)by jinhaosong-source&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Remove arithmetic operators for condition node (&lt;a href="https://github.com/nocobase/nocobase/pull/10019" rel="noopener noreferrer"&gt;#10019&lt;/a&gt;)by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed stale linkage field states when switching records in runtime edit popups. (&lt;a href="https://github.com/nocobase/nocobase/pull/10010" rel="noopener noreferrer"&gt;#10010&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where association field default values in filter forms could not be cleared. (&lt;a href="https://github.com/nocobase/nocobase/pull/10022" rel="noopener noreferrer"&gt;#10022&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reject active-content filenames during file upload unless the configured storage MIME type rule explicitly allows them. (&lt;a href="https://github.com/nocobase/nocobase/pull/10021" rel="noopener noreferrer"&gt;#10021&lt;/a&gt;)by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/file-manager/storage/local" rel="noopener noreferrer"&gt;Local storage&lt;/a&gt;, &lt;a href="https://docs.nocobase.com/security/guide" rel="noopener noreferrer"&gt;Security guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fixed missing Attachment field interface in v2 data table management, and fixed image upload preflight checks for public form file relationship fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/10012" rel="noopener noreferrer"&gt;#10012&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Hide the historical attachment field interface from the V2 data table Add field menu. (&lt;a href="https://github.com/nocobase/nocobase/pull/10018" rel="noopener noreferrer"&gt;#10018&lt;/a&gt;)by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Fixed chart click interactions that could stop working after chart rerendering (&lt;a href="https://github.com/nocobase/nocobase/pull/10031" rel="noopener noreferrer"&gt;#10031&lt;/a&gt;)by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed an issue where migration could leave an app stuck on the repair screenby 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed app JWT secret isolation so main app tokens are no longer accepted by sub apps after an independent secret is enabledby 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.20
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-07&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Improved the Docker CLI setup by supporting configurable default NocoBase image registry/variant, fixing proxy and &lt;code&gt;no-nginx&lt;/code&gt; image port compatibility, and adding Docker Nginx/Caddy installation guides. (&lt;a href="https://github.com/nocobase/nocobase/pull/9972" rel="noopener noreferrer"&gt;#9972&lt;/a&gt;)by chenos&lt;/li&gt;
&lt;li&gt;Refactor CLI setup startup to reuse &lt;code&gt;nb app start&lt;/code&gt;, normalize API base path redirects, persist shared env proxy defaults, and rebuild Docker proxy containers when published ports change. (&lt;a href="https://github.com/nocobase/nocobase/pull/9997" rel="noopener noreferrer"&gt;#9997&lt;/a&gt;)by chenos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed Vditor asset loading in production by resolving plugin CDN paths from the effective webpack public path. (&lt;a href="https://github.com/nocobase/nocobase/pull/10008" rel="noopener noreferrer"&gt;#10008&lt;/a&gt;)by chenos&lt;/li&gt;
&lt;li&gt;Fixed an issue where Quick Edit could fail to switch dropdown options when navigating between pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/10007" rel="noopener noreferrer"&gt;#10007&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed an issue where popup configuration became inconsistent when toggling design modes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10005" rel="noopener noreferrer"&gt;#10005&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Reject active-content filenames during file upload unless the configured storage MIME type rule explicitly allows them. (&lt;a href="https://github.com/nocobase/nocobase/pull/9994" rel="noopener noreferrer"&gt;#9994&lt;/a&gt;)by mytharcher&lt;br&gt;
Reference: &lt;a href="//docs/docs/en/file-manager/storage/local.md"&gt;Local storage&lt;/a&gt;, &lt;a href="//docs/docs/en/security/guide.md"&gt;Security guide&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External MariaDB]&lt;/strong&gt; Fix Add all collections toggle in MySQL, MSSQL, and MariaDB external data source settings.by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.2.0-beta.13
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-12&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Redis worker ID allocator]&lt;/strong&gt; Restored standalone startup without Redis worker ID configurationby 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.0-beta.12
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-11&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Fixed custom portals missing when multi-application plugins are disabled (&lt;a href="https://github.com/nocobase/nocobase/pull/10055" rel="noopener noreferrer"&gt;#10055&lt;/a&gt;)by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[app]&lt;/strong&gt; Fixed Redis cache configuration ignoring the dedicated cache URL (&lt;a href="https://github.com/nocobase/nocobase/pull/10065" rel="noopener noreferrer"&gt;#10065&lt;/a&gt;)by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Redis worker ID allocator]&lt;/strong&gt; Improved Redis worker ID isolation and failure diagnosticsby 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.0-beta.11
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-11&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[app]&lt;/strong&gt; Fix lazy-loaded assets using an external script URL when &lt;code&gt;CDN_BASE_URL&lt;/code&gt; is empty. (&lt;a href="https://github.com/nocobase/nocobase/pull/10052" rel="noopener noreferrer"&gt;#10052&lt;/a&gt;)by Molunerfinn&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed v2 ScanInput recognition for Safari QR images selected from the upload path. (&lt;a href="https://github.com/nocobase/nocobase/pull/10011" rel="noopener noreferrer"&gt;#10011&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where button linkage rule states in table blocks could become polluted after pagination. (&lt;a href="https://github.com/nocobase/nocobase/pull/10038" rel="noopener noreferrer"&gt;#10038&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;Fixed client runtime asset base URL normalization when &lt;code&gt;__webpack_public_path__&lt;/code&gt; is injected without a trailing slash, and added coverage for that edge case. (&lt;a href="https://github.com/nocobase/nocobase/pull/10040" rel="noopener noreferrer"&gt;#10040&lt;/a&gt;)by chenos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed an issue where overriding ctx.api in a JS block could cause a Maximum call stack size exceeded error. (&lt;a href="https://github.com/nocobase/nocobase/pull/10051" rel="noopener noreferrer"&gt;#10051&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Delay node]&lt;/strong&gt; Prevented delay nodes from accepting numeric durations less than 1 through the API (&lt;a href="https://github.com/nocobase/nocobase/pull/10057" rel="noopener noreferrer"&gt;#10057&lt;/a&gt;)by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Form drafts]&lt;/strong&gt; Fixed form drafts disappearing after consecutive page refreshes (&lt;a href="https://github.com/nocobase/nocobase/pull/10059" rel="noopener noreferrer"&gt;#10059&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed subflow nodes remaining pending when the child workflow fails before creating an execution record (&lt;a href="https://github.com/nocobase/nocobase/pull/10043" rel="noopener noreferrer"&gt;#10043&lt;/a&gt;)by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where using a local AI agent to configure linkage rules could trigger rendering errors. (&lt;a href="https://github.com/nocobase/nocobase/pull/10023" rel="noopener noreferrer"&gt;#10023&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;Fixed popup record variables failing to resolve from external NocoBase data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/10048" rel="noopener noreferrer"&gt;#10048&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: Main]&lt;/strong&gt; Prevented invalid many-to-many relationship field configurations from being saved (&lt;a href="https://github.com/nocobase/nocobase/pull/10044" rel="noopener noreferrer"&gt;#10044&lt;/a&gt;)by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection: Tree]&lt;/strong&gt; Fixed tree path collection creation to avoid passing internal field model metadata into collection options. (&lt;a href="https://github.com/nocobase/nocobase/pull/10035" rel="noopener noreferrer"&gt;#10035&lt;/a&gt;)by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Template print]&lt;/strong&gt; Fixed template print permission checks so hidden fields and records outside the current role's view scope are not rendered.by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allow string type of assignee ID to be addedby mytharcher&lt;/li&gt;
&lt;li&gt;Fix approval form fields becoming single-column in print previewby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where fields in disabled approval subtables can still be editedby zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.0-beta.10
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-09&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Add OrcaRouter as an LLM provider (&lt;a href="https://github.com/nocobase/nocobase/pull/10003" rel="noopener noreferrer"&gt;#10003&lt;/a&gt;)by jinhaosong-source&lt;/li&gt;
&lt;li&gt;Added structured AI usage records for usage statistics (&lt;a href="https://github.com/nocobase/nocobase/pull/10004" rel="noopener noreferrer"&gt;#10004&lt;/a&gt;)by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Remove arithmetic operators for condition node (&lt;a href="https://github.com/nocobase/nocobase/pull/10019" rel="noopener noreferrer"&gt;#10019&lt;/a&gt;)by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data visualization]&lt;/strong&gt; Improved chart event scripts so custom event handlers can clean up safely (&lt;a href="https://github.com/nocobase/nocobase/pull/10034" rel="noopener noreferrer"&gt;#10034&lt;/a&gt;)by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data source manager]&lt;/strong&gt; Hide deprecated v2 main data source collection templates from the create collection menu. (&lt;a href="https://github.com/nocobase/nocobase/pull/10009" rel="noopener noreferrer"&gt;#10009&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix association fields showing the default operator setting in filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10025" rel="noopener noreferrer"&gt;#10025&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix mobile popup spacing for table quick edit and select fields (&lt;a href="https://github.com/nocobase/nocobase/pull/10020" rel="noopener noreferrer"&gt;#10020&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where association field default values in filter forms could not be cleared. (&lt;a href="https://github.com/nocobase/nocobase/pull/10022" rel="noopener noreferrer"&gt;#10022&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;Fixed stale linkage field states when switching records in runtime edit popups. (&lt;a href="https://github.com/nocobase/nocobase/pull/10010" rel="noopener noreferrer"&gt;#10010&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where Quick Edit could fail to switch dropdown options when navigating between pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/10007" rel="noopener noreferrer"&gt;#10007&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;Fixed Vditor asset loading in production by resolving plugin CDN paths from the effective webpack public path. (&lt;a href="https://github.com/nocobase/nocobase/pull/10008" rel="noopener noreferrer"&gt;#10008&lt;/a&gt;)by chenos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; Fixed NocoBase CLI default value issues for image registry fallback, built-in database images, env info display, and prompt initialization. (&lt;a href="https://github.com/nocobase/nocobase/pull/10027" rel="noopener noreferrer"&gt;#10027&lt;/a&gt;)by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed an issue where popup configuration became inconsistent when toggling design modes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10005" rel="noopener noreferrer"&gt;#10005&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Fixed chart click interactions that could stop working after chart rerendering (&lt;a href="https://github.com/nocobase/nocobase/pull/10031" rel="noopener noreferrer"&gt;#10031&lt;/a&gt;)by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Fix unnecessary login-required requests on V2 public form pages (&lt;a href="https://github.com/nocobase/nocobase/pull/10013" rel="noopener noreferrer"&gt;#10013&lt;/a&gt;)by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Authentication]&lt;/strong&gt; Fix the issue where reset password links open the sign-in page (&lt;a href="https://github.com/nocobase/nocobase/pull/10006" rel="noopener noreferrer"&gt;#10006&lt;/a&gt;)by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Hide the historical attachment field interface from the V2 data table Add field menu. (&lt;a href="https://github.com/nocobase/nocobase/pull/10018" rel="noopener noreferrer"&gt;#10018&lt;/a&gt;)by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reject active-content filenames during file upload unless the configured storage MIME type rule explicitly allows them. (&lt;a href="https://github.com/nocobase/nocobase/pull/10021" rel="noopener noreferrer"&gt;#10021&lt;/a&gt;)by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/file-manager/storage/local" rel="noopener noreferrer"&gt;Local storage&lt;/a&gt;, &lt;a href="https://docs.nocobase.com/security/guide" rel="noopener noreferrer"&gt;Security guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fixed missing Attachment field interface in v2 data table management, and fixed image upload preflight checks for public form file relationship fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/10012" rel="noopener noreferrer"&gt;#10012&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Embed NocoBase]&lt;/strong&gt; Fixed an issue where tokens could be polluted when embedding NocoBase pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/9948" rel="noopener noreferrer"&gt;#9948&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External MariaDB]&lt;/strong&gt; Fix Add all collections toggle in MySQL, MSSQL, and MariaDB external data source settings.by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed an issue where migration could leave an app stuck on the repair screenby 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed app JWT secret isolation so main app tokens are no longer accepted by sub apps after an independent secret is enabledby 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.2.0-alpha.8
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-13&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Public forms]&lt;/strong&gt; In the v1 public form, support creating v2 forms and prohibit creating v1 forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10045" rel="noopener noreferrer"&gt;#10045&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Unsupported workflow v2 canvas nodes now keep the normal node card actions while showing the node type as unsupported. (&lt;a href="https://github.com/nocobase/nocobase/pull/10054" rel="noopener noreferrer"&gt;#10054&lt;/a&gt;)by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Flow engine]&lt;/strong&gt; Support multi portals for ui build apis. (&lt;a href="https://github.com/nocobase/nocobase/pull/10072" rel="noopener noreferrer"&gt;#10072&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Improved AI employee tool settings, data-query guardrails, relation field querying, and malformed tool call diagnostics. (&lt;a href="https://github.com/nocobase/nocobase/pull/10042" rel="noopener noreferrer"&gt;#10042&lt;/a&gt;)by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection: SQL]&lt;/strong&gt; Not user-facing; added client-v2 unit test coverage for migrated plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9967" rel="noopener noreferrer"&gt;#9967&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix an error in v2 workflow value editors when a collection field is named nodeName. (&lt;a href="https://github.com/nocobase/nocobase/pull/10067" rel="noopener noreferrer"&gt;#10067&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where button linkage rule states in table blocks could become polluted after pagination. (&lt;a href="https://github.com/nocobase/nocobase/pull/10038" rel="noopener noreferrer"&gt;#10038&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;Fixed workflow v2 variable editors to preserve saved variable pills, disabled states, and operator labels consistently across trigger, filter, and field assignment forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10041" rel="noopener noreferrer"&gt;#10041&lt;/a&gt;)by Molunerfinn&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[app]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed Redis cache configuration ignoring the dedicated cache URL (&lt;a href="https://github.com/nocobase/nocobase/pull/10065" rel="noopener noreferrer"&gt;#10065&lt;/a&gt;)by 2013xile&lt;/li&gt;
&lt;li&gt;Fix lazy-loaded assets using an external script URL when &lt;code&gt;CDN_BASE_URL&lt;/code&gt; is empty. (&lt;a href="https://github.com/nocobase/nocobase/pull/10052" rel="noopener noreferrer"&gt;#10052&lt;/a&gt;)by Molunerfinn&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[server]&lt;/strong&gt; Fixed custom portals missing when multi-application plugins are disabled (&lt;a href="https://github.com/nocobase/nocobase/pull/10055" rel="noopener noreferrer"&gt;#10055&lt;/a&gt;)by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where users could type extra text after selecting a variable in single-value variable inputs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10050" rel="noopener noreferrer"&gt;#10050&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where overriding ctx.api in a JS block could cause a Maximum call stack size exceeded error. (&lt;a href="https://github.com/nocobase/nocobase/pull/10051" rel="noopener noreferrer"&gt;#10051&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Delay node]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix delay node duration input and prevent values below the minimum from being saved. (&lt;a href="https://github.com/nocobase/nocobase/pull/10056" rel="noopener noreferrer"&gt;#10056&lt;/a&gt;)by Molunerfinn&lt;/li&gt;
&lt;li&gt;Prevented delay nodes from accepting numeric durations less than 1 through the API (&lt;a href="https://github.com/nocobase/nocobase/pull/10057" rel="noopener noreferrer"&gt;#10057&lt;/a&gt;)by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed subflow nodes remaining pending when the child workflow fails before creating an execution record (&lt;a href="https://github.com/nocobase/nocobase/pull/10043" rel="noopener noreferrer"&gt;#10043&lt;/a&gt;)by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed manual workflow execution returning an error when a valid request does not start an execution. (&lt;a href="https://github.com/nocobase/nocobase/pull/10049" rel="noopener noreferrer"&gt;#10049&lt;/a&gt;)by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: Main]&lt;/strong&gt; Prevented invalid many-to-many relationship field configurations from being saved (&lt;a href="https://github.com/nocobase/nocobase/pull/10044" rel="noopener noreferrer"&gt;#10044&lt;/a&gt;)by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed popup record variables failing to resolve from external NocoBase data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/10048" rel="noopener noreferrer"&gt;#10048&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Form drafts]&lt;/strong&gt; Fixed form drafts disappearing after consecutive page refreshes (&lt;a href="https://github.com/nocobase/nocobase/pull/10059" rel="noopener noreferrer"&gt;#10059&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Aggregate node]&lt;/strong&gt; Fix validation rule to allow null filter (&lt;a href="https://github.com/nocobase/nocobase/pull/10053" rel="noopener noreferrer"&gt;#10053&lt;/a&gt;)by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Redis worker ID allocator]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restored standalone startup without Redis worker ID configurationby 2013xile&lt;/li&gt;
&lt;li&gt;Improved Redis worker ID isolation and failure diagnosticsby 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[plugin-service-platform]&lt;/strong&gt; Restored licensed plugin downloads from the service platform.by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Template print]&lt;/strong&gt; Fixed template print permission checks so hidden fields and records outside the current role's view scope are not rendered.by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix v2 approval subtables not displaying correctly in detailsby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix empty approval interfaces and fixed assignee IDsby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where fields in disabled approval subtables can still be editedby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Allow string type of assignee ID to be addedby mytharcher&lt;/li&gt;
&lt;li&gt;Fix approval form fields becoming single-column in print previewby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Close the Apply new drawer when opening an approval formby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix missing approval data on approval task cardsby zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.0-alpha.7
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-09&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add OrcaRouter as an LLM provider (&lt;a href="https://github.com/nocobase/nocobase/pull/10003" rel="noopener noreferrer"&gt;#10003&lt;/a&gt;)by jinhaosong-source&lt;/li&gt;
&lt;li&gt;Added structured AI usage records for usage statistics (&lt;a href="https://github.com/nocobase/nocobase/pull/10004" rel="noopener noreferrer"&gt;#10004&lt;/a&gt;)by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Add approval initiation and todo blocks for v2 pagesby zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refactor Markdown Vditor into a unified plugin-backed Markdown engine with compatibility bridges for existing Markdown block and Vditor field plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9998" rel="noopener noreferrer"&gt;#9998&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Improved AI employee web search to reduce unnecessary model reasoning and better use provider-specific thinking controls. (&lt;a href="https://github.com/nocobase/nocobase/pull/9996" rel="noopener noreferrer"&gt;#9996&lt;/a&gt;)by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Improved chart event scripts so custom event handlers can clean up safely (&lt;a href="https://github.com/nocobase/nocobase/pull/10034" rel="noopener noreferrer"&gt;#10034&lt;/a&gt;)by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Remove arithmetic operators for condition node (&lt;a href="https://github.com/nocobase/nocobase/pull/10019" rel="noopener noreferrer"&gt;#10019&lt;/a&gt;)by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Hide deprecated v2 main data source collection templates from the create collection menu. (&lt;a href="https://github.com/nocobase/nocobase/pull/10009" rel="noopener noreferrer"&gt;#10009&lt;/a&gt;)by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Comment]&lt;/strong&gt; Improved comment submit actions and fixed related comment/user form submission issues. (&lt;a href="https://github.com/nocobase/nocobase/pull/10002" rel="noopener noreferrer"&gt;#10002&lt;/a&gt;)by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed client runtime asset base URL normalization when &lt;code&gt;__webpack_public_path__&lt;/code&gt; is injected without a trailing slash, and added coverage for that edge case. (&lt;a href="https://github.com/nocobase/nocobase/pull/10040" rel="noopener noreferrer"&gt;#10040&lt;/a&gt;)by chenos&lt;/li&gt;
&lt;li&gt;Fixed v2 ScanInput recognition for Safari QR images selected from the upload path. (&lt;a href="https://github.com/nocobase/nocobase/pull/10011" rel="noopener noreferrer"&gt;#10011&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;li&gt;Fix association fields showing the default operator setting in filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10025" rel="noopener noreferrer"&gt;#10025&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix mobile popup spacing for table quick edit and select fields (&lt;a href="https://github.com/nocobase/nocobase/pull/10020" rel="noopener noreferrer"&gt;#10020&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where Quick Edit could fail to switch dropdown options when navigating between pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/10007" rel="noopener noreferrer"&gt;#10007&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;Fixed Vditor asset loading in production by resolving plugin CDN paths from the effective webpack public path. (&lt;a href="https://github.com/nocobase/nocobase/pull/10008" rel="noopener noreferrer"&gt;#10008&lt;/a&gt;)by chenos&lt;/li&gt;
&lt;li&gt;Fixed stale linkage field states when switching records in runtime edit popups. (&lt;a href="https://github.com/nocobase/nocobase/pull/10010" rel="noopener noreferrer"&gt;#10010&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where association field default values in filter forms could not be cleared. (&lt;a href="https://github.com/nocobase/nocobase/pull/10022" rel="noopener noreferrer"&gt;#10022&lt;/a&gt;)by gchust&lt;/li&gt;
&lt;li&gt;Fixed an issue where v2 workflow assigned fields could still be edited in read-only executed workflow versions. (&lt;a href="https://github.com/nocobase/nocobase/pull/10014" rel="noopener noreferrer"&gt;#10014&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; Fixed NocoBase CLI default value issues for image registry fallback, built-in database images, env info display, and prompt initialization. (&lt;a href="https://github.com/nocobase/nocobase/pull/10027" rel="noopener noreferrer"&gt;#10027&lt;/a&gt;)by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed an issue where popup configuration became inconsistent when toggling design modes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10005" rel="noopener noreferrer"&gt;#10005&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection: Tree]&lt;/strong&gt; Fixed tree path collection creation to avoid passing internal field model metadata into collection options. (&lt;a href="https://github.com/nocobase/nocobase/pull/10035" rel="noopener noreferrer"&gt;#10035&lt;/a&gt;)by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Public forms]&lt;/strong&gt; Fix the issue where public forms can still be configured when UI Editor is off (&lt;a href="https://github.com/nocobase/nocobase/pull/10036" rel="noopener noreferrer"&gt;#10036&lt;/a&gt;)by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed an issue where using a local AI agent to configure linkage rules could trigger rendering errors. (&lt;a href="https://github.com/nocobase/nocobase/pull/10023" rel="noopener noreferrer"&gt;#10023&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Authentication]&lt;/strong&gt; Fix the issue where reset password links open the sign-in page (&lt;a href="https://github.com/nocobase/nocobase/pull/10006" rel="noopener noreferrer"&gt;#10006&lt;/a&gt;)by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Fixed chart click interactions that could stop working after chart rerendering (&lt;a href="https://github.com/nocobase/nocobase/pull/10031" rel="noopener noreferrer"&gt;#10031&lt;/a&gt;)by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed workflow v2 condition operands to stay on one row by default and wrap correctly when selected variable paths are too long. (&lt;a href="https://github.com/nocobase/nocobase/pull/10033" rel="noopener noreferrer"&gt;#10033&lt;/a&gt;)by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fix untranslated workflow result labels and oversized CC configuration dialogs (&lt;a href="https://github.com/nocobase/nocobase/pull/9977" rel="noopener noreferrer"&gt;#9977&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix display and detail loading issues in the workflow v2 task center (&lt;a href="https://github.com/nocobase/nocobase/pull/10001" rel="noopener noreferrer"&gt;#10001&lt;/a&gt;)by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Hide the historical attachment field interface from the V2 data table Add field menu. (&lt;a href="https://github.com/nocobase/nocobase/pull/10018" rel="noopener noreferrer"&gt;#10018&lt;/a&gt;)by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reject active-content filenames during file upload unless the configured storage MIME type rule explicitly allows them. (&lt;a href="https://github.com/nocobase/nocobase/pull/10021" rel="noopener noreferrer"&gt;#10021&lt;/a&gt;)by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/file-manager/storage/local" rel="noopener noreferrer"&gt;Local storage&lt;/a&gt;, &lt;a href="https://docs.nocobase.com/security/guide" rel="noopener noreferrer"&gt;Security guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Reject active-content filenames during file upload unless the configured storage MIME type rule explicitly allows them. (&lt;a href="https://github.com/nocobase/nocobase/pull/9994" rel="noopener noreferrer"&gt;#9994&lt;/a&gt;)by mytharcher
Reference: &lt;a href="//docs/docs/en/file-manager/storage/local.md"&gt;Local storage&lt;/a&gt;, &lt;a href="//docs/docs/en/security/guide.md"&gt;Security guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fixed missing Attachment field interface in v2 data table management, and fixed image upload preflight checks for public form file relationship fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/10012" rel="noopener noreferrer"&gt;#10012&lt;/a&gt;)by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Embed NocoBase]&lt;/strong&gt; Fixed an issue where tokens could be polluted when embedding NocoBase pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/9948" rel="noopener noreferrer"&gt;#9948&lt;/a&gt;)by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Fix unnecessary login-required requests on V2 public form pages (&lt;a href="https://github.com/nocobase/nocobase/pull/10013" rel="noopener noreferrer"&gt;#10013&lt;/a&gt;)by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added an overwrite option for AI knowledge base workflow document creation, allowing workflows to replace existing documents with the same key.by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External MariaDB]&lt;/strong&gt; Fix Add all collections toggle in MySQL, MSSQL, and MariaDB external data source settings.by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[plugin-service-platform]&lt;/strong&gt; Disabled the service platform plugin download endpoint.by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt; Fixed workflow title search in the subflow node configuration selector.by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed an issue where migration could leave an app stuck on the repair screenby 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix approval assignee sorting and hide unsupported legacy configuration entriesby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the error when configuring approval workflow conditionsby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix missing processed approval details in v2 task detail popupsby zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix approval task form and action issues in the workflow v2 task centerby zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed app JWT secret isolation so main app tokens are no longer accepted by sub apps after an independent secret is enabledby 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>Build an Interactive Operations Dashboard with NocoBase</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 10 Jul 2026 07:28:47 +0000</pubDate>
      <link>https://dev.to/nocobase/build-an-interactive-operations-dashboard-with-nocobase-534</link>
      <guid>https://dev.to/nocobase/build-an-interactive-operations-dashboard-with-nocobase-534</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/build-interactive-operations-dashboard-with-nocobase" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/build-interactive-operations-dashboard-with-nocobase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article uses an operations dashboard for a ticketing system as an example. It shows how to combine NocoBase chart blocks, filter blocks, and JS blocks to build a data dashboard that supports linked filters, chart drilldowns, and custom styling.&lt;/p&gt;

&lt;p&gt;Although the example comes from a ticketing scenario, the same approach also applies to CRM, equipment maintenance, project management, approval workflows, customer success, and other business systems.&lt;/p&gt;

&lt;p&gt;💡 The point of this article is not to show how to write a large dashboard with a JS block. Instead, it explains how to combine NocoBase native blocks with JS blocks: native blocks handle standard capabilities, while JS blocks fill in the personalized experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm5ek7c9f4jfhxbirogpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm5ek7c9f4jfhxbirogpq.png" alt="JS 区块-6ypvx7.png" width="800" height="774"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Scenario Goal
&lt;/h2&gt;

&lt;p&gt;We want to build an Operations dashboard that helps operations or service teams quickly understand the current workload:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many tickets are still open&lt;/li&gt;
&lt;li&gt;Which tickets have SLA risks&lt;/li&gt;
&lt;li&gt;How new ticket volume is trending&lt;/li&gt;
&lt;li&gt;How tickets are distributed by status and priority&lt;/li&gt;
&lt;li&gt;How to view matching records after clicking a chart&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The page can be roughly divided into four layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Top filter area: time, service group, request type, priority, and SLA status&lt;/li&gt;
&lt;li&gt;KPI area: Open backlog, Unassigned, SLA warning, and more&lt;/li&gt;
&lt;li&gt;Chart analysis area: trends, status distribution, SLA distribution, and priority mix&lt;/li&gt;
&lt;li&gt;Drilldown detail area: show matching records after a chart click&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Start with the Right Building Approach
&lt;/h2&gt;

&lt;p&gt;When building a data dashboard, it is easy to turn the problem into a binary choice.&lt;/p&gt;

&lt;p&gt;Either you use only NocoBase native blocks, which are easy to configure but may feel less flexible in styling and interaction; or you write a large JS block and control queries, charts, filters, and drilldowns yourself, which means losing much of the convenience that low-code configuration provides.&lt;/p&gt;

&lt;p&gt;A better approach is to combine the two.&lt;/p&gt;

&lt;p&gt;In this Operations dashboard, we do not write the entire page as one large JS dashboard. Instead, we split responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The top filters use NocoBase’s built-in filter block.&lt;/li&gt;
&lt;li&gt;Trend charts, status distribution, and SLA distribution use native chart blocks.&lt;/li&gt;
&lt;li&gt;KPI cards and drilldown details use JS blocks.&lt;/li&gt;
&lt;li&gt;The filter block affects both chart blocks and JS blocks.&lt;/li&gt;
&lt;li&gt;After a chart click, the drilldown condition is passed to the JS detail block below.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The benefit is clear: standard statistics and filtering still keep NocoBase’s configuration capabilities, while personalized display and complex interactions are handled by JS blocks. The page is neither “configuration only” nor “all code.” Configuration and code each handle what they are good at.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. How to Customize Chart Block Styles
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnuz0q8xkowts36dqx9jc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnuz0q8xkowts36dqx9jc.png" alt="图表区块-mf0fqe.png" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In a NocoBase chart block, you can first define the aggregation logic with Query builder, and then adjust the style with a custom ECharts option.&lt;/p&gt;

&lt;p&gt;Using “ticket status statistics” as an example, Query builder can be configured as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data table: tickets&lt;/li&gt;
&lt;li&gt;Metric: id count, alias ticketCount&lt;/li&gt;
&lt;li&gt;Dimension: status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key point is that when customizing the style, you do not need to rewrite the query. You only need to process the chart display based on &lt;code&gt;ctx.data.objects&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isArray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;objects&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;objects&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This line reads the chart query result. Then define the status labels and colors:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;new&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;New&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Open&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;pending_customer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Pending customer&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;resolved&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Resolved&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;closed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Closed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;colors&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;new&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#1677ff&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#22a06b&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;pending_customer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#f59f00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;resolved&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#13c2c2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;closed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#8c8c8c&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is recommended to use &lt;code&gt;ctx.t()&lt;/code&gt; for all visible text so that multilingual support can be added later.&lt;/p&gt;

&lt;p&gt;When generating chart data, you can attach drilldown information to each chart data point:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ticketCount&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;itemStyle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;colors&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#8c8c8c&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;borderRadius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;ticketingDrilldown&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;label&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Status&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="na"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$eq&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The most important part here is &lt;code&gt;ticketingDrilldown&lt;/code&gt;. It is not a standard ECharts field. It is business context that we put into the data ourselves, and it will be used later when the user clicks the chart.&lt;/p&gt;

&lt;p&gt;Finally, return the ECharts option:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;48&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;42&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;tooltip&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;trigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;axis&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;axisPointer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;shadow&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;xAxis&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;category&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;row&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;yAxis&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;value&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;minInterval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;series&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Tickets&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;barWidth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The core idea of this part is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query builder is responsible for statistical data.&lt;/li&gt;
&lt;li&gt;Custom option is responsible for visual expression.&lt;/li&gt;
&lt;li&gt;Custom fields carry drilldown context.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Make the System Filter Block the Observation Scope for the Whole Page
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq9p94inyvmtx0x3je7j0.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq9p94inyvmtx0x3je7j0.gif" alt="筛选区-fep21g.gif" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The filter area in an operations dashboard should not be an isolated form. It represents the current observation scope of the entire page.&lt;/p&gt;

&lt;p&gt;For example, when a user selects a service group, a request type, and a creation time range, the KPI cards, trend chart, status distribution, and drilldown details should all be displayed under the same conditions. Otherwise, numbers from different blocks may conflict with each other, making it hard for users to know which result belongs to the current scope.&lt;/p&gt;

&lt;p&gt;Here, we directly use NocoBase’s built-in filter block instead of writing a custom filter component. The native filter block can be naturally bound to chart blocks, allowing the Chart block to continue using Query builder, permissions, refresh, and filtering mechanisms.&lt;/p&gt;

&lt;p&gt;The top &lt;code&gt;Dashboard scope&lt;/code&gt; can include these filter fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Created at&lt;/li&gt;
&lt;li&gt;Service group&lt;/li&gt;
&lt;li&gt;Request type&lt;/li&gt;
&lt;li&gt;Priority&lt;/li&gt;
&lt;li&gt;SLA status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For JS blocks, you only need to read the same set of filter conditions in code and convert them into a query filter. This allows KPI cards and drilldown details to stay consistent with native charts.&lt;/p&gt;

&lt;p&gt;The filter combination can be wrapped as a small function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;combineFilters&lt;/span&gt;&lt;span class="p"&gt;(...&lt;/span&gt;&lt;span class="nx"&gt;filters&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;parts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;filters&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;parts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$and&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;parts&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Count records by filter condition:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;countTickets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;resource&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;makeResource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;MultiRecordResource&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setResourceName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tickets&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setPageSize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setFilter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;refresh&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;meta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getMeta&lt;/span&gt;&lt;span class="p"&gt;?.()&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;{};&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Number&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;total&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key lines are:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setFilter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;refresh&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;JS blocks query business data through resource instead of directly writing SQL. This makes it easier to stay aligned with NocoBase permissions, data sources, and page runtime behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Use JS Blocks to Display KPI Cards
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk9euhsjfigqa9lu227mf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk9euhsjfigqa9lu227mf.gif" alt="筛选区-n6tphh.gif" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;KPI cards are better suited to JS blocks, because a KPI is usually not a single query. It is often a combination of several business metrics, such as unfinished tickets, unassigned tickets, SLA warning, SLA breached, new tickets, and resolved tickets.&lt;/p&gt;

&lt;p&gt;A JS block can re-query data according to the current filter scope and render the results as statistic cards.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Card&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Col&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Row&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Statistic&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Tag&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;libs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;antd&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;scopeFilter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;getDashboardScopeFilter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;openBacklog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;countTickets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nf"&gt;combineFilters&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;scopeFilter&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$notIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;resolved&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;closed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;cancelled&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;}),&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Row&lt;/span&gt; &lt;span class="nx"&gt;gutter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{[&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;]}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Col&lt;/span&gt; &lt;span class="nx"&gt;span&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Card&lt;/span&gt; &lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;small&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tag&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;blue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Active&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Tag&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Statistic&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Open backlog&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;openBacklog&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Card&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Col&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Row&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;,
&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key points for JS blocks are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;ctx.makeResource()&lt;/code&gt; to query data.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;ctx.libs.antd&lt;/code&gt; to render the UI.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;ctx.render()&lt;/code&gt; to output content.&lt;/li&gt;
&lt;li&gt;Re-render the JS block after filters change.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On a real page, filter and reset buttons can be configured with event flows. After they complete the native filter action, they can also refresh the KPI JS block and the drilldown JS block. This way, one click updates both the charts and the custom content under the same scope.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Link Chart Blocks with a JS Block for Drilldown
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzvdj1uz5vm0bd7w4w4p8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzvdj1uz5vm0bd7w4w4p8.gif" alt="图表点击下钻-4bo7ww.gif" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chart drilldown is a very useful dashboard interaction.&lt;/p&gt;

&lt;p&gt;In a ticketing scenario, when the user clicks the “Status: Open” bar, the detail area below shows all Open tickets. When the user clicks “SLA breached,” the detail area shows all overdue tickets.&lt;/p&gt;

&lt;p&gt;The implementation idea is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Attach &lt;code&gt;ticketingDrilldown&lt;/code&gt; to chart data points.&lt;/li&gt;
&lt;li&gt;Read the drilldown information from the chart event.&lt;/li&gt;
&lt;li&gt;Write the drilldown information into the target JS block context.&lt;/li&gt;
&lt;li&gt;Trigger the target JS block to re-render.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key code in the chart event is shown below. First, locate the drilldown JS block:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;DRILLDOWN_TARGET_UID&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;v7mioopm6rm&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getDrilldownTarget&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getModel&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;function&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;DRILLDOWN_TARGET_UID&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;engine&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;flowEngine&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;flowEngine&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;getModel&lt;/span&gt;&lt;span class="p"&gt;?.(&lt;/span&gt;&lt;span class="nx"&gt;DRILLDOWN_TARGET_UID&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then write the drilldown condition from the chart click into the target block:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;applyDrilldown&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;drilldown&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;drilldown&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;target&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;getDrilldownTarget&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;defineProperty&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;defineProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ticketingDashboardDrilldown&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;drilldown&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rerender&lt;/span&gt;&lt;span class="p"&gt;?.();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The most important lines are:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;defineProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ticketingDashboardDrilldown&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;drilldown&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rerender&lt;/span&gt;&lt;span class="p"&gt;?.();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first line passes the drilldown condition to the JS block, and the second line triggers the JS block to refresh.&lt;/p&gt;

&lt;p&gt;Finally, bind the chart click event:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;clickHandler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;applyDrilldown&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;ticketingDrilldown&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;clickHandler&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;off&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;clickHandler&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is strongly recommended to return a cleanup function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;off&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;clickHandler&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This cleans up old events when the chart is reconfigured or re-rendered, avoiding duplicate event bindings.&lt;/p&gt;

&lt;p&gt;The chart click event code above applies to &lt;a href="https://github.com/nocobase/nocobase/releases/tag/v2.2.0-beta.10" rel="noopener noreferrer"&gt;v2.2.0-beta.10&lt;/a&gt; and later. For earlier versions, refer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;off&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;clickHandler&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. How the Drilldown JS Block Displays Details
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4blmij6n5mvzhg3dq9j5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4blmij6n5mvzhg3dq9j5.png" alt="下钻 JS 区块-0jg2lt.png" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The drilldown JS block reads the &lt;code&gt;ticketingDashboardDrilldown&lt;/code&gt; written earlier, and then queries data based on its filter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;drilldown&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;ticketingDashboardDrilldown&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;drilldown&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Alert&lt;/span&gt;
      &lt;span class="nx"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;info&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
      &lt;span class="nx"&gt;showIcon&lt;/span&gt;
      &lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Select a chart segment to inspect matching tickets&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;
    &lt;span class="sr"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;,
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the user has not clicked a chart yet, a prompt is displayed. After a click, tickets are queried according to &lt;code&gt;drilldown.filter&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;resource&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;makeResource&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;MultiRecordResource&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setResourceName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;tickets&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setFilter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;drilldown&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setPageSize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;refresh&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getData&lt;/span&gt;&lt;span class="p"&gt;?.()&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then render the table:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Table&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Typography&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;libs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;antd&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Typography&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Title&lt;/span&gt; &lt;span class="nx"&gt;level&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Drilldown&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)}:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;drilldown&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;label&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Typography.Title&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Table&lt;/span&gt;
      &lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;small&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
      &lt;span class="nx"&gt;rowKey&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
      &lt;span class="nx"&gt;dataSource&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;rows&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nx"&gt;pagination&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nx"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Ticket No&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="na"&gt;dataIndex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ticketNo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Title&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="na"&gt;dataIndex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Status&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="na"&gt;dataIndex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;status&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;t&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Priority&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="na"&gt;dataIndex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;priority&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;]}&lt;/span&gt;
    &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;,
&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To clear the drilldown condition, you can refer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;clearChartDrilldown&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;defineProperty&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;defineProperty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ticketingDashboardDrilldown&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;rerender&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;function&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;ctx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rerender&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key points here are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The chart only passes the filter.&lt;/li&gt;
&lt;li&gt;The JS block is responsible for querying and displaying details.&lt;/li&gt;
&lt;li&gt;The same drilldown block can be reused by clicks from different charts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practical Recommendations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Do Not Rush to Code the Whole Complex Page
&lt;/h3&gt;

&lt;p&gt;The most important lesson from this page is: do not treat native capabilities and JS capabilities as opposites.&lt;/p&gt;

&lt;p&gt;If a capability is already native to NocoBase, such as filtering, chart queries, table display, permission control, use the native block first. This allows you to continue configuring fields, filter conditions, and chart metrics in the interface later.&lt;/p&gt;

&lt;p&gt;JS blocks are better for parts that native blocks are not good at, such as combining multiple metrics into KPI cards, applying special card styles, showing custom details after a chart click, or passing business context between different blocks.&lt;/p&gt;

&lt;p&gt;In other words, native blocks handle “configurable standard capabilities,” while JS blocks handle “business-specific personalized experiences.” This is the most reusable building approach from this dashboard.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Use Chart Block Query Builder First for Simple Statistics
&lt;/h3&gt;

&lt;p&gt;This preserves NocoBase’s standard query, permission, filtering, and refresh capabilities. Only use a custom ECharts option for visual optimization when the default chart style cannot express the business emphasis clearly.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Use JS Blocks First for KPI Cards
&lt;/h3&gt;

&lt;p&gt;KPIs usually need multiple queries, condition combinations, and custom layouts, so JS blocks are more flexible. This is especially clear when KPIs need to respond to the same set of system filter conditions.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Return Cleanup for Chart Events
&lt;/h3&gt;

&lt;p&gt;Recommended pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// handle click&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;chart&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;off&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not directly use &lt;code&gt;chart.off('click')&lt;/code&gt; to clear all click events, because this may accidentally remove listeners used by the chart block or configuration panel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let AI Help You Build It
&lt;/h2&gt;

&lt;p&gt;This type of dashboard is very suitable for AI-assisted generation, because it involves data models, statistical definitions, chart styling, and page interactions at the same time. You can give this article to an AI tool and ask questions based on the prompt below.&lt;/p&gt;

&lt;p&gt;You can ask:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;I am building an operations dashboard for a ticketing system with NocoBase.
Please use the ticketing scenario as an example and help me design an Operations dashboard.

The tickets table contains:
ticketNo, title, status, priority, slaStatus,
requestType, serviceGroup, assignee, createdAt, updatedAt.

The page needs:
&lt;span class="p"&gt;1.&lt;/span&gt; Top filters: Created at, Service group, Request type, Priority, SLA status.
&lt;span class="p"&gt;2.&lt;/span&gt; KPI cards: Open backlog, Unassigned, SLA warning, SLA breached, New tickets, Resolved tickets.
&lt;span class="p"&gt;3.&lt;/span&gt; Charts: Created tickets trend, Ticket status, SLA status, Priority mix.
&lt;span class="p"&gt;4.&lt;/span&gt; After a chart click, the JS block below displays a matching Ticket drilldown table.
&lt;span class="p"&gt;5.&lt;/span&gt; The chart style should fit an operations dashboard, with clear colors and a compact layout.
&lt;span class="p"&gt;6.&lt;/span&gt; All JS text should use ctx.t().
&lt;span class="p"&gt;7.&lt;/span&gt; Chart events should use chart.on and return a cleanup function.
&lt;span class="p"&gt;8.&lt;/span&gt; Prefer NocoBase native filter blocks and chart blocks. Use JS blocks only for KPIs, drilldown details, special styling, and cross-block interactions. Do not write the whole page as one large JS block.

Please provide the configuration approach for each block and mark the key JS code.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you already have a page, you can also ask AI to optimize it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;This is my current NocoBase dashboard design:
The top area is a filter block, the middle area has four charts, and the bottom area has a drilldown JS block.
Please help me optimize it from the perspective of operations staff:
&lt;span class="p"&gt;1.&lt;/span&gt; Which KPIs should be displayed?
&lt;span class="p"&gt;2.&lt;/span&gt; Do the charts need to be linked?
&lt;span class="p"&gt;3.&lt;/span&gt; Which columns should be shown in drilldown details?
&lt;span class="p"&gt;4.&lt;/span&gt; How should JS blocks and chart events be organized?
&lt;span class="p"&gt;5.&lt;/span&gt; Which code should be placed in the chart custom option, and which code should be placed in the JS block?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helps the AI generate content that is closer to real business scenarios instead of isolated code snippets.&lt;/p&gt;

&lt;p&gt;If you choose to let AI help you build, back up the project with Backup Manager before you start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reference Documentation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/en/data-visualization/guide/chart-options" rel="noopener noreferrer"&gt;Chart configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/en/runjs" rel="noopener noreferrer"&gt;Frontend RunJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/en/interface-builder/blocks/filter-blocks/form" rel="noopener noreferrer"&gt;Filter form&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/en/ai-builder/ui-builder" rel="noopener noreferrer"&gt;AI Builder - UI Builder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://echarts.apache.org/en/option.html" rel="noopener noreferrer"&gt;ECharts Options&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>lowcode</category>
    </item>
    <item>
      <title>What Is AI No-Code? A Practical Guide to No-Code Platforms in the AI Era</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Thu, 09 Jul 2026 09:04:41 +0000</pubDate>
      <link>https://dev.to/nocobase/what-is-ai-no-code-a-practical-guide-to-no-code-platforms-in-the-ai-era-1985</link>
      <guid>https://dev.to/nocobase/what-is-ai-no-code-a-practical-guide-to-no-code-platforms-in-the-ai-era-1985</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/what-is-ai-no-code" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/what-is-ai-no-code&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Do you also think no-code belongs to the “pre-AI era”?&lt;/p&gt;

&lt;p&gt;Now that AI can write code, generate applications, and automate workflows, do no-code platforms still need to exist?&lt;/p&gt;

&lt;p&gt;The answer is yes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgn18r6wl5t1iq2wwiwxk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgn18r6wl5t1iq2wwiwxk.png" alt="ai-nocode" width="799" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Trends shows that search interest in &lt;strong&gt;“AI no code” has risen quickly over the past year.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;People are not giving up on no-code. They are understanding it in a new way: not just dragging components to build pages, but using AI, natural language, and visual platforms to build applications, automate workflows, and create internal business systems faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The problem is that many products can now be called AI no-code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lovable, Zapier, and &lt;a href="https://www.nocobase.com/en" rel="noopener noreferrer"&gt;NocoBase&lt;/a&gt; all fall under the broader category of AI no-code, but they solve very different problems and suit very different users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmlku81f3mo26gms9yrbr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmlku81f3mo26gms9yrbr.jpg" alt="Lovable-gcelwp.jpg" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article will answer two questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;What is AI no-code?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How do you choose the right AI no-code tool?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. →&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt; Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;9 Open-Source AI No-Code Tools Worth Watching on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is AI No-Code?
&lt;/h2&gt;

&lt;p&gt;At the most basic level, &lt;strong&gt;AI no-code refers to tools or platforms that combine AI capabilities with no-code development methods.&lt;/strong&gt; Users do not need to write code from scratch. Instead, they can use natural language, visual configuration, prebuilt components, workflow orchestration, and similar methods to build applications, automate processes, or let AI participate in specific business tasks.&lt;/p&gt;

&lt;p&gt;But this definition only explains part of the picture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Today, “AI no-code” is no longer a product category with clear boundaries.&lt;/strong&gt; Many tools can be related to AI no-code, but their product logic can be completely different.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No-code platforms&lt;/strong&gt; are adding AI to help users build pages, forms, data models, and business workflows faster.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low-code platforms&lt;/strong&gt; are using AI to help developers generate code, configure APIs, and extend systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI app builders&lt;/strong&gt; let users generate pages, components, or application prototypes directly from prompts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI automation tools&lt;/strong&gt; connect multiple tools and use AI to summarize, classify, judge, and trigger actions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These categories also continue to overlap. An AI app builder may offer a database. An automation tool may support simple pages. A no-code platform may connect to AI Agents and workflows.&lt;/p&gt;

&lt;p&gt;It can get confusing.&lt;/p&gt;

&lt;p&gt;A clearer way to think about it is this: stop asking whether a tool is truly AI no-code or where its category boundary sits.&lt;/p&gt;

&lt;p&gt;Instead, ask &lt;strong&gt;what problem it helps you solve.&lt;/strong&gt; Once you look at it this way, the choices become much easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Need 1: Build a Working Application Quickly
&lt;/h2&gt;

&lt;p&gt;This is one of the most common needs.&lt;/p&gt;

&lt;p&gt;AI can write code quickly and well. If you ask ChatGPT, Claude, or another AI coding tool to “build a customer management page,” they can generate HTML, React components, or even a full block of frontend code.&lt;/p&gt;

&lt;p&gt;But the issue is that &lt;strong&gt;code is not the same as an application.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After AI generates code, you still need to handle many things yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Put the code into a project.&lt;/li&gt;
&lt;li&gt;Configure the development environment.&lt;/li&gt;
&lt;li&gt;Manage dependencies and errors.&lt;/li&gt;
&lt;li&gt;Connect a database.&lt;/li&gt;
&lt;li&gt;Adjust page interactions.&lt;/li&gt;
&lt;li&gt;Deploy the application.&lt;/li&gt;
&lt;li&gt;Make it accessible for others to test.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For developers, these may be routine tasks. For product managers, designers, founders, and business users, they are still a lot of work.&lt;/p&gt;

&lt;p&gt;This is where this type of AI no-code tool becomes valuable.&lt;/p&gt;

&lt;p&gt;These tools do more than “generate code.” They combine generation, preview, editing, running, and deployment. Users only need to describe what they want, and the platform can generate the application interface, provide online preview, support interaction changes, and help with deployment.&lt;/p&gt;

&lt;p&gt;Typical products include:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://v0.app/" rel="noopener noreferrer"&gt;v0&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;UI and Frontend Interface Generation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can describe the page you want in natural language, and v0 generates the corresponding interface and components. It is useful for quickly creating product interfaces, admin panels, landing pages, or interactive prototypes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkhwbnv0h85es6xfxnncl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkhwbnv0h85es6xfxnncl.png" alt="v0-yh1jxu.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://lovable.dev/" rel="noopener noreferrer"&gt;Lovable&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Generate a Complete Web App From a Prompt&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lovable does not only focus on pages. It also tries to generate application structure, interaction logic, and basic features, making it suitable for turning a product idea into a working MVP quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff3bymmaya3985zlpq5v0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff3bymmaya3985zlpq5v0.png" alt="Lovable1-ehxl2p.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://bolt.new/" rel="noopener noreferrer"&gt;Bolt&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Generate and Run Full-Stack Applications Online&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Users can describe requirements, generate code, install dependencies, run projects, and debug applications in the browser, without first setting up a complex local development environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxbe6fvjhhg8rcu5cwfhh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxbe6fvjhhg8rcu5cwfhh.png" alt="bolt-26bw6l.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://replit.com/" rel="noopener noreferrer"&gt;Replit&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Develop and Deploy Applications Online&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Replit is an online development environment. With AI, it can help users generate code, debug projects, and run and publish applications directly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh015gppmcqrc5ms5asot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh015gppmcqrc5ms5asot.png" alt="Replit-4s6olk.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Need 2: Build Business Systems That Can Run Long Term
&lt;/h2&gt;

&lt;p&gt;The second major need appears in enterprise scenarios.&lt;/p&gt;

&lt;p&gt;The question becomes: &lt;strong&gt;Can I use AI and no-code to build a business system that a company can truly use over the long term?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I want to build a CRM to manage customers, contacts, opportunities, and follow-up records.&lt;/li&gt;
&lt;li&gt;I want to build a ticketing system so customer issues can be submitted, assigned, handled, and tracked.&lt;/li&gt;
&lt;li&gt;I want to build an approval system for leave requests, reimbursements, procurement, contracts, and other processes.&lt;/li&gt;
&lt;li&gt;I want to build an inventory or asset management system where data, status, owners, and operation records are clear and traceable.&lt;/li&gt;
&lt;li&gt;I want to build an internal operations system where different roles collaborate in the same system.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core of this need is: &lt;strong&gt;how to combine data, pages, permissions, workflows, and AI capabilities into a business system that can keep running.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where enterprise business-system AI no-code platforms are needed.&lt;/p&gt;

&lt;p&gt;They usually provide data modeling, page building, permission control, workflows, automation, audit logs, API integration, plugin extension, private deployment, and other capabilities. AI is not a standalone application here. It participates in system building and business operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en" rel="noopener noreferrer"&gt;NocoBase&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;An Open-Source, Self-Hosted, Extensible AI No-Code Platform for Enterprise Business Systems&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NocoBase provides the core capabilities needed for enterprise business systems, including data models, page building, permission control, workflows, plugin extension, and private deployment. &lt;strong&gt;It gives AI a platform foundation for real business scenarios.&lt;/strong&gt; AI understands requirements, assists generation, and improves efficiency. NocoBase carries the data, permissions, processes, audits, and long-term iteration.&lt;/p&gt;

&lt;p&gt;This is why NocoBase is better suited as a first choice for applying AI in real enterprise scenarios. It does not only give AI a generation entry point. It gives AI a business system foundation that can run for the long term, continue to evolve, keep permissions under control, and protect business data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqn6nfiqiynwwutg9yejd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqn6nfiqiynwwutg9yejd.png" alt="NocoBase-ugxurh.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://retool.com/" rel="noopener noreferrer"&gt;Retool&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;An Internal Tool Builder for Development Teams&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Retool can quickly connect databases, APIs, and internal services to build admin panels, data operation interfaces, and enterprise internal tools. It also provides AI-related capabilities for assisted building and automation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpnqlssg9jafajimyrzpn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpnqlssg9jafajimyrzpn.png" alt="Retool-2xtmdg.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.appsmith.com/" rel="noopener noreferrer"&gt;Appsmith&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;An Open-Source Low-Code Platform for Internal Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Like NocoBase, Appsmith is also open source. It is suitable for developers and IT teams building dashboards, admin panels, and internal applications. It supports database and API connections and can also be self-hosted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3u25zumm1ehjp915siln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3u25zumm1ehjp915siln.png" alt="Appsmith-syaxje.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://budibase.com/" rel="noopener noreferrer"&gt;Budibase&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;An Open-Source Platform for Business Applications and Internal Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Budibase is suitable for building forms, approvals, operations systems, and internal management tools. It supports data source connections, automation, and self-hosting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fftv7x2l9b62k8ycbtmvu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fftv7x2l9b62k8ycbtmvu.png" alt="Budibase-0dl8cq.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Need 3: Let Multiple Tools Work Together Automatically
&lt;/h2&gt;

&lt;p&gt;After AI appeared, many people assumed automation would become simple.&lt;/p&gt;

&lt;p&gt;For example, you can ask AI to summarize emails, extract form information, generate replies, and judge customer intent. Viewed separately, AI can indeed complete these tasks.&lt;/p&gt;

&lt;p&gt;But in real work, tasks usually do not happen in isolation.&lt;/p&gt;

&lt;p&gt;A customer lead may come from a website form, then need to be synced to a CRM, notify sales, and create a follow-up task.&lt;/p&gt;

&lt;p&gt;A user feedback email may need to be summarized by AI, classified by issue type, and assigned to the right team.&lt;/p&gt;

&lt;p&gt;A contract or invoice may need key information extracted, written into a spreadsheet or system, and then trigger an approval workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Letting AI participate in a full business process, while different tools work together automatically,&lt;/strong&gt; is the value of AI workflow automation tools.&lt;/p&gt;

&lt;p&gt;These tools are not mainly for generating application pages. They connect different systems, place AI inside workflow nodes, and let data, messages, and tasks move automatically.&lt;/p&gt;

&lt;p&gt;Typical products include:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://zapier.com/" rel="noopener noreferrer"&gt;Zapier&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Automation Between SaaS Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Zapier supports a large number of common applications. It is suitable for connecting tools such as Gmail, Slack, HubSpot, Airtable, and Google Sheets to automate notifications, syncing, task creation, AI processing, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3wbxinhln3zdxon9w2c5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3wbxinhln3zdxon9w2c5.png" alt="Zapier-0sw1p7.png" width="799" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.make.com/" rel="noopener noreferrer"&gt;Make&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Visual Multi-Step Automation Workflows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Make is suitable for more complex conditional logic, data transformation, and multi-application collaboration. Users can design automation tasks in a flowchart-style interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F83uxqaxskq0tg0evje8q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F83uxqaxskq0tg0evje8q.png" alt="Make-msuo5o.png" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;n8n&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Self-Hosted and Extensible Workflow Automation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As a popular GitHub project, n8n is suitable for technical teams and enterprise users who need to connect APIs, databases, internal systems, and AI services to build more controllable automation workflows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxvhzx1skhhaz97qmlyjd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxvhzx1skhhaz97qmlyjd.png" alt="n8n-illdq7.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.activepieces.com/" rel="noopener noreferrer"&gt;Activepieces&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Open-Source Automation and Business Process Connections&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Activepieces is suitable for teams that want to use open-source solutions to build automation workflows. It can also handle data movement and AI tasks across common SaaS tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmxv1xuhjtyhtsg2k6yb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmxv1xuhjtyhtsg2k6yb1.png" alt="Activepieces-qwg98g.png" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Need 4: Build AI Applications or AI Agents
&lt;/h2&gt;

&lt;p&gt;The last type of need is to build an &lt;strong&gt;AI application&lt;/strong&gt; directly.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I want to build an enterprise knowledge-base Q&amp;amp;A bot.&lt;/li&gt;
&lt;li&gt;I want to build a RAG application that reads documents and answers questions.&lt;/li&gt;
&lt;li&gt;I want to build a customer service Agent that understands user questions and calls tools.&lt;/li&gt;
&lt;li&gt;I want to combine multiple models, prompts, knowledge bases, and workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The core of this need is: &lt;strong&gt;how to package large model capabilities into a usable AI application.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is where AI application building platforms and AI Agent platforms become valuable.&lt;/p&gt;

&lt;p&gt;They usually provide prompt orchestration, model selection, knowledge base integration, RAG, tool calling, Agent workflows, API publishing, and similar capabilities. Users can build Chatbots, AI Workflows, or Agent applications without writing everything from scratch.&lt;/p&gt;

&lt;p&gt;Typical products include:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dify.ai/" rel="noopener noreferrer"&gt;Dify&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;LLM Application Development Platform&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dify is suitable for building Chatbots, RAG applications, Agent workflows, and enterprise knowledge-base Q&amp;amp;A. It provides model integration, prompt orchestration, knowledge bases, workflows, and application publishing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcsmgstgzpkg70sgqbsvc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcsmgstgzpkg70sgqbsvc.png" alt="Dify-4wiain.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://flowiseai.com/" rel="noopener noreferrer"&gt;Flowise&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Visual Builder for LangChain Applications&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Flowise is suitable for developers and AI application teams. It uses a node-based interface to orchestrate LLMs, tools, memory, vector databases, and Agent flows.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9t9o7ntyxetk3q9bg4vn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9t9o7ntyxetk3q9bg4vn.png" alt="Flowise-w7v42t.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.langflow.org/" rel="noopener noreferrer"&gt;LangFlow&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Visual AI Workflow and Agent Orchestration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;LangFlow is suitable for building complex LLM call chains, RAG workflows, and Agent prototypes. Users can combine AI applications through a component-based approach.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4vg1o9vg9p19yge01pjx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4vg1o9vg9p19yge01pjx.png" alt="LangFlow-kdxvuw.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Product Decision Table
&lt;/h2&gt;

&lt;p&gt;The table below lists all products discussed in this article. You can quickly compare their characteristics, open-source status, and best-fit scenarios.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Product&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Open Source&lt;/th&gt;
&lt;th&gt;Typical Use Cases&lt;/th&gt;
&lt;th&gt;Target Users&lt;/th&gt;
&lt;th&gt;Core Capabilities&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;Enterprise business-system AI no-code platform&lt;/td&gt;
&lt;td&gt;✅ Open source&lt;/td&gt;
&lt;td&gt;CRM, tickets, approvals, inventory, asset management, internal business systems&lt;/td&gt;
&lt;td&gt;Enterprise IT, development teams, software agencies, business teams&lt;/td&gt;
&lt;td&gt;Data models, page building, permissions, workflows, plugins, self-hosting, AI-assisted building&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retool&lt;/td&gt;
&lt;td&gt;Enterprise business-system AI no-code platform&lt;/td&gt;
&lt;td&gt;Closed source&lt;/td&gt;
&lt;td&gt;Internal tools, admin panels, database operation interfaces&lt;/td&gt;
&lt;td&gt;Development teams, enterprise IT&lt;/td&gt;
&lt;td&gt;Internal tool building, database connections, component library, workflows, AI features&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Appsmith&lt;/td&gt;
&lt;td&gt;Enterprise business-system AI no-code platform&lt;/td&gt;
&lt;td&gt;✅ Open source&lt;/td&gt;
&lt;td&gt;Internal tools, admin panels, data operation apps&lt;/td&gt;
&lt;td&gt;Developers, IT teams&lt;/td&gt;
&lt;td&gt;Open-source low-code, UI components, database/API connections, self-hosting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Budibase&lt;/td&gt;
&lt;td&gt;Enterprise business-system AI no-code platform&lt;/td&gt;
&lt;td&gt;✅ Open source&lt;/td&gt;
&lt;td&gt;Internal tools, approvals, forms, operations systems&lt;/td&gt;
&lt;td&gt;IT teams, SMBs, developers&lt;/td&gt;
&lt;td&gt;App building, data source connections, automation, self-hosting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lovable&lt;/td&gt;
&lt;td&gt;AI prototype generation tool&lt;/td&gt;
&lt;td&gt;Closed source&lt;/td&gt;
&lt;td&gt;MVPs, Web App prototypes, lightweight apps&lt;/td&gt;
&lt;td&gt;Founders, product teams, indie developers&lt;/td&gt;
&lt;td&gt;Prompt-based app generation, frontend/backend generation, fast deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bolt&lt;/td&gt;
&lt;td&gt;AI prototype generation tool&lt;/td&gt;
&lt;td&gt;Closed source&lt;/td&gt;
&lt;td&gt;Full-stack app generation, demos, small tools&lt;/td&gt;
&lt;td&gt;Developers, founders, product teams&lt;/td&gt;
&lt;td&gt;Natural-language code generation, online development environment, app preview&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zapier&lt;/td&gt;
&lt;td&gt;AI workflow automation tool&lt;/td&gt;
&lt;td&gt;Closed source&lt;/td&gt;
&lt;td&gt;Cross-SaaS automation, lead routing, notifications, data sync&lt;/td&gt;
&lt;td&gt;Operations, marketing, sales, business teams&lt;/td&gt;
&lt;td&gt;SaaS integrations, triggers, automation workflows, AI steps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Make&lt;/td&gt;
&lt;td&gt;AI workflow automation tool&lt;/td&gt;
&lt;td&gt;Closed source&lt;/td&gt;
&lt;td&gt;Multi-step automation, data processing, cross-tool workflows&lt;/td&gt;
&lt;td&gt;Operations teams, automation specialists, growth teams&lt;/td&gt;
&lt;td&gt;Visual workflow orchestration, API integration, conditional logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;n8n&lt;/td&gt;
&lt;td&gt;AI workflow automation tool&lt;/td&gt;
&lt;td&gt;✅ Open source&lt;/td&gt;
&lt;td&gt;Self-hosted automation, AI workflows, system integration&lt;/td&gt;
&lt;td&gt;Technical teams, automation engineers, enterprise IT&lt;/td&gt;
&lt;td&gt;Workflow orchestration, self-hosting, API integration, AI nodes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Activepieces&lt;/td&gt;
&lt;td&gt;AI workflow automation tool&lt;/td&gt;
&lt;td&gt;✅ Open source&lt;/td&gt;
&lt;td&gt;Open-source automation, business process connections, AI automation&lt;/td&gt;
&lt;td&gt;Technical teams, operations teams, SMBs&lt;/td&gt;
&lt;td&gt;Visual automation, open-source deployment, app connectors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dify&lt;/td&gt;
&lt;td&gt;AI application / Agent platform&lt;/td&gt;
&lt;td&gt;✅ Open source&lt;/td&gt;
&lt;td&gt;Chatbots, RAG applications, AI Agents, enterprise knowledge-base Q&amp;amp;A&lt;/td&gt;
&lt;td&gt;AI application developers, technical teams, enterprise IT&lt;/td&gt;
&lt;td&gt;LLM application development, prompt orchestration, RAG, Agent workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flowise&lt;/td&gt;
&lt;td&gt;AI application / Agent platform&lt;/td&gt;
&lt;td&gt;✅ Open source&lt;/td&gt;
&lt;td&gt;Visual LangChain orchestration, RAG, Agent prototypes&lt;/td&gt;
&lt;td&gt;AI developers, technical teams&lt;/td&gt;
&lt;td&gt;Visual AI flows, LangChain integration, node-based orchestration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LangFlow&lt;/td&gt;
&lt;td&gt;AI application / Agent platform&lt;/td&gt;
&lt;td&gt;✅ Open source&lt;/td&gt;
&lt;td&gt;AI Workflow, RAG, model call flows&lt;/td&gt;
&lt;td&gt;AI engineers, developers, research teams&lt;/td&gt;
&lt;td&gt;Visual LLM orchestration, component-based flows, Agent building&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What Is the Difference Between AI No-Code and Traditional No-Code?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Traditional no-code mainly relies on drag-and-drop interfaces, forms, components, and visual configuration. AI no-code further introduces natural language, AI generation, intelligent automation, and AI Agent capabilities.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;However, AI no-code is not simply adding an AI button to a traditional no-code platform. Valuable AI no-code tools need to bring AI into specific application building, business processes, and data processing scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What Is the Difference Between an AI App Builder and an AI No-Code Platform?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI app builders focus more on quickly generating application prototypes, while AI no-code platforms focus more on building applications or business systems that can be used continuously.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI app builders such as v0, Lovable, and Bolt are strong in generation speed, making them suitable for MVPs, demos, product prototypes, and lightweight applications.&lt;/p&gt;

&lt;p&gt;AI no-code platforms such as NocoBase pay more attention to data models, pages, permissions, workflows, audit logs, plugin extension, and private deployment, making them more suitable for long-term enterprise use.&lt;/p&gt;

&lt;p&gt;So the key is whether you need a prototype or a real system that supports business operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How Should Enterprises Choose AI No-Code Tools?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Enterprises should first clarify their goal: are they building a prototype, automation, an AI Agent, or a long-running business system?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the goal is to build a system that the enterprise will use long term, focus on data models, permission control, workflows, audit logs, extensibility, private deployment, and security.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. What Are the Advantages of Open-Source AI No-Code Tools?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Open-source AI no-code tools offer more control, extensibility, and self-hosting capabilities, especially for scenarios involving enterprise data, permissions, workflows, and long-term maintenance.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In AI scenarios, tools often touch customer data, business processes, internal knowledge bases, ticket content, approval records, and employee information. Enterprises care more about where data is stored, how models are called, whether the system can be privately deployed, and whether it can be extended or migrated in the future.&lt;/p&gt;

&lt;p&gt;The closer a tool gets to core enterprise business systems, the more important open source, self-hosting, and extensibility become.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. What Type of AI No-Code Tool Is NocoBase?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is an enterprise business-system AI no-code platform, suitable for building long-running internal tools and business systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It can be used to build real business systems such as CRM, ticketing, approvals, inventory, asset management, expense reimbursement, and customer portals.&lt;/p&gt;

&lt;p&gt;NocoBase is better suited for teams that want to apply AI to real enterprise scenarios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Back to the question at the beginning: &lt;strong&gt;Does no-code still matter after AI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The clearer answer is: no-code has not been replaced by AI. It has entered a new stage because of AI.&lt;/p&gt;

&lt;p&gt;AI makes software building faster, but enterprises still need systems that are maintainable, extensible, permission-controlled, secure, and able to run over the long term.&lt;/p&gt;

&lt;p&gt;That is the real value of no-code platforms in the AI era.&lt;/p&gt;

&lt;p&gt;If this article helped you better understand AI no-code, feel free to share it with friends who are choosing AI tools, no-code platforms, or internal business system solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;9 Open-Source AI No-Code Tools on GitHub Worth Watching &lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open Source AI Agent Tools with the Most GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;5 Open-Source Internal Tools to Use with Hermes Agent&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;OpenClaw and 5 Open-Source Tools for Monitoring Business Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/opencode-open-source-tools-ai-agents" rel="noopener noreferrer"&gt;What Open-Source Tools Work Well with OpenCode? 5 Projects to Try&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/building-internal-tools-with-codex" rel="noopener noreferrer"&gt;Building Internal Tools with Codex: 6 Open-Source Projects for Developers&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-tools-after-claude-code" rel="noopener noreferrer"&gt;After Claude Code: 6 Open-Source Tools You Should Know&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-enterprise-software-development" rel="noopener noreferrer"&gt;Top 10 Open-Source AI And No-Code Tools for Enterprise Software Development&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/8-open-source-ai-agent-platforms-for-internal-tools" rel="noopener noreferrer"&gt;8 Open-Source AI Agent Platforms for Building Internal Tools&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/the-best-self-hosted-crm-for-enterprise-teams" rel="noopener noreferrer"&gt;The Best Enterprise-Grade Self-Hosted CRMs with RBAC, AI, and Open API Support&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>news</category>
    </item>
    <item>
      <title>Weekly Updates: Add Mistral AI as an LLM Provider</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Tue, 07 Jul 2026 08:35:03 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updatesadd-mistral-ai-as-an-llm-provider-496l</link>
      <guid>https://dev.to/nocobase/weekly-updatesadd-mistral-ai-as-an-llm-provider-496l</guid>
      <description>&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated across three branches: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;next&lt;/code&gt;, and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: The most stable version to date, recommended for installation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;: Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It is mainly used to collect feedback from test users and further optimize features. Ideal for test users who want to experience new features early and provide feedback.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;: Alpha version, contains the latest feature code, may be incomplete or unstable, and is mainly used for internal development and rapid iteration. Suited for technical users interested in cutting-edge product capabilities, but not recommended for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.1.19
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-03&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Fixed revision creation events failing on RabbitMQ brokers that reject &lt;code&gt;:&lt;/code&gt; and &lt;code&gt;@&lt;/code&gt; in queue names. (&lt;a href="https://github.com/nocobase/nocobase/pull/9989" rel="noopener noreferrer"&gt;#9989&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed iframe sanitization for v2 Markdown rendering and editing. (&lt;a href="https://github.com/nocobase/nocobase/pull/9986" rel="noopener noreferrer"&gt;#9986&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed routed popup creation forms losing prefilled field values such as Calendar V2 start and end dates. (&lt;a href="https://github.com/nocobase/nocobase/pull/9874" rel="noopener noreferrer"&gt;#9874&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed V2 table data scope filters so missing URL query parameters no longer block table data queries. (&lt;a href="https://github.com/nocobase/nocobase/pull/9869" rel="noopener noreferrer"&gt;#9869&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed an issue where multiline text field values could not be set via ctx.setFormValues. (&lt;a href="https://github.com/nocobase/nocobase/pull/9959" rel="noopener noreferrer"&gt;#9959&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed AI checkpoint cleanup failures in underscored database environments. (&lt;a href="https://github.com/nocobase/nocobase/pull/9982" rel="noopener noreferrer"&gt;#9982&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed AI employee workflow nodes failing to resume correctly in loops after a previous AI employee tool call. (&lt;a href="https://github.com/nocobase/nocobase/pull/9980" rel="noopener noreferrer"&gt;#9980&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Hidden the file manager attachments list API and return 404 when it is requested. (&lt;a href="https://github.com/nocobase/nocobase/pull/9978" rel="noopener noreferrer"&gt;#9978&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed an issue where workflow execution node results could remain stuck in a loading state. (&lt;a href="https://github.com/nocobase/nocobase/pull/9991" rel="noopener noreferrer"&gt;#9991&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed PostgreSQL and Kingbase backup restore command execution when paths or arguments contain spaces or special characters. (&lt;a href="https://github.com/nocobase/nocobase/pull/9946" rel="noopener noreferrer"&gt;#9946&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed an issue where newly created backup files could not be uploaded to cloud storage. (&lt;a href="https://github.com/nocobase/nocobase/pull/9981" rel="noopener noreferrer"&gt;#9981&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Fixed an issue where chart blocks would trigger unnecessary refreshes when closing a popup. (&lt;a href="https://github.com/nocobase/nocobase/pull/9970" rel="noopener noreferrer"&gt;#9970&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI templates]&lt;/strong&gt; Fixed an issue where the field template menu was incorrectly displayed in subforms. (&lt;a href="https://github.com/nocobase/nocobase/pull/9960" rel="noopener noreferrer"&gt;#9960&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Mobile (deprecated)]&lt;/strong&gt; Fix responsive v1 admin pages so view actions open as subpages and select fields use mobile popups (&lt;a href="https://github.com/nocobase/nocobase/pull/9974" rel="noopener noreferrer"&gt;#9974&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Version control]&lt;/strong&gt; Fixed version-control revision creation on RabbitMQ brokers that reject &lt;code&gt;:&lt;/code&gt; and &lt;code&gt;@&lt;/code&gt; in queue names. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix the error that may occur when opening approval details without configuration permissions by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.18
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-02&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Support manual Nginx/Caddy proxy config generation, allow Docker deployments without bundled Nginx, and align proxy and CDN-related runtime configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9943" rel="noopener noreferrer"&gt;#9943&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Clarified the security guidance for PDF previews using external storage. (&lt;a href="https://github.com/nocobase/nocobase/pull/9901" rel="noopener noreferrer"&gt;#9901&lt;/a&gt;) by mytharcher
Reference: &lt;a href="https://github.com/nocobase/nocobase/blob/docs/file-preview-security/docs/docs/en/file-manager/file-preview/index.md" rel="noopener noreferrer"&gt;File Preview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[utils]&lt;/strong&gt; Added warnings for server-side outbound requests that target potential SSRF-risk addresses when &lt;code&gt;SERVER_REQUEST_WHITELIST&lt;/code&gt; is not configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9966" rel="noopener noreferrer"&gt;#9966&lt;/a&gt;) by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/get-started/installation/env" rel="noopener noreferrer"&gt;Environment Variables&lt;/a&gt;, &lt;a href="https://docs.nocobase.com/api/app/env" rel="noopener noreferrer"&gt;Global Environment Variables&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added ZIP filename encoding options for knowledge base document uploads to avoid garbled filenames in ZIP archives created with non-UTF-8 encodings. by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Fix the issue where route subpages are blank or use incorrect spacing after refresh (&lt;a href="https://github.com/nocobase/nocobase/pull/9961" rel="noopener noreferrer"&gt;#9961&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Reduced unnecessary workflow dispatcher DB fetch retries under concurrent queue processing. (&lt;a href="https://github.com/nocobase/nocobase/pull/9953" rel="noopener noreferrer"&gt;#9953&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records]&lt;/strong&gt; Fixed XLSX exports so text-like field values that start with formula characters are escaped before being opened in Excel. (&lt;a href="https://github.com/nocobase/nocobase/pull/9973" rel="noopener noreferrer"&gt;#9973&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Fixed LLM providers falling back to their default Base URL when the custom Base URL field is cleared. (&lt;a href="https://github.com/nocobase/nocobase/pull/9958" rel="noopener noreferrer"&gt;#9958&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed external NocoBase attachment uploads and updates in attachment fields by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.17
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-01&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed an issue where ctx.auth.user would not update after switching users. (&lt;a href="https://github.com/nocobase/nocobase/pull/9964" rel="noopener noreferrer"&gt;#9964&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Mobile (deprecated)]&lt;/strong&gt; Fix the issue where mobile pages and public forms cannot be scrolled on mobile devices (&lt;a href="https://github.com/nocobase/nocobase/pull/9898" rel="noopener noreferrer"&gt;#9898&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.15
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-30&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Fixed the Version control documentation in non-Chinese languages so the Professional Edition label is displayed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9944" rel="noopener noreferrer"&gt;#9944&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Fixed workflow AI employee tasks failing after repeated tool calls reached the graph recursion limit. (&lt;a href="https://github.com/nocobase/nocobase/pull/9945" rel="noopener noreferrer"&gt;#9945&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Custom request]&lt;/strong&gt; Fixed custom requests allowing runtime options to override the saved request target. (&lt;a href="https://github.com/nocobase/nocobase/pull/9904" rel="noopener noreferrer"&gt;#9904&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data source manager]&lt;/strong&gt; Fixed v2 collection field management so template-protected fields cannot be deleted and inherited fields support view / override behavior consistent with v1. (&lt;a href="https://github.com/nocobase/nocobase/pull/9940" rel="noopener noreferrer"&gt;#9940&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed garbled text that could occur when migrating MySQL data with non-ASCII content by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix the error when adding Original application content to approval nodes by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.14
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-29&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Added Mistral AI as an LLM provider for AI services. (&lt;a href="https://github.com/nocobase/nocobase/pull/9925" rel="noopener noreferrer"&gt;#9925&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; support OAuth device authorization flow (&lt;a href="https://github.com/nocobase/nocobase/pull/9922" rel="noopener noreferrer"&gt;#9922&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed long selected labels in record select fields so they truncate cleanly without squeezing the select control. (&lt;a href="https://github.com/nocobase/nocobase/pull/9939" rel="noopener noreferrer"&gt;#9939&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed table datetime columns losing their configured time display after pagination or refresh. (&lt;a href="https://github.com/nocobase/nocobase/pull/9935" rel="noopener noreferrer"&gt;#9935&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Users]&lt;/strong&gt; Removed the default password from the add-user form in Users &amp;amp; Permissions. (&lt;a href="https://github.com/nocobase/nocobase/pull/9915" rel="noopener noreferrer"&gt;#9915&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed NocoBase external data sources failing to load when connection options include runtime objects by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Record history]&lt;/strong&gt; Fixed external NocoBase data source loading failure when record history is enabled by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed the app supervisor Applications tab registration in Client V2 by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.2.0-beta.8
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-29&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Support OAuth device authorization flow (&lt;a href="https://github.com/nocobase/nocobase/pull/9922" rel="noopener noreferrer"&gt;#9922&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Support configure js block should be wrapped by block card. (&lt;a href="https://github.com/nocobase/nocobase/pull/9897" rel="noopener noreferrer"&gt;#9897&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Automatically refreshed related data blocks when RunJS closes a popup after updating data through resource APIs (&lt;a href="https://github.com/nocobase/nocobase/pull/9873" rel="noopener noreferrer"&gt;#9873&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Form drafts]&lt;/strong&gt; Migrate plugin form drafts to client v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9910" rel="noopener noreferrer"&gt;#9910&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed link actions becoming invisible on mobile embedded pages when icon-only mode is enabled but no icon is configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9921" rel="noopener noreferrer"&gt;#9921&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed a brief no-pages prompt flash when refreshing in UI Editor mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/9918" rel="noopener noreferrer"&gt;#9918&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed v2 form submit success redirects so they can reference the saved response record. (&lt;a href="https://github.com/nocobase/nocobase/pull/9907" rel="noopener noreferrer"&gt;#9907&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed link actions becoming invisible on mobile embedded pages when icon-only mode is enabled but no icon is configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9919" rel="noopener noreferrer"&gt;#9919&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed v2 table row action buttons changing row height. (&lt;a href="https://github.com/nocobase/nocobase/pull/9866" rel="noopener noreferrer"&gt;#9866&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed table blocks failing when a configured drag sorting field has been deleted, and allowed clearing the drag sorting field setting. (&lt;a href="https://github.com/nocobase/nocobase/pull/9867" rel="noopener noreferrer"&gt;#9867&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the issue where mobile popups with long content cannot scroll (&lt;a href="https://github.com/nocobase/nocobase/pull/9871" rel="noopener noreferrer"&gt;#9871&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where some parameters of ctx.openView in RunJS would not take effect. (&lt;a href="https://github.com/nocobase/nocobase/pull/9883" rel="noopener noreferrer"&gt;#9883&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; support pnpm and yarn global self update (&lt;a href="https://github.com/nocobase/nocobase/pull/9912" rel="noopener noreferrer"&gt;#9912&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt; Corrected several copy and typo issues across locales, related UI text, and documentation. (&lt;a href="https://github.com/nocobase/nocobase/pull/9905" rel="noopener noreferrer"&gt;#9905&lt;/a&gt;) by Molunerfinn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed the issue where mobile page can't be created by flow surface api. (&lt;a href="https://github.com/nocobase/nocobase/pull/9911" rel="noopener noreferrer"&gt;#9911&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the AI datasource card list so it adapts responsively to different viewport widths. (&lt;a href="https://github.com/nocobase/nocobase/pull/9924" rel="noopener noreferrer"&gt;#9924&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed AI employee chat failures caused by replaying malformed tool calls. (&lt;a href="https://github.com/nocobase/nocobase/pull/9900" rel="noopener noreferrer"&gt;#9900&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt; Fixed inconsistent bold labels on the v2 Backup manager settings page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9908" rel="noopener noreferrer"&gt;#9908&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: iframe]&lt;/strong&gt; Fixed 403 errors for normal users when viewing v2 iframe blocks in HTML mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/9889" rel="noopener noreferrer"&gt;#9889&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed NocoBase external data sources failing to load when connection options include runtime objects by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Fixed layout overflow in version control and knowledge base document lists when content or viewport size is constrained. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed migration rules for database-synced collections by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Record history]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where record history could fail to save changes for some collections by 2013xile&lt;/li&gt;
&lt;li&gt;Fixed external NocoBase data source loading failure when record history is enabled by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed the app supervisor Applications tab registration in Client V2 by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[WeCom]&lt;/strong&gt; Fixed a blank flash when switching route menu items with the WeCom plugin enabled in Client V2 by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.2.0-alpha.6
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-05&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Refactor CLI setup startup to reuse &lt;code&gt;nb app start&lt;/code&gt;, normalize API base path redirects, persist shared env proxy defaults, and rebuild Docker proxy containers when published ports change. (&lt;a href="https://github.com/nocobase/nocobase/pull/9997" rel="noopener noreferrer"&gt;#9997&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.0-alpha.5
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-04&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Added configurable App and Portal entry support for V2 action panels and the left-top app switcher. (&lt;a href="https://github.com/nocobase/nocobase/pull/9893" rel="noopener noreferrer"&gt;#9893&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Portal manager]&lt;/strong&gt; Added configurable App and Portal entries for the V2 action panel and app switcher. by katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Improved the Docker CLI setup by supporting configurable default NocoBase image registry/variant, fixing proxy and &lt;code&gt;no-nginx&lt;/code&gt; image port compatibility, and adding Docker Nginx/Caddy installation guides. (&lt;a href="https://github.com/nocobase/nocobase/pull/9972" rel="noopener noreferrer"&gt;#9972&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clarified the security guidance for PDF previews using external storage. (&lt;a href="https://github.com/nocobase/nocobase/pull/9901" rel="noopener noreferrer"&gt;#9901&lt;/a&gt;) by mytharcher
Reference: &lt;a href="https://github.com/nocobase/nocobase/blob/docs/file-preview-security/docs/docs/en/file-manager/file-preview/index.md" rel="noopener noreferrer"&gt;File Preview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Refined Russian documentation translation for improved wording, readability, and terminology consistency. (&lt;a href="https://github.com/nocobase/nocobase/pull/9942" rel="noopener noreferrer"&gt;#9942&lt;/a&gt;) by sembaev-a-a&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[utils]&lt;/strong&gt; Added warnings for server-side outbound requests that target potential SSRF-risk addresses when &lt;code&gt;SERVER_REQUEST_WHITELIST&lt;/code&gt; is not configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9966" rel="noopener noreferrer"&gt;#9966&lt;/a&gt;) by mytharcher&lt;br&gt;
Reference: &lt;a href="https://docs.nocobase.com/get-started/installation/env" rel="noopener noreferrer"&gt;Environment Variables&lt;/a&gt;, &lt;a href="https://docs.nocobase.com/api/app/env" rel="noopener noreferrer"&gt;Global Environment Variables&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Removed the deprecated Datasource entry from AI employee settings and context selection in the v2 UI. (&lt;a href="https://github.com/nocobase/nocobase/pull/9988" rel="noopener noreferrer"&gt;#9988&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Migrated the AI employee plugin to client-v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9794" rel="noopener noreferrer"&gt;#9794&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Display unsupported external data source fields in V2 Configure fields, and align backup restore form label styles. (&lt;a href="https://github.com/nocobase/nocobase/pull/9983" rel="noopener noreferrer"&gt;#9983&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Users]&lt;/strong&gt; Improve client-v2 test coverage for the users plugin. (&lt;a href="https://github.com/nocobase/nocobase/pull/9975" rel="noopener noreferrer"&gt;#9975&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added ZIP filename encoding options for knowledge base document uploads to avoid garbled filenames in ZIP archives created with non-UTF-8 encodings. by cgyrock&lt;/li&gt;
&lt;li&gt;Migrated the AI knowledge base settings pages to the v2 client and fixed layout and loading issues in knowledge base and vector store pages. by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt; Moved the department-based mail viewing option to the general mail settings page. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Hid the standalone V2 Applications block while keeping its settings page available internally. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Fixed revision creation events failing on RabbitMQ brokers that reject &lt;code&gt;:&lt;/code&gt; and &lt;code&gt;@&lt;/code&gt; in queue names. (&lt;a href="https://github.com/nocobase/nocobase/pull/9989" rel="noopener noreferrer"&gt;#9989&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed iframe sanitization for v2 Markdown rendering and editing. (&lt;a href="https://github.com/nocobase/nocobase/pull/9986" rel="noopener noreferrer"&gt;#9986&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed V2 table data scope filters so missing URL query parameters no longer block table data queries. (&lt;a href="https://github.com/nocobase/nocobase/pull/9869" rel="noopener noreferrer"&gt;#9869&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fix the issue where opening an empty V2 Group menu item shows 404 (&lt;a href="https://github.com/nocobase/nocobase/pull/9896" rel="noopener noreferrer"&gt;#9896&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where multiline text field values could not be set via ctx.setFormValues. (&lt;a href="https://github.com/nocobase/nocobase/pull/9959" rel="noopener noreferrer"&gt;#9959&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed routed popup creation forms losing prefilled field values such as Calendar V2 start and end dates. (&lt;a href="https://github.com/nocobase/nocobase/pull/9874" rel="noopener noreferrer"&gt;#9874&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fix the issue where route subpages are blank or use incorrect spacing after refresh (&lt;a href="https://github.com/nocobase/nocobase/pull/9961" rel="noopener noreferrer"&gt;#9961&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Action: Export records]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed a crash when dragging v2 exportable fields after selecting relation fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/9995" rel="noopener noreferrer"&gt;#9995&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed XLSX exports so text-like field values that start with formula characters are escaped before being opened in Excel. (&lt;a href="https://github.com/nocobase/nocobase/pull/9973" rel="noopener noreferrer"&gt;#9973&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where workflow execution node results could remain stuck in a loading state. (&lt;a href="https://github.com/nocobase/nocobase/pull/9991" rel="noopener noreferrer"&gt;#9991&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Reduced unnecessary workflow dispatcher DB fetch retries under concurrent queue processing. (&lt;a href="https://github.com/nocobase/nocobase/pull/9953" rel="noopener noreferrer"&gt;#9953&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where newly created backup files could not be uploaded to cloud storage. (&lt;a href="https://github.com/nocobase/nocobase/pull/9981" rel="noopener noreferrer"&gt;#9981&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed PostgreSQL and Kingbase backup restore command execution when paths or arguments contain spaces or special characters. (&lt;a href="https://github.com/nocobase/nocobase/pull/9946" rel="noopener noreferrer"&gt;#9946&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed AI employee workflow nodes failing to resume correctly in loops after a previous AI employee tool call. (&lt;a href="https://github.com/nocobase/nocobase/pull/9980" rel="noopener noreferrer"&gt;#9980&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed AI checkpoint cleanup failures in underscored database environments. (&lt;a href="https://github.com/nocobase/nocobase/pull/9982" rel="noopener noreferrer"&gt;#9982&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI templates]&lt;/strong&gt; Fixed an issue where the field template menu was incorrectly displayed in subforms. (&lt;a href="https://github.com/nocobase/nocobase/pull/9960" rel="noopener noreferrer"&gt;#9960&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Hidden the file manager attachments list API and return 404 when it is requested. (&lt;a href="https://github.com/nocobase/nocobase/pull/9978" rel="noopener noreferrer"&gt;#9978&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Comment]&lt;/strong&gt; Adjusted the default action order for new Comment blocks. (&lt;a href="https://github.com/nocobase/nocobase/pull/9976" rel="noopener noreferrer"&gt;#9976&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Fixed an issue where chart blocks would trigger unnecessary refreshes when closing a popup. (&lt;a href="https://github.com/nocobase/nocobase/pull/9970" rel="noopener noreferrer"&gt;#9970&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Mobile (deprecated)]&lt;/strong&gt; Fix responsive v1 admin pages so view actions open as subpages and select fields use mobile popups (&lt;a href="https://github.com/nocobase/nocobase/pull/9974" rel="noopener noreferrer"&gt;#9974&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Version control]&lt;/strong&gt; Fixed version-control revision creation on RabbitMQ brokers that reject &lt;code&gt;:&lt;/code&gt; and &lt;code&gt;@&lt;/code&gt; in queue names. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed external NocoBase attachment uploads and updates in attachment fields by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix the error that may occur when opening approval details without configuration permissions by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.0-alpha.4
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-07-01&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Block: Comment]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved comment block settings with data scope, default sorting, selectable page size, optional last-page jumping, and scalar owner field mapping. (&lt;a href="https://github.com/nocobase/nocobase/pull/9954" rel="noopener noreferrer"&gt;#9954&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Added a comments block. (&lt;a href="https://github.com/nocobase/nocobase/pull/9916" rel="noopener noreferrer"&gt;#9916&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Added Mistral AI as an LLM provider for AI services. (&lt;a href="https://github.com/nocobase/nocobase/pull/9925" rel="noopener noreferrer"&gt;#9925&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Record history]&lt;/strong&gt; Added client v2 support for the record history plugin. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Support manual Nginx/Caddy proxy config generation, allow Docker deployments without bundled Nginx, and align proxy and CDN-related runtime configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9943" rel="noopener noreferrer"&gt;#9943&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Aligned v2 workflow request and mailer node configuration fields with legacy layout and attachment variable behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/9952" rel="noopener noreferrer"&gt;#9952&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[UI layout]&lt;/strong&gt; Improved the v2 mobile tab bar so crowded tabs scroll horizontally instead of overlapping. (&lt;a href="https://github.com/nocobase/nocobase/pull/9949" rel="noopener noreferrer"&gt;#9949&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Aggregate node]&lt;/strong&gt; Improved v2 workflow field selection for update and aggregate query nodes, including safer associated collection selection in aggregate query nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9938" rel="noopener noreferrer"&gt;#9938&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Block: Comment]&lt;/strong&gt; Added the new comment block plugin to the NocoBase preset and marked the legacy comments plugin as deprecated. (&lt;a href="https://github.com/nocobase/nocobase/pull/9936" rel="noopener noreferrer"&gt;#9936&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Logger]&lt;/strong&gt; Added the Logger settings page to the client v2 runtime. (&lt;a href="https://github.com/nocobase/nocobase/pull/9933" rel="noopener noreferrer"&gt;#9933&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[HTTP request encryption]&lt;/strong&gt; Added v2 client support for HTTP request encryption so query parameters continue to be encrypted in the v2 client. by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Database transaction node]&lt;/strong&gt; Improved the v2 workflow database transaction node layout so branch labels and the commit marker have better spacing. by katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed an issue where ctx.auth.user would not update after switching users. (&lt;a href="https://github.com/nocobase/nocobase/pull/9964" rel="noopener noreferrer"&gt;#9964&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix workflow execution revision navigation so creating a new version after manual execution opens the correct workflow page in both legacy and modern shells. (&lt;a href="https://github.com/nocobase/nocobase/pull/9955" rel="noopener noreferrer"&gt;#9955&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed table datetime columns losing their configured time display after pagination or refresh. (&lt;a href="https://github.com/nocobase/nocobase/pull/9935" rel="noopener noreferrer"&gt;#9935&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed long selected labels in record select fields so they truncate cleanly without squeezing the select control. (&lt;a href="https://github.com/nocobase/nocobase/pull/9939" rel="noopener noreferrer"&gt;#9939&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed V2 admin group routes showing 404 when the group has no available child menu page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9932" rel="noopener noreferrer"&gt;#9932&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt; Fixed the Version control documentation in non-Chinese languages so the Professional Edition label is displayed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9944" rel="noopener noreferrer"&gt;#9944&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed LLM providers falling back to their default Base URL when the custom Base URL field is cleared. (&lt;a href="https://github.com/nocobase/nocobase/pull/9958" rel="noopener noreferrer"&gt;#9958&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed workflow AI employee tasks failing after repeated tool calls reached the graph recursion limit. (&lt;a href="https://github.com/nocobase/nocobase/pull/9945" rel="noopener noreferrer"&gt;#9945&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Custom request]&lt;/strong&gt; Fixed custom requests allowing runtime options to override the saved request target. (&lt;a href="https://github.com/nocobase/nocobase/pull/9904" rel="noopener noreferrer"&gt;#9904&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Mobile (deprecated)]&lt;/strong&gt; Fix the issue where mobile pages and public forms cannot be scrolled on mobile devices (&lt;a href="https://github.com/nocobase/nocobase/pull/9898" rel="noopener noreferrer"&gt;#9898&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification manager]&lt;/strong&gt; Fix incorrect workflow variables shown in CC configuration (&lt;a href="https://github.com/nocobase/nocobase/pull/9937" rel="noopener noreferrer"&gt;#9937&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix workflow context mismatches across bundles so branches and some variable pickers work correctly in legacy workflow pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/9951" rel="noopener noreferrer"&gt;#9951&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fix issues after migrated client to v2 (&lt;a href="https://github.com/nocobase/nocobase/pull/9929" rel="noopener noreferrer"&gt;#9929&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fix the issue where in-app message content cannot be configured in v2 workflows (&lt;a href="https://github.com/nocobase/nocobase/pull/9885" rel="noopener noreferrer"&gt;#9885&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Fixed v2 collection field management so template-protected fields cannot be deleted and inherited fields support view / override behavior consistent with v1. (&lt;a href="https://github.com/nocobase/nocobase/pull/9940" rel="noopener noreferrer"&gt;#9940&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Authentication]&lt;/strong&gt; Fixed incorrect redirects after SSO login in v2 sub applications (&lt;a href="https://github.com/nocobase/nocobase/pull/9927" rel="noopener noreferrer"&gt;#9927&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Users]&lt;/strong&gt; Removed the default password from the add-user form in Users &amp;amp; Permissions. (&lt;a href="https://github.com/nocobase/nocobase/pull/9915" rel="noopener noreferrer"&gt;#9915&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed the issue where mobile page can't be created by flow surface api. (&lt;a href="https://github.com/nocobase/nocobase/pull/9911" rel="noopener noreferrer"&gt;#9911&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App SSO]&lt;/strong&gt; Fixed incorrect App SSO redirects in v2 sub applications by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Fixed layout overflow in version control and knowledge base document lists when content or viewport size is constrained. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed NocoBase external data sources failing to load when connection options include runtime objects by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed garbled text that could occur when migrating MySQL data with non-ASCII content by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Record history]&lt;/strong&gt; Fixed external NocoBase data source loading failure when record history is enabled by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the error when opening CC node settings by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the error when adding Original application content to approval nodes by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where approval tables appear in the block data source list by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix issues involved by migrating to client v2 by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed app visit links losing the v2 path in sub applications by 2013xile&lt;/li&gt;
&lt;li&gt;Fixed the app supervisor Applications tab registration in Client V2 by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>From Paperwork to Digital Public Services in France</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Mon, 06 Jul 2026 09:45:24 +0000</pubDate>
      <link>https://dev.to/nocobase/from-paperwork-to-digital-public-services-in-france-1ie</link>
      <guid>https://dev.to/nocobase/from-paperwork-to-digital-public-services-in-france-1ie</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/astrolab-nocobase" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/astrolab-nocobase&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://astrolab.co/" rel="noopener noreferrer"&gt;Astrolab&lt;/a&gt; is one of NocoBase's partners in Europe, Africa, and the Middle East. The company specialises in technology strategy, intelligent automation, AI, and digital solution delivery.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft97tsgq3z1xvrd26juw1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft97tsgq3z1xvrd26juw1.png" alt="Astrolab-1u94vq.png" width="799" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using NocoBase, Astrolab delivered three production-grade digital public-service platforms for one of France's 13 metropolitan regional governments.&lt;/p&gt;

&lt;p&gt;The platforms were delivered under a unified framework approach. They were not isolated tools, but a set of digital public-service systems built on a shared modular architecture. Together, they helped the client move critical administrative processes from paper forms, spreadsheets, and fragmented email workflows to flexible, controlled, and traceable digital services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenge
&lt;/h2&gt;

&lt;p&gt;A major French metropolitan regional government manages environmental policy, education, economic development, transport, and territorial planning for several million inhabitants. It faced a recurring operational challenge: &lt;strong&gt;multiple critical administrative processes were still handled through paper forms, spreadsheets, and fragmented email workflows.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Three high-priority public services required urgent digital transformation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Environmental Impact Assessment Platform (GIE)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Companies applying for regional economic-development aid were required to complete a multi-dimensional environmental self-assessment covering carbon impact, energy usage, water consumption, waste management, land usage, and ecological indicators.&lt;/p&gt;

&lt;p&gt;The legacy workflow relied heavily on manual validation and duplicate data entry. This created delays, inconsistent evaluations, and limited operational visibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fleet Vehicle Pooling Management Platform (SID)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The regional administration operated a shared fleet across multiple departments using manual reservation workflows and spreadsheet tracking. This resulted in reservation conflicts, low vehicle utilisation, poor visibility on fleet performance, uncontrolled fuel and mileage reporting, and limited operational governance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Annual Boarding-School Census Platform (EIT)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The regional education department conducted an annual census across more than 190 public and private institutions.&lt;/p&gt;

&lt;p&gt;The previous email-and-paper process led to low response rates, significant manual consolidation work, delayed reporting cycles, and inconsistent or incomplete datasets, directly impacting regional planning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Astrolab's Solution
&lt;/h2&gt;

&lt;p&gt;Astrolab delivered three production-grade digital public-service platforms under a unified framework approach, designed around a shared modular architecture and low-code extensibility model powered by NocoBase.&lt;/p&gt;

&lt;p&gt;The platforms shared a common foundation including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unified authentication and role management&lt;/li&gt;
&lt;li&gt;Shared workflow orchestration layer&lt;/li&gt;
&lt;li&gt;Centralised audit and logging infrastructure&lt;/li&gt;
&lt;li&gt;Notification and reminder engine&lt;/li&gt;
&lt;li&gt;Dynamic form and data-model management&lt;/li&gt;
&lt;li&gt;API integration framework&lt;/li&gt;
&lt;li&gt;Modular low-code administration capabilities enabling rapid evolution by functional teams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach avoided &lt;strong&gt;rebuilding the same common capabilities for each system&lt;/strong&gt;. Instead, the delivery team could extend NocoBase's existing capabilities and focus on business processes, data rules, permission boundaries, and system integrations.&lt;/p&gt;

&lt;p&gt;The architecture was intentionally designed to accelerate delivery cycles while maintaining enterprise-grade governance, security, scalability, and maintainability. It also allowed functional teams to continue evolving forms, workflows, and management rules after launch.&lt;/p&gt;

&lt;p&gt;All deliverables complied with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;French &lt;strong&gt;DINUM&lt;/strong&gt; digital-service standards&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GDPR&lt;/strong&gt; requirements&lt;/li&gt;
&lt;li&gt;French &lt;strong&gt;RGAA&lt;/strong&gt; accessibility standards, equivalent to WCAG&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ANSSI-aligned&lt;/strong&gt; security baselines for public-sector systems&lt;/li&gt;
&lt;li&gt;Data hosted on sovereign infrastructure within French territory&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Platform 1: Environmental Impact Assessment Platform (GIE)
&lt;/h3&gt;

&lt;p&gt;The Environmental Impact Assessment Platform supports the environmental self-assessment workflow for companies applying for regional economic-development aid.&lt;/p&gt;

&lt;p&gt;Astrolab used NocoBase to build &lt;strong&gt;dynamic adaptive survey workflows&lt;/strong&gt;. The questionnaire adapts to company size and industry, while SIRET-based company-data auto-population retrieves company information through French public-service APIs, reducing duplicate data entry and manual verification.&lt;/p&gt;

&lt;p&gt;After submission, the platform supports multi-role submission and validation routing. The workflow is connected to regional grant-processing systems, so validated assessment results can be routed into the financial-aid process.&lt;/p&gt;

&lt;p&gt;The platform also provides immutable audit history, save-and-resume functionality, and low-code administrative interfaces. Functional teams can rapidly evolve forms and workflows without requiring full redevelopment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrghjd3gzz3i81c2yzgd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrghjd3gzz3i81c2yzgd.png" alt="amazonaws" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Platform 2: Fleet Vehicle Pooling Management Platform (SID)
&lt;/h3&gt;

&lt;p&gt;The Fleet Vehicle Pooling Management Platform manages shared vehicle usage across multiple departments of the regional administration.&lt;/p&gt;

&lt;p&gt;Astrolab transformed a process previously based on manual reservations and spreadsheet tracking into a real-time vehicle reservation and approval system. Drivers can view available vehicles and submit reservations, while managers and administrators handle approval, notifications, and operational oversight.&lt;/p&gt;

&lt;p&gt;The platform provides automated conflict detection, mileage and fuel-consumption tracking, department-level reporting dashboards, Excel and PDF exports, and a mobile-responsive booking experience.&lt;/p&gt;

&lt;p&gt;It was built using the modular workflow and data-management capabilities provided through the NocoBase-based architecture. This enables administrators to quickly adjust vehicle rules, approval flows, and reporting logic as operational needs change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Platform 3: Annual Boarding-School Census Platform (EIT)
&lt;/h3&gt;

&lt;p&gt;The Annual Boarding-School Census Platform supports the regional education department's yearly census across public and private institutions.&lt;/p&gt;

&lt;p&gt;Astrolab used NocoBase to transform the process into an online census platform with dual-stream survey workflows for public and private institutions, smart branching logic, pre-filled historical data, automated reminder notifications, and real-time completion dashboards.&lt;/p&gt;

&lt;p&gt;Administrators can monitor progress, validate submitted data through centralised data validation workflows, and use executive reporting and analytics integration to support regional education planning.&lt;/p&gt;

&lt;p&gt;Because census questionnaires and reporting structures may change every year, the low-code architecture enables rapid yearly adjustments without major redevelopment cycles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;After the three platforms entered production, the client achieved significant improvements in operational efficiency, data quality, administrative visibility, governance, and compliance.&lt;/p&gt;

&lt;p&gt;The most direct improvement came from the Environmental Impact Assessment Platform. Manual environmental-review cycles were reduced from multiple days to &lt;strong&gt;less than 24 hours median processing time&lt;/strong&gt;. Through &lt;strong&gt;12+ live integrations&lt;/strong&gt; with public-sector registries and open-data systems, the platform can automatically populate &lt;strong&gt;more than 95% of company profile information&lt;/strong&gt;, eliminating duplicate data entry and significantly reducing manual verification workload. Assessment results are also automatically routed into financial-aid processing systems.&lt;/p&gt;

&lt;p&gt;In the Fleet Vehicle Pooling Management Platform, real-time reservations, automated conflict detection, and department-level reporting improved daily operations. &lt;strong&gt;Reservation conflicts were reduced by approximately 80%, and vehicle utilisation improved by approximately 25%.&lt;/strong&gt; The platform also provides full operational visibility on mileage and fuel consumption by department.&lt;/p&gt;

&lt;p&gt;The Annual Boarding-School Census Platform also improved the data collection process. During the first operational cycle, &lt;strong&gt;the response rate increased to more than 90%, and data consolidation was reduced from several weeks to less than 48 hours.&lt;/strong&gt; The improved completeness and consistency of the data created a stronger foundation for educational planning.&lt;/p&gt;

&lt;p&gt;Beyond efficiency gains, the three platforms strengthened governance and compliance across all targeted processes. The systems provide full traceability across workflows, centralised audit logging, and compliance reporting. There were &lt;strong&gt;zero reported data-breach incidents&lt;/strong&gt;, annual penetration testing was successfully completed, and full GDPR compliance was validated by the client governance teams.&lt;/p&gt;

&lt;p&gt;In terms of reliability, the platforms achieved &lt;strong&gt;measured service availability exceeding 99.8% across all platforms over a 24-month period&lt;/strong&gt;. Under active support and evolution contracts, Astrolab maintained a quarterly feature-release cadence, and all three services continued to be used in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Architecture Overview
&lt;/h2&gt;

&lt;p&gt;Astrolab used NocoBase as the shared foundation for all three platforms, providing core capabilities such as data models, dynamic forms, access control, workflows, audit logs, and administration interfaces.&lt;/p&gt;

&lt;p&gt;Around this foundation, the team integrated React.js, NestJS, PostgreSQL, PostGIS, Power BI, custom reporting, government APIs, Docker, CI/CD, and private cloud deployment to meet public-sector production requirements.&lt;/p&gt;

&lt;p&gt;The architecture supports data sovereignty, RGPD/GDPR compliance, RBAC, AES-256 encryption, immutable audit history, and zero-downtime deployment, enabling the three platforms to run reliably over the long term.&lt;/p&gt;

&lt;p&gt;During delivery, Astrolab also explored AI-assisted development with Claude for custom plugin code. With NocoBase 2.1, AI Agents can now work more naturally with NocoBase documentation and extension mechanisms to build plugins, JS Blocks, and complex business logic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv1rtr77rbpw5yxtvvgw7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv1rtr77rbpw5yxtvvgw7.png" alt="nocobase-5gqmlj.png" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Astrolab used NocoBase to reuse foundational capabilities across multiple public-service systems, then extended each platform for its specific operational scenario. The result was a set of production-grade systems designed for long-term use, continuous evolution, and public-sector governance requirements.&lt;/p&gt;

&lt;p&gt;This is also the kind of system development approach that deserves more attention in the AI era.&lt;/p&gt;

&lt;p&gt;AI can accelerate code generation and development, but real business systems cannot rely on one-time generation alone. They need stable data models, clear permission boundaries, traceable workflows, auditable history, and an architecture that can keep evolving.&lt;/p&gt;

&lt;p&gt;This is where NocoBase delivers its value: &lt;strong&gt;it allows both AI and delivery teams to avoid starting from scratch, and instead build, extend, and maintain real applications on a platform that already provides the foundational capabilities required by business systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More Customer Stories:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/deliver-complex-oa-system-nocobase-3-months" rel="noopener noreferrer"&gt;How to Deliver a Complex OA System in 3 Months with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/medical-device-manufacturer-builds-self-hosted-management-system-with-nocobase" rel="noopener noreferrer"&gt;Case Study: Digitizing Medical Manufacturing Workflows with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/software-vendor-boosts-delivery-efficiency-with-nocobase" rel="noopener noreferrer"&gt;Software Vendor Boosts Delivery Efficiency by 70% with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/an-erp-built-with-nocobase" rel="noopener noreferrer"&gt;Community Spotlight: Building a Real-World ERP with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/shenzhen-chuanglianyun-tech-development-methodology" rel="noopener noreferrer"&gt;Inside: How an 8-Person Team Delivers at Enterprise Speed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/ai-multimodal-platform" rel="noopener noreferrer"&gt;Built an AI Multimodal R&amp;amp;D Platform in Days — with NocoBase&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/nocobase-in-russia" rel="noopener noreferrer"&gt;NocoBase in Russia: Multi-Scenario Digital Solutions in Action&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/university-course" rel="noopener noreferrer"&gt;NocoBase Enters German University Classrooms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>news</category>
    </item>
    <item>
      <title>9 Open-Source AI No-Code Tools on GitHub Worth Watching</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Tue, 30 Jun 2026 03:59:24 +0000</pubDate>
      <link>https://dev.to/nocobase/9-open-source-ai-no-code-tools-on-github-worth-watching-2m2j</link>
      <guid>https://dev.to/nocobase/9-open-source-ai-no-code-tools-on-github-worth-watching-2m2j</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI coding is getting a lot of attention. Many tools can already generate code, pages, and application prototypes very quickly. At first glance, it may seem like AI is weakening the value of no-code.&lt;/p&gt;

&lt;p&gt;But real business applications need more than speed. Once user permissions, data structures, business workflows, handover, and long-term maintenance are involved, a system needs clearer structure and more stable governance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpwqokquhc6ldr93lll5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpwqokquhc6ldr93lll5f.png" alt="reddit-tpzqng.png" width="754" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A similar point appears in this &lt;a href="https://www.reddit.com/r/nocode/comments/1tjjaen/ai_coding_is_not_killing_nocode_it_is_making/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt; discussion: AI app-building tools are fast for prototypes, but when they enter real business environments, the value of no-code platforms becomes even more visible.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;AI coding is not replacing no-code. Instead, it is making the boundary between the two increasingly blurred. AI is moving into app building, workflow automation, knowledge bases, and business systems, while no-code platforms are also adding stronger AI-assisted capabilities.&lt;/p&gt;

&lt;p&gt;This article is based on open-source projects under the GitHub &lt;a href="https://github.com/topics/no-code" rel="noopener noreferrer"&gt;no-code&lt;/a&gt; topic. We selected 9 no-code tools where AI has already become part of the core positioning. We will focus on their AI highlights and suitable use cases, and look at how AI is entering application building, workflow automation, knowledge bases, agent orchestration, design generation, and enterprise business system development.&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open-Source AI Agent Tools Worth Watching on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before going into the details, here is a quick overview of the 9 tools covered in this article.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;No.&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Positioning&lt;/th&gt;
&lt;th&gt;AI Highlights&lt;/th&gt;
&lt;th&gt;Suitable Use Cases&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;23.1k&lt;/td&gt;
&lt;td&gt;AI no-code platform for enterprise business systems&lt;/td&gt;
&lt;td&gt;AI employees, AI-assisted building, knowledge base, plugin extension&lt;/td&gt;
&lt;td&gt;CRM, ERP, approvals, ticketing, inventory, project management, and other internal enterprise systems and tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Budibase&lt;/td&gt;
&lt;td&gt;28.1k&lt;/td&gt;
&lt;td&gt;AI-powered internal operations app platform&lt;/td&gt;
&lt;td&gt;AI agents, process execution, automation, internal apps&lt;/td&gt;
&lt;td&gt;IT service desk, approval workflows, employee services, operations processes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;td&gt;28.9k&lt;/td&gt;
&lt;td&gt;Multi-agent collaboration workspace&lt;/td&gt;
&lt;td&gt;Agent orchestration, task decomposition, tool calling, multi-agent collaboration&lt;/td&gt;
&lt;td&gt;Sales operations, customer support, data processing, research and analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;ToolJet&lt;/td&gt;
&lt;td&gt;38.1k&lt;/td&gt;
&lt;td&gt;AI platform for building internal enterprise tools&lt;/td&gt;
&lt;td&gt;AI app generation, query assistance, debugging, workflows&lt;/td&gt;
&lt;td&gt;Admin panels, dashboards, approval systems, order processing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Flowise&lt;/td&gt;
&lt;td&gt;54.1k&lt;/td&gt;
&lt;td&gt;Visual builder for AI agents and model workflows&lt;/td&gt;
&lt;td&gt;Visual workflows, RAG, knowledge-base Q&amp;amp;A, human-in-the-loop review&lt;/td&gt;
&lt;td&gt;AI app prototypes, document Q&amp;amp;A, customer support assistants&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;AnythingLLM&lt;/td&gt;
&lt;td&gt;62.2k&lt;/td&gt;
&lt;td&gt;Private AI knowledge base and local assistant&lt;/td&gt;
&lt;td&gt;Private document Q&amp;amp;A, RAG, self-hosting, AI agents&lt;/td&gt;
&lt;td&gt;Enterprise knowledge bases, internal document search, local AI assistants&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;open-design&lt;/td&gt;
&lt;td&gt;72.3k&lt;/td&gt;
&lt;td&gt;AI design prototype generation tool&lt;/td&gt;
&lt;td&gt;Natural-language design generation, design systems, multi-format export&lt;/td&gt;
&lt;td&gt;Product prototypes, landing pages, presentations, visual assets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Dify&lt;/td&gt;
&lt;td&gt;147k&lt;/td&gt;
&lt;td&gt;Production-grade AI application development platform&lt;/td&gt;
&lt;td&gt;AI workflows, RAG, tool calling, model management&lt;/td&gt;
&lt;td&gt;AI customer service, AI assistants, enterprise RAG, AI applications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;n8n&lt;/td&gt;
&lt;td&gt;194k&lt;/td&gt;
&lt;td&gt;AI workflow automation platform&lt;/td&gt;
&lt;td&gt;AI agent workflows, system integration, automated execution, self-hosting&lt;/td&gt;
&lt;td&gt;Sales operations, customer support automation, data synchronization, ticket routing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  9. NocoBase
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fud3v1tsvyf120v49coej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fud3v1tsvyf120v49coej.png" alt="NocoBase0-asiczi.png" width="799" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;https://www.nocobase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;https://github.com/nocobase/nocobase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 23.1k&lt;/p&gt;

&lt;p&gt;NocoBase is an AI-powered open-source no-code/low-code development platform for building enterprise applications, internal tools, and business systems. It supports self-hosting and uses a plugin-based architecture, making it suitable for teams that need to build CRM, ERP, approval systems, ticketing systems, inventory systems, project management tools, operations back offices, and other systems around their own business processes.&lt;/p&gt;

&lt;p&gt;NocoBase is closer to a development framework and business system infrastructure for enterprise applications. It includes common foundational capabilities required by enterprise systems, such as data modeling, page configuration, user permissions, workflows, security audit, and plugin extension. This gives AI a clear system architecture and permission boundary to work within. Instead of generating a hard-to-maintain codebase from scratch, AI can help create data tables, configure pages, orchestrate workflows, set permissions, and continue supporting later extensions within the NocoBase framework. For enterprises, this approach is better suited to real business systems: it improves building efficiency with AI while keeping the stability, security, and maintainability required for long-term operation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjjzfvityxoyjk6rpy3uu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjjzfvityxoyjk6rpy3uu.png" alt="NocoBase1-a0n0fx.png" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI-assisted business system building&lt;/strong&gt;: Users can describe business requirements in natural language and let AI help with data model design, page configuration, workflow orchestration, permission setup, and plugin management. For example, when building a customer management system, ticketing system, contract approval system, or project dashboard, AI can generate the basic system first. The team can then review fields, relationships, pages, action buttons, and permission settings in the no-code interface to ensure they match the actual business process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI employees entering system operations&lt;/strong&gt;: NocoBase AI employees can act as intelligent assistants inside the system. They can work with page data, business context, tools, and knowledge bases to complete tasks such as data queries, content summaries, report generation, translation, unstructured content extraction, form filling, and workflow node processing. This means AI does not only help during system building; it can also continue participating in system operation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6lvjszjtncvns8cpj7id.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6lvjszjtncvns8cpj7id.png" alt="NocoBase2-cpbgh1.png" width="799" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;8 Open-Source AI Assistant Tools with the Most GitHub Stars&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Skills, CLI, and MCP support external Agent collaboration&lt;/strong&gt;: NocoBase also provides AI Skills, CLI, and MCP capabilities. AI Skills help external Agents understand how NocoBase is configured and what operation boundaries they should follow. CLI allows Agents to execute commands for installation, creation, and modification. MCP provides a more standardized entry point for external AI tools to connect with NocoBase.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;🎉 Related resources&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI documentation: &lt;a href="https://docs.nocobase.com/en/ai/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CLI: &lt;a href="https://docs.nocobase.com/en/api/cli/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/api/cli/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Skills: &lt;a href="https://docs.nocobase.com/en/ai-builder#nocobase-skills" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/ai-builder#nocobase-skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MCP: &lt;a href="https://docs.nocobase.com/en/ai/mcp/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/ai/mcp/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;No-code capabilities reduce long-term maintenance costs&lt;/strong&gt;: Many AI generation tools can quickly create code, but later maintenance often depends on developers. NocoBase is different because after AI generates the initial system, users can still modify fields, pages, menus, action buttons, permissions, and workflows in the no-code interface. For business teams, the system does not stop at a one-off demo. It can keep evolving as the business changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Internal business systems&lt;/strong&gt;: NocoBase is suitable for CRM, approval systems, ticketing systems, project management systems, operations back offices, admin panels, and similar systems. These systems need stable data structures, clear permission boundaries, and continuously adjustable workflow rules, so they are not well suited to one-off generation tools alone.&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/4-lightweight-enterprise-software-for-business-processes" rel="noopener noreferrer"&gt;4 Lightweight Enterprise Software Options for Business Processes with Real Examples&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lightweight ERP and business management modules&lt;/strong&gt;: Procurement management, inventory management, order management, equipment management, asset management, archive management, and customer follow-up scenarios are also suitable for NocoBase. Teams can start from specific business modules, use AI to generate the basic structure, and then gradually improve fields, pages, permissions, and workflows through no-code configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F30zszrc39bdwbix1cek9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F30zszrc39bdwbix1cek9.png" alt="NocoBase3-hv3rw9.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎉 NocoBase AI Blueprints are now available. Try them out!&lt;/p&gt;

&lt;p&gt;These are small, focused business solutions built with NocoBase. They are open-source, controllable, and easy to extend or modify around your own process.&lt;/p&gt;

&lt;p&gt;Each solution comes with a standard prompt. Give it to the AI Agent connected to your NocoBase instance, and you can recreate the same type of system in minutes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/en/ai-blueprints" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/ai-blueprints&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Extending and enhancing existing systems&lt;/strong&gt;: For enterprises that already have databases, ERP, CRM, or other business systems, NocoBase can also be used as an extension layer to integrate data, configure pages, manage permissions, and orchestrate workflows. When an AI Agent needs to enter real business processes, NocoBase can provide a structured, governable, and maintainable business system environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Budibase
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fihrtb38dyems7xn9wgw7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fihrtb38dyems7xn9wgw7.png" alt="Budibase1-gbpvsw.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://budibase.com/" rel="noopener noreferrer"&gt;https://budibase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Budibase/budibase" rel="noopener noreferrer"&gt;https://github.com/Budibase/budibase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 28.1k&lt;/p&gt;

&lt;p&gt;Budibase brings internal applications, automated workflows, and AI agents into one platform. It is suitable for handling high-frequency, repetitive internal operations that require process routing. Its focus is not single-turn Q&amp;amp;A, but enabling AI to enter everyday business steps such as request handling, approval routing, notification distribution, and record updates.&lt;/p&gt;

&lt;p&gt;For IT, HR, administration, operations, and support teams, Budibase is more like a platform for productizing internal processes. Teams can first build forms, data tables, and internal applications, and then let AI agents participate in judgment, assignment, and execution. Processes that used to depend on manual communication can become traceable and reusable systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI agents participate in process handling&lt;/strong&gt;: Budibase AI agents can understand employee requests, approval items, feedback, and operational tasks, then decide what should happen next. They can classify requests, assign them to the right owner, and enter automated workflows to reduce manual triage and repeated communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation and internal apps work together&lt;/strong&gt;: Budibase connects forms, databases, permissions, automation, and AI agents. After a request enters the system, AI can make the first judgment, automation continues the following steps, and the result becomes a traceable business record.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffutrj79am5k38b2bexoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffutrj79am5k38b2bexoy.png" alt="Budibase2-g9xhdf.png" width="799" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Internal service requests and approval flows&lt;/strong&gt;: Budibase is suitable for IT service desks, equipment requests, HR support, administrative approvals, support routing, and operational task flows. For example, after an employee submits an account permission request, AI can identify the request type, create a ticket, and assign the task to the right owner.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Sim
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5x4ih7xc36k8di51cixh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5x4ih7xc36k8di51cixh.png" alt="Sim-5te41i.png" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://www.sim.ai/" rel="noopener noreferrer"&gt;https://www.sim.ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/simstudioai/sim" rel="noopener noreferrer"&gt;https://github.com/simstudioai/sim&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 28.9k&lt;/p&gt;

&lt;p&gt;Sim is mainly used to build, deploy, and manage AI agents. It organizes large models, external tools, integration capabilities, and task flows so teams can place multiple AI agents into the same workflow and handle more complex business tasks.&lt;/p&gt;

&lt;p&gt;In real work, a task is often not completed in one step. Sales lead handling, for example, may involve information collection, customer qualification, email drafting, CRM updates, and follow-up reminders. Sim helps split these steps and coordinate them through different agents or workflow stages, making AI feel closer to an execution team that can participate in real work.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI agent building and orchestration&lt;/strong&gt;: Sim helps teams build multiple AI agents and organize them into the same task flow. Each agent can take responsibility for a different step, such as information organization, judgment, execution, or result writing, making it suitable for multi-step tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connecting models, tools, and business workflows&lt;/strong&gt;: Sim can connect mainstream large models and external tools, allowing AI agents to read information, call tools, and perform actions. Agents are therefore not limited to generating text; they can enter real tool environments and complete tasks closer to business execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Multi-step business tasks&lt;/strong&gt;: Sim is suitable for sales operations, data processing, customer support, research, and analysis. For example, a sales team can let different AI agents handle lead organization, email drafting, CRM updates, and follow-up reminders.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. ToolJet
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsql5cs2w6juxsts44miq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsql5cs2w6juxsts44miq.png" alt="ToolJet-m2eg54.png" width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://tooljet.com/" rel="noopener noreferrer"&gt;https://tooljet.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/ToolJet/ToolJet" rel="noopener noreferrer"&gt;https://github.com/ToolJet/ToolJet&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 38.1k&lt;/p&gt;

&lt;p&gt;ToolJet is used to build internal enterprise applications, dashboards, admin panels, and business tools. It combines app building, data connection, workflows, and AI capabilities, making it suitable for teams that want to generate internal apps quickly and then continue connecting real data, adjusting pages, and refining business logic.&lt;/p&gt;

&lt;p&gt;For many internal tools, the hard part is not only the interface. Data source connections, API calls, query configuration, and permission rules are often more difficult. ToolJet's AI capabilities focus on these practical building steps: first helping generate an app skeleton, then assisting with queries, debugging, and workflow automation.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI-generated internal applications&lt;/strong&gt;: ToolJet can generate the basic structure of an internal tool based on requirements, including pages, components, fields, and interaction logic. Teams do not need to start from a blank canvas. They can get an initial version first and then continue adjusting it around real business needs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-assisted data queries and debugging&lt;/strong&gt;: Internal tools often need to connect to databases, APIs, and business systems. Incorrect queries, API errors, and mismatched field mapping can all slow down implementation. ToolJet's AI capabilities can help generate queries and locate configuration issues, reducing the cost of data connection and debugging.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Internal enterprise tools&lt;/strong&gt;: ToolJet is suitable for admin panels, dashboards, approval systems, supplier management, employee directories, order processing back offices, and similar scenarios. For example, an operations team building an order exception handling back office can first generate the app skeleton with AI and then connect databases and APIs for further refinement.&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-enterprise-software-development" rel="noopener noreferrer"&gt;10 Open-Source AI No-Code Tools for Enterprise Software Development&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Flowise
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhjpxw18d7d28qpjus7xh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhjpxw18d7d28qpjus7xh.png" alt="Flowise1-v9o0kz.png" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://flowiseai.com/" rel="noopener noreferrer"&gt;https://flowiseai.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/FlowiseAI/Flowise" rel="noopener noreferrer"&gt;https://github.com/FlowiseAI/Flowise&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 54.1k&lt;/p&gt;

&lt;p&gt;Flowise breaks large language model applications into visual nodes, allowing users to build AI agents and model workflows through drag-and-drop. Models, prompts, memory, tool calls, knowledge bases, and retrievers—parts that usually require code orchestration—can all be combined into runnable AI application flows in Flowise.&lt;/p&gt;

&lt;p&gt;For teams that want to validate AI applications quickly, Flowise is valuable because it is intuitive to build with and inexpensive to iterate on. Teams can first connect the nodes and make the flow run, then adjust retrieval methods, prompts, tool calls, and output logic based on the results.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Visual building for AI agents and model workflows&lt;/strong&gt;: Flowise can build AI agents through a node-based interface and orchestrate multi-step model workflows. Users can connect models, prompts, tool calls, memory, and output logic to quickly create a runnable and adjustable AI application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6apvcmoxp9sw5l9vbjgo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6apvcmoxp9sw5l9vbjgo.png" alt="Flowise2-50tu2f.png" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RAG and knowledge-base Q&amp;amp;A&lt;/strong&gt;: Flowise is suitable for connecting documents, vector databases, retrievers, and large language models to build enterprise knowledge-base Q&amp;amp;A, document assistants, or customer support Q&amp;amp;A. It lowers the barrier from “we have a set of documents” to “we can ask questions directly about those documents.”&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI application prototypes and enterprise document Q&amp;amp;A&lt;/strong&gt;: Flowise is suitable for quickly validating AI chatbots, knowledge-base Q&amp;amp;A, RAG applications, and multi-step agent workflows. Product teams can first build a Q&amp;amp;A assistant based on product documentation, test the results, and then decide whether to move into formal development.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. AnythingLLM
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fytemzns5qtsjrwwcbqc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fytemzns5qtsjrwwcbqc4.png" alt="AnythingLLM1-scerr2.png" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://anythingllm.com/" rel="noopener noreferrer"&gt;https://anythingllm.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Mintplex-Labs/anything-llm" rel="noopener noreferrer"&gt;https://github.com/Mintplex-Labs/anything-llm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 62.2k&lt;/p&gt;

&lt;p&gt;AnythingLLM starts from how teams use enterprise knowledge. It brings document Q&amp;amp;A, RAG, AI agents, multi-user management, and model access into one workspace. For many teams, the first step in using AI is not building a complex application right away. Instead, they want AI to understand internal materials and answer questions in a controlled environment.&lt;/p&gt;

&lt;p&gt;Its key characteristics are local-first usage and private deployment. For teams with data security requirements, deployment method and data control are very important when connecting internal documents, project materials, customer records, or codebases to AI. AnythingLLM is suitable for starting with a private knowledge base and gradually extending into agent tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Private document Q&amp;amp;A and RAG&lt;/strong&gt;: AnythingLLM allows users to upload PDFs, Word documents, CSVs, codebases, and internal documentation, then ask questions around those materials in natural language. It is not general chat; it lets AI answer based on the team's own knowledge and files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI agents&lt;/strong&gt;: AnythingLLM is not only used for document Q&amp;amp;A. It also supports AI agent configuration. Teams can build on the knowledge base and let agents continue completing tasks such as information organization, content generation, and document lookup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Private enterprise knowledge bases&lt;/strong&gt;: AnythingLLM is suitable for consulting firms, R&amp;amp;D teams, customer support teams, and operations teams building internal knowledge Q&amp;amp;A systems. For example, teams can upload project documents, product manuals, and FAQs so employees can query them quickly in natural language.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. open-design
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1qex9ctyyicv1p7tmqn2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1qex9ctyyicv1p7tmqn2.png" alt="open-design-uqlcsv.png" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://open-design.ai/" rel="noopener noreferrer"&gt;https://open-design.ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/nexu-io/open-design" rel="noopener noreferrer"&gt;https://github.com/nexu-io/open-design&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 72.3k&lt;/p&gt;

&lt;p&gt;open-design turns natural-language design generation into an open-source, local-first AI design workspace. It does not focus on business processes or knowledge bases, but on the path from ideas to visual outputs: pages, prototypes, dashboards, slides, images, and videos can all start from a text description.&lt;/p&gt;

&lt;p&gt;For product managers, designers, startup teams, and growth teams, open-design can reduce the cost of early-stage expression. Often, teams are not short of ideas; they struggle to quickly turn ideas into visual materials that can be discussed, modified, and delivered. open-design helps requirements descriptions become prototypes and design drafts faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Generating design outputs from natural language&lt;/strong&gt;: Users can describe the pages, dashboards, landing pages, presentations, or prototypes they want, and open-design generates an initial design result based on the description. It is suitable for turning early ideas into visual content quickly and helping product, design, and business teams align on direction. open-design includes many design systems, making AI-generated results easier to keep visually consistent. Compared with general image generation tools, it focuses more on interface structure, component style, brand guidelines, and reusability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-type outputs and format export&lt;/strong&gt;: open-design can generate web, desktop, and mobile prototypes, dashboards, decks, images, and videos, and supports exports in formats such as HTML, PDF, PPTX, and MP4. This makes it more than an inspiration tool; it is closer to an AI design tool that can enter the delivery process.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Product prototypes and presentation materials&lt;/strong&gt;: open-design is suitable for product managers, designers, startup teams, and growth teams that need to quickly generate product prototypes, landing pages, dashboard mockups, pitch decks, and brand visual assets.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Dify
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu79ufaxzisq4v3zwtlru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu79ufaxzisq4v3zwtlru.png" alt="Dify-ab7fld.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://dify.ai/" rel="noopener noreferrer"&gt;https://dify.ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/langgenius/dify" rel="noopener noreferrer"&gt;https://github.com/langgenius/dify&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 147k&lt;/p&gt;

&lt;p&gt;Dify covers the full process of building, orchestrating, and managing AI applications after launch. It brings AI workflows, RAG, agents, model management, and observability together, making it suitable for building AI applications closer to production environments rather than simple chat windows.&lt;/p&gt;

&lt;p&gt;For teams that already know they want to build an AI product or AI feature, Dify's value is that it productizes many foundational tasks: how models are connected, how knowledge bases are managed, how workflows are orchestrated, how tools are called, and how application performance is observed after launch. If all of these are built from code, development and maintenance costs can be high.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI workflow orchestration&lt;/strong&gt;: Dify can visually orchestrate AI workflows. Complex AI applications are usually not just “user asks, model answers.” They need to identify intent, retrieve information, call tools, evaluate conditions, and generate responses. Dify can organize these steps into maintainable workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RAG and knowledge-base applications&lt;/strong&gt;: Dify provides RAG capabilities and is suitable for building AI Q&amp;amp;A systems based on enterprise documents, product materials, help centers, or internal knowledge bases. For enterprises, RAG is a key capability for making AI answers closer to business content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents and tool calling&lt;/strong&gt;: Dify supports building agents and enabling them to call tools, APIs, or external services. This allows AI to do more than answer questions; it can perform searches, queries, calculations, and calls to business systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model management and observability&lt;/strong&gt;: After an AI application goes live, teams need to continuously monitor answer quality, call cost, response speed, and user feedback. Dify provides model management and observability features so teams can keep optimizing during real use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9pet1khg1vr49we75bmv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9pet1khg1vr49we75bmv.png" alt="Dify2-t9zyjm.png" width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Production-grade AI applications&lt;/strong&gt;: Dify is suitable for building AI chatbots, intelligent customer service, AI assistants, enterprise RAG, and agent applications. If a team wants to deploy an AI application into real business scenarios rather than build a demo only, Dify's workflow, model management, and observability capabilities become more valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. n8n
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fera5vthxrl0p2qtan7kb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fera5vthxrl0p2qtan7kb.png" alt="n8n-itaxkc.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official site: &lt;a href="https://n8n.io/" rel="noopener noreferrer"&gt;https://n8n.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/n8n-io/n8n" rel="noopener noreferrer"&gt;https://github.com/n8n-io/n8n&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 194k&lt;/p&gt;

&lt;p&gt;n8n's most direct value is letting AI enter existing business processes. Many companies do not lack tools. The real problem is that tools are fragmented: CRM, forms, databases, ticketing systems, email, messaging tools, and marketing platforms all run separately. n8n connects these systems and places AI into workflow nodes, allowing AI to read data, judge conditions, generate content, call APIs, and trigger actions.&lt;/p&gt;

&lt;p&gt;It is not only for building an AI application. It is more suitable as an AI automation execution layer. When AI needs to truly enter business systems and complete actions such as updating records, sending notifications, synchronizing data, processing leads, or assigning tasks, n8n's workflow capability becomes valuable.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Highlights
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;AI agent workflows&lt;/strong&gt;: n8n can build AI agent workflows that allow AI to participate in judgment and execution inside automation flows. For example, it can read customer information, decide the next action, generate follow-up content, and write the result back to a CRM or notify the sales team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvv45b08y93w1ni2fhxd1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvv45b08y93w1ni2fhxd1.png" alt="n8n2-fgak9l.png" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business system integration and automated execution&lt;/strong&gt;: n8n can connect a large number of SaaS tools, databases, APIs, and internal systems. AI-generated results can directly enter business workflows, such as triggering processes, updating data, calling APIs, and sending messages, rather than stopping at a text response.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable Use Cases
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Cross-system automation&lt;/strong&gt;: n8n is suitable for sales operations, customer support automation, marketing automation, data synchronization, and ticket routing. For example, after a sales lead enters a form, AI can first identify the customer type, generate follow-up suggestions, then automatically update the CRM and notify sales.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What Are AI No-Code Tools?
&lt;/h3&gt;

&lt;p&gt;AI no-code tools are platforms that combine AI capabilities with visual building. Users do not need to start from code. They can build AI applications, agents, knowledge bases, internal tools, or business systems through natural language, drag-and-drop configuration, and workflow orchestration.&lt;/p&gt;

&lt;p&gt;The point of these tools is not only to “write less code.” They also let AI participate in app building, data processing, workflow execution, and content generation, such as generating pages, orchestrating workflows, calling tools, retrieving knowledge bases, or assisting in the building of enterprise internal systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Why Pay Attention to AI No-Code Tools Now?
&lt;/h3&gt;

&lt;p&gt;AI is changing how no-code tools are used. In the past, no-code mainly solved the problem of “building applications without writing code.” Now, AI makes application generation, process configuration, knowledge retrieval, and agent execution faster.&lt;/p&gt;

&lt;p&gt;But real business applications still need data structures, permission control, workflow rules, deployment options, and long-term maintenance. That is why the combination of AI and no-code is becoming more important: AI improves building efficiency, while no-code platforms provide visual structure and maintainable frameworks.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Which Open-Source AI No-Code Tools on GitHub Are Worth Watching?
&lt;/h3&gt;

&lt;p&gt;This article selected 9 open-source AI no-code tools worth watching on GitHub: n8n, Dify, open-design, AnythingLLM, Flowise, ToolJet, Sim, Budibase, and NocoBase.&lt;/p&gt;

&lt;p&gt;They cover different directions. n8n focuses more on workflow automation; Dify focuses on AI application development; Flowise focuses on visual AI workflows; AnythingLLM focuses on private knowledge bases; open-design focuses on design generation; ToolJet and Budibase focus more on internal tools and operational processes; NocoBase is more suitable for building enterprise business systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Which AI No-Code Tool Is Suitable for Building Enterprise Business Systems?
&lt;/h3&gt;

&lt;p&gt;If the goal is to build enterprise business systems such as CRM, approvals, ticketing, project management, inventory management, or operations back offices, NocoBase is a better fit.&lt;/p&gt;

&lt;p&gt;These systems need more than a page or a chat entry. They need data models, permissions, pages, workflows, operation records, and later extension capabilities. NocoBase is itself an open-source AI no-code/low-code platform for internal enterprise business systems, admin panels, and continuously evolving business applications. It also supports AI participation in data modeling, page configuration, workflow, and plugin development.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Which AI No-Code Tools Are Suitable for Building AI Agents?
&lt;/h3&gt;

&lt;p&gt;If the focus is building AI agents, Dify, Flowise, Sim, n8n, and Budibase are worth looking at first.&lt;/p&gt;

&lt;p&gt;Dify is better for AI applications and agent workflows. Flowise is suitable for visually building large language model flows and agents. Sim focuses more on collaboration across multiple agents. n8n is suitable for letting agents enter cross-system automation workflows. Budibase is more suitable for agents participating in internal requests, approvals, and operations workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Which Tools Are Better for RAG Knowledge Bases?
&lt;/h3&gt;

&lt;p&gt;AnythingLLM, Dify, and Flowise are all suitable for RAG, or retrieval-augmented generation.&lt;/p&gt;

&lt;p&gt;AnythingLLM is better for private knowledge bases and local AI assistants. Dify is better for putting RAG into production-grade AI applications. Flowise is better for visually building and debugging RAG flows. If a knowledge base also needs to connect with enterprise business data, permissions, pages, and workflows, NocoBase can also serve as the business system layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. How Is NocoBase Different from Dify and Flowise?
&lt;/h3&gt;

&lt;p&gt;Dify and Flowise focus more on AI applications themselves. They are suitable for building chat assistants, RAG applications, agent workflows, and large language model flows.&lt;/p&gt;

&lt;p&gt;NocoBase focuses more on enterprise business systems. It looks at how AI enters enterprise application infrastructure such as data models, page configuration, permission management, workflows, and plugin extension. In other words, if you want to build an AI application, Dify or Flowise is worth considering. If you want to build a business system that can run for the long term and remain maintainable, NocoBase deserves closer attention.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Are AI No-Code Tools Suitable for Non-Technical Teams?
&lt;/h3&gt;

&lt;p&gt;Yes, but the learning curve varies by tool.&lt;/p&gt;

&lt;p&gt;NocoBase, Budibase, ToolJet, and AnythingLLM are friendlier to business teams and are suitable for starting from internal tools, business processes, knowledge bases, or enterprise systems. Dify, Flowise, n8n, and Sim are more powerful, but users usually need to understand some models, workflows, APIs, data sources, or automation logic.&lt;/p&gt;

&lt;p&gt;For non-technical teams, a safer approach is to start from a clear scenario, such as knowledge-base Q&amp;amp;A, approval workflows, internal back offices, or customer management systems, and then gradually add AI capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Are Open-Source AI No-Code Tools Suitable for Enterprises?
&lt;/h3&gt;

&lt;p&gt;Yes, but enterprises should not choose tools only based on how many AI features they have. Deployment method, permission control, data security, model access, team collaboration, and long-term maintenance also matter.&lt;/p&gt;

&lt;p&gt;If an enterprise cares more about business systems, tools such as NocoBase, ToolJet, and Budibase are closer to internal application scenarios. If the focus is workflow automation, n8n is worth considering. If the focus is AI applications and knowledge bases, Dify, Flowise, or AnythingLLM may be more suitable. What enterprises really need is a tool that can be implemented, maintained, and connected to real business processes.&lt;/p&gt;

&lt;p&gt;We look forward to seeing AI and no-code platforms integrate more deeply in the future—not only to improve building efficiency, but also to help teams expand into more real business scenarios and make application building, workflow automation, and system maintenance more flexible.&lt;/p&gt;

&lt;p&gt;If you found this article helpful, feel free to share it with friends who are following AI, no-code tools, or enterprise application development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open Source AI Agent Tools with the Most GitHub Stars &lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;5 Open-Source Internal Tools to Use with Hermes Agent&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;OpenClaw and 5 Open-Source Tools for Monitoring Business Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/opencode-open-source-tools-ai-agents" rel="noopener noreferrer"&gt;What Open-Source Tools Work Well with OpenCode? 5 Projects to Try&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/building-internal-tools-with-codex" rel="noopener noreferrer"&gt;Building Internal Tools with Codex: 6 Open-Source Projects for Developers&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-tools-after-claude-code" rel="noopener noreferrer"&gt;After Claude Code: 6 Open-Source Tools You Should Know&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-enterprise-software-development" rel="noopener noreferrer"&gt;Top 10 Open-Source AI And No-Code Tools for Enterprise Software Development&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/8-open-source-ai-agent-platforms-for-internal-tools" rel="noopener noreferrer"&gt;8 Open-Source AI Agent Platforms for Building Internal Tools&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/the-best-self-hosted-crm-for-enterprise-teams" rel="noopener noreferrer"&gt;The Best Enterprise-Grade Self-Hosted CRMs with RBAC, AI, and Open API Support&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-open-source-integration-tools-to-replace-custom-middleware" rel="noopener noreferrer"&gt;6 Best Open-Source Tools to Replace Custom Integration Middleware&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>github</category>
    </item>
    <item>
      <title>Weekly Updates: Add Support for Mobile Layout</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 26 Jun 2026 16:49:29 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updates-add-support-for-mobile-layout-a4e</link>
      <guid>https://dev.to/nocobase/weekly-updates-add-support-for-mobile-layout-a4e</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/weekly-updates-20260626" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/weekly-updates-20260626&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated across three branches: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;next&lt;/code&gt;, and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: The most stable version to date, recommended for installation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;: Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It is mainly used to collect feedback from test users and further optimize features. Ideal for test users who want to experience new features early and provide feedback.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;: Alpha version, contains the latest feature code, may be incomplete or unstable, and is mainly used for internal development and rapid iteration. Suited for technical users interested in cutting-edge product capabilities, but not recommended for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.11" rel="noopener noreferrer"&gt;v2.1.11&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-25&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Backup Manager]&lt;/strong&gt; Fixed version-control restore failures when selected-collection backups contain database views or related database objects. (&lt;a href="https://github.com/nocobase/nocobase/pull/9827" rel="noopener noreferrer"&gt;#9827&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow Engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the issue where the block toolbar may not reappear after dragging a field (&lt;a href="https://github.com/nocobase/nocobase/pull/9848" rel="noopener noreferrer"&gt;#9848&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where resizing fields closes the detail popup (&lt;a href="https://github.com/nocobase/nocobase/pull/9850" rel="noopener noreferrer"&gt;#9850&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Client V2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix assigning values to display association fields in filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/9875" rel="noopener noreferrer"&gt;#9875&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where union roles could not be correctly resolved by variables in v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9611" rel="noopener noreferrer"&gt;#9611&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI]&lt;/strong&gt; Added support for using NocoBase request variables in user-bound MCP configurations and prevented user-bound MCP connection failures from interrupting AI employee conversations. (&lt;a href="https://github.com/nocobase/nocobase/pull/9888" rel="noopener noreferrer"&gt;#9888&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[CLI]&lt;/strong&gt; Prepare npm source dev dependencies (&lt;a href="https://github.com/nocobase/nocobase/pull/9882" rel="noopener noreferrer"&gt;#9882&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI Templates]&lt;/strong&gt; Fixed an issue where association field block templates could not be used. (&lt;a href="https://github.com/nocobase/nocobase/pull/9406" rel="noopener noreferrer"&gt;#9406&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge Base]&lt;/strong&gt; Fixed AI knowledge base document table and hit-test result cards overflowing on narrow screens or with long filenames. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Version Control]&lt;/strong&gt; Fixed version-control restore failures when selected-collection backups contain database views or related database objects. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Multi-Space]&lt;/strong&gt; Fixed the spaces settings page so it can load spaces beyond the first 20 records. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.10" rel="noopener noreferrer"&gt;v2.1.10&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-23&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI]&lt;/strong&gt; Added support for using current user variables in remote MCP client URLs and headers. (&lt;a href="https://github.com/nocobase/nocobase/pull/9828" rel="noopener noreferrer"&gt;#9828&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[CLI]&lt;/strong&gt; Support install hook scripts (&lt;a href="https://github.com/nocobase/nocobase/pull/9824" rel="noopener noreferrer"&gt;#9824&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Client V2]&lt;/strong&gt; Show field-level validation rules as read-only inherited rules in UI field validation settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9819" rel="noopener noreferrer"&gt;#9819&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Flow Engine]&lt;/strong&gt; Added the current block to the user context by default when building AI employees using the Flow Surface API. (&lt;a href="https://github.com/nocobase/nocobase/pull/9840" rel="noopener noreferrer"&gt;#9840&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Client V2]&lt;/strong&gt; Fixed block did not refresh after blocks settings updated. (&lt;a href="https://github.com/nocobase/nocobase/pull/9843" rel="noopener noreferrer"&gt;#9843&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Custom Action Event]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed custom-context trigger workflow actions so frontend variables in request payloads are resolved before submission in v2 action buttons (&lt;a href="https://github.com/nocobase/nocobase/pull/9853" rel="noopener noreferrer"&gt;#9853&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed the v2 custom action workflow binding selector so enabled workflows are filtered with boolean values and can be listed correctly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9865" rel="noopener noreferrer"&gt;#9865&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Gantt]&lt;/strong&gt; Fixed Gantt task popup template settings not applying or clearing correctly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9835" rel="noopener noreferrer"&gt;#9835&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed approval action node validation to allow &lt;code&gt;null&lt;/code&gt; for &lt;code&gt;applyDetail&lt;/code&gt; or &lt;code&gt;approvalUid&lt;/code&gt; and skip processing unless a string reference is provided by mytharcher&lt;/li&gt;
&lt;li&gt;Fix the issue where related approvals do not load or refresh correctly by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.2.0-beta.7" rel="noopener noreferrer"&gt;v2.2.0-beta.7&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-25&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI]&lt;/strong&gt; Added support for using current user variables in remote MCP client URLs and headers. (&lt;a href="https://github.com/nocobase/nocobase/pull/9828" rel="noopener noreferrer"&gt;#9828&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Client V2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed missing Settings entries for Client V2 plugin manager cards when a plugin uses a shared or legacy settings path. (&lt;a href="https://github.com/nocobase/nocobase/pull/9852" rel="noopener noreferrer"&gt;#9852&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Adjusted the v2 System settings menu order and page panel height to match the standard settings layout. (&lt;a href="https://github.com/nocobase/nocobase/pull/9849" rel="noopener noreferrer"&gt;#9849&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Backup Manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed version-control restore failures when selected-collection backups contain database views or related database objects. (&lt;a href="https://github.com/nocobase/nocobase/pull/9827" rel="noopener noreferrer"&gt;#9827&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Improved backup manager table styling and long file name display. (&lt;a href="https://github.com/nocobase/nocobase/pull/9864" rel="noopener noreferrer"&gt;#9864&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Public Forms]&lt;/strong&gt; Separated v1 and v2 public form lists and fixed the v2 Configure page to open a configurable form detail page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9851" rel="noopener noreferrer"&gt;#9851&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[User Data Synchronization]&lt;/strong&gt; Added modern UI support for user data synchronization settings (&lt;a href="https://github.com/nocobase/nocobase/pull/9837" rel="noopener noreferrer"&gt;#9837&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[WeCom]&lt;/strong&gt; Added modern UI support for WeCom authentication, sync, and notification settings by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Added modern UI support for DingTalk authentication, sync, and notification settings by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow Engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the issue where resizing fields closes the detail popup (&lt;a href="https://github.com/nocobase/nocobase/pull/9850" rel="noopener noreferrer"&gt;#9850&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where the block toolbar may not reappear after dragging a field (&lt;a href="https://github.com/nocobase/nocobase/pull/9848" rel="noopener noreferrer"&gt;#9848&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Client V2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where union roles could not be correctly resolved by variables in v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9611" rel="noopener noreferrer"&gt;#9611&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fix assigning values to display association fields in filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/9875" rel="noopener noreferrer"&gt;#9875&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[CLI]&lt;/strong&gt; Prepare npm source dev dependencies (&lt;a href="https://github.com/nocobase/nocobase/pull/9882" rel="noopener noreferrer"&gt;#9882&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI]&lt;/strong&gt; Added support for using NocoBase request variables in user-bound MCP configurations and prevented user-bound MCP connection failures from interrupting AI employee conversations. (&lt;a href="https://github.com/nocobase/nocobase/pull/9888" rel="noopener noreferrer"&gt;#9888&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI Templates]&lt;/strong&gt; Fixed an issue where association field block templates could not be used. (&lt;a href="https://github.com/nocobase/nocobase/pull/9406" rel="noopener noreferrer"&gt;#9406&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data Source Manager]&lt;/strong&gt; Added a warning and quick setup for v2 data source collections without a primary key or record unique key. (&lt;a href="https://github.com/nocobase/nocobase/pull/9872" rel="noopener noreferrer"&gt;#9872&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Embed NocoBase]&lt;/strong&gt; Fixed v2 embed pages losing token-based access after the URL token is removed and the page is refreshed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9857" rel="noopener noreferrer"&gt;#9857&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Custom Action Event]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the v2 custom action workflow binding selector so enabled workflows are filtered with boolean values and can be listed correctly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9865" rel="noopener noreferrer"&gt;#9865&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed custom-context trigger workflow actions so frontend variables in request payloads are resolved before submission in v2 action buttons (&lt;a href="https://github.com/nocobase/nocobase/pull/9853" rel="noopener noreferrer"&gt;#9853&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Multi-Space]&lt;/strong&gt; Fixed the spaces settings page so it can load spaces beyond the first 20 records. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Version Control]&lt;/strong&gt; Fixed version-control restore failures when selected-collection backups contain database views or related database objects. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge Base]&lt;/strong&gt; Fixed AI knowledge base document table and hit-test result cards overflowing on narrow screens or with long filenames. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fixed approval action node validation to allow &lt;code&gt;null&lt;/code&gt; for &lt;code&gt;applyDetail&lt;/code&gt; or &lt;code&gt;approvalUid&lt;/code&gt; and skip processing unless a string reference is provided by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.2.0-beta.6" rel="noopener noreferrer"&gt;v2.2.0-beta.6&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-22&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[CLI]&lt;/strong&gt; Support install hook scripts (&lt;a href="https://github.com/nocobase/nocobase/pull/9824" rel="noopener noreferrer"&gt;#9824&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[UI Layout]&lt;/strong&gt; Add support for mobile layout (&lt;a href="https://github.com/nocobase/nocobase/pull/9641" rel="noopener noreferrer"&gt;#9641&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Backup Manager]&lt;/strong&gt; Support backup and restore for KingBase as the primary database (&lt;a href="https://github.com/nocobase/nocobase/pull/9791" rel="noopener noreferrer"&gt;#9791&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Multi-Portal]&lt;/strong&gt; Add Multi-Portal plugin by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Migration Manager]&lt;/strong&gt; Support migrations for KingBase as the primary database. by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Client V2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Show field-level validation rules as read-only inherited rules in UI field validation settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9819" rel="noopener noreferrer"&gt;#9819&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Add override value option for field value settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9578" rel="noopener noreferrer"&gt;#9578&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[General]&lt;/strong&gt; Improved AI knowledge base retrieval and documentation. (&lt;a href="https://github.com/nocobase/nocobase/pull/9765" rel="noopener noreferrer"&gt;#9765&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow Engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added the current block to the user context by default when building AI employees using the Flow Surface API. (&lt;a href="https://github.com/nocobase/nocobase/pull/9840" rel="noopener noreferrer"&gt;#9840&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Open RunJS browser globals. (&lt;a href="https://github.com/nocobase/nocobase/pull/9841" rel="noopener noreferrer"&gt;#9841&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Stabilize update options test (&lt;a href="https://github.com/nocobase/nocobase/pull/9773" rel="noopener noreferrer"&gt;#9773&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Access Control]&lt;/strong&gt; Aligned the v2 Users &amp;amp; Permissions settings pages with v1 behavior, including pagination totals, department tree behavior, selected styles, and internal permissions-panel scrolling. (&lt;a href="https://github.com/nocobase/nocobase/pull/9810" rel="noopener noreferrer"&gt;#9810&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Backup Manager]&lt;/strong&gt; Tables whose collection &lt;code&gt;dataCategory&lt;/code&gt; is marked as &lt;code&gt;'runtime'&lt;/code&gt; are now excluded from backups automatically. (&lt;a href="https://github.com/nocobase/nocobase/pull/9804" rel="noopener noreferrer"&gt;#9804&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge Base]&lt;/strong&gt; Improved AI knowledge base document segmentation, segment management, hit tests, and document workflow node support. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Client V2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed block did not refresh after blocks settings updated. (&lt;a href="https://github.com/nocobase/nocobase/pull/9843" rel="noopener noreferrer"&gt;#9843&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed custom action workflow trigger buttons sending custom context JSON under an extra &lt;code&gt;values&lt;/code&gt; property or as a serialized string. (&lt;a href="https://github.com/nocobase/nocobase/pull/9815" rel="noopener noreferrer"&gt;#9815&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed an issue where configuring an association field value as a fixed value or default value would not take effect. (&lt;a href="https://github.com/nocobase/nocobase/pull/9820" rel="noopener noreferrer"&gt;#9820&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed an issue where event flows on sub-table columns would execute incorrectly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9821" rel="noopener noreferrer"&gt;#9821&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Remove unexpected updateAssociationValues from association fields (&lt;a href="https://github.com/nocobase/nocobase/pull/9812" rel="noopener noreferrer"&gt;#9812&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where form submission would show incorrect message when a subform contained a sub-table. (&lt;a href="https://github.com/nocobase/nocobase/pull/9807" rel="noopener noreferrer"&gt;#9807&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed incompatible LangChain dependency resolutions for AI plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9831" rel="noopener noreferrer"&gt;#9831&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Locked &lt;code&gt;@langchain/openai&lt;/code&gt; to patch-level updates for AI packages. (&lt;a href="https://github.com/nocobase/nocobase/pull/9829" rel="noopener noreferrer"&gt;#9829&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App]&lt;/strong&gt; Ignore unrelated &lt;code&gt;currentScript&lt;/code&gt; when inferring plugin public path (&lt;a href="https://github.com/nocobase/nocobase/pull/9839" rel="noopener noreferrer"&gt;#9839&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Auth]&lt;/strong&gt; Encrypted password data is no longer included in sign-in status responses (&lt;a href="https://github.com/nocobase/nocobase/pull/9836" rel="noopener noreferrer"&gt;#9836&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Gantt]&lt;/strong&gt; Fixed Gantt task popup template settings not applying or clearing correctly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9835" rel="noopener noreferrer"&gt;#9835&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Print]&lt;/strong&gt; Fixed v2 detail block printing so empty detail blocks no longer print the whole page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9832" rel="noopener noreferrer"&gt;#9832&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI Templates]&lt;/strong&gt; Fixed incorrect default context for ctx.openView. (&lt;a href="https://github.com/nocobase/nocobase/pull/9811" rel="noopener noreferrer"&gt;#9811&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File Manager]&lt;/strong&gt; Fixed 404 errors when uploading files to attachment URL fields in external data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/9809" rel="noopener noreferrer"&gt;#9809&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Custom Request]&lt;/strong&gt; Fixed v2 custom request actions showing an extra error when request settings are not configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9802" rel="noopener noreferrer"&gt;#9802&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed workflow dispatcher recovery after unexpected dispatch errors. (&lt;a href="https://github.com/nocobase/nocobase/pull/9783" rel="noopener noreferrer"&gt;#9783&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI Employees]&lt;/strong&gt; Fixed AI employee shortcut task triggers so attachments from the current work context are included when running a task from the shortcut profile. (&lt;a href="https://github.com/nocobase/nocobase/pull/9808" rel="noopener noreferrer"&gt;#9808&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data Source: External NocoBase]&lt;/strong&gt; Proxy NocoBase external data source file upload and storage actions by upload data source by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI: Knowledge Base]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed incompatible LangChain dependency resolutions for the AI knowledge base plugin. by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed unclear failures when enabling the AI knowledge base plugin without the AI plugin available. by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Multi-Space]&lt;/strong&gt; Fixed authentication recovery requests being blocked by stale multi-space headers. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt; Fixed asynchronous subflows so parent workflows can resume after worker restart or in-memory event mapping loss. by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix the issue where related approvals do not load or refresh correctly by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App Supervisor]&lt;/strong&gt; Fixed a crash when remote WebSocket proxy responses fail by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.2.0-alpha.2" rel="noopener noreferrer"&gt;v2.2.0-alpha.2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-26&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Client V2]&lt;/strong&gt; Add an environment variable to configure legacy and modern route entry modes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9891" rel="noopener noreferrer"&gt;#9891&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI]&lt;/strong&gt; Added support for using current user variables in remote MCP client URLs and headers. (&lt;a href="https://github.com/nocobase/nocobase/pull/9828" rel="noopener noreferrer"&gt;#9828&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[CLI]&lt;/strong&gt; Support install hook scripts (&lt;a href="https://github.com/nocobase/nocobase/pull/9824" rel="noopener noreferrer"&gt;#9824&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Notification: Email]&lt;/strong&gt; Migrated the workflow notification node client to v2, restored channel-specific notification forms, and kept legacy workflow route compatibility for migrated notification configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9817" rel="noopener noreferrer"&gt;#9817&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Mailer Node]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added v2 client support for configuring the workflow mailer node. (&lt;a href="https://github.com/nocobase/nocobase/pull/9825" rel="noopener noreferrer"&gt;#9825&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Add attachment support to the workflow mailer node. (&lt;a href="https://github.com/nocobase/nocobase/pull/9724" rel="noopener noreferrer"&gt;#9724&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI Layout]&lt;/strong&gt; Add support for mobile layout (&lt;a href="https://github.com/nocobase/nocobase/pull/9641" rel="noopener noreferrer"&gt;#9641&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Backup Manager]&lt;/strong&gt; Support backup and restore for KingBase as the primary database (&lt;a href="https://github.com/nocobase/nocobase/pull/9791" rel="noopener noreferrer"&gt;#9791&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Migrate the Workflow settings page to the v2 client and share a reusable draggable category-tabs component via &lt;code&gt;@nocobase/client-v2&lt;/code&gt;. (&lt;a href="https://github.com/nocobase/nocobase/pull/9645" rel="noopener noreferrer"&gt;#9645&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Added workflow database transaction scope support. (&lt;a href="https://github.com/nocobase/nocobase/pull/9742" rel="noopener noreferrer"&gt;#9742&lt;/a&gt;) by mytharcher
Reference: &lt;a href="//docs/docs/en/workflow/nodes/transaction.md"&gt;Database Transaction&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI Employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added an external vector store configuration form for AI knowledge bases. (&lt;a href="https://github.com/nocobase/nocobase/pull/9723" rel="noopener noreferrer"&gt;#9723&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Multi-Portal]&lt;/strong&gt; Add Multi-Portal plugin by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Database Transaction Node]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added a client-v2 implementation for the workflow database transaction node while preserving the legacy client entry. by katherinehhh&lt;/li&gt;
&lt;li&gt;Added the database transaction workflow node plugin. by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge Base]&lt;/strong&gt; Added an external vector store configuration form for AI knowledge bases. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration Manager]&lt;/strong&gt; Support migrations for KingBase as the primary database. by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Email Manager]&lt;/strong&gt; Migrated the email manager client to v2. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[General]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refined Russian documentation translation for improved wording, readability, and terminology consistency. (&lt;a href="https://github.com/nocobase/nocobase/pull/9816" rel="noopener noreferrer"&gt;#9816&lt;/a&gt;) by sembaev-a-a&lt;/li&gt;
&lt;li&gt;Improved AI knowledge base retrieval and documentation. (&lt;a href="https://github.com/nocobase/nocobase/pull/9765" rel="noopener noreferrer"&gt;#9765&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Updated the Chinese documentation label for the Version Control plugin. (&lt;a href="https://github.com/nocobase/nocobase/pull/9776" rel="noopener noreferrer"&gt;#9776&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Added Russian translations for new UI strings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9771" rel="noopener noreferrer"&gt;#9771&lt;/a&gt;) by sembaev-a-a&lt;/li&gt;
&lt;li&gt;Refined Russian documentation translation for improved wording, readability, and terminology consistency. (&lt;a href="https://github.com/nocobase/nocobase/pull/9754" rel="noopener noreferrer"&gt;#9754&lt;/a&gt;) by sembaev-a-a&lt;/li&gt;
&lt;li&gt;Add a version control scenario to the AI builder quick start (&lt;a href="https://github.com/nocobase/nocobase/pull/9748" rel="noopener noreferrer"&gt;#9748&lt;/a&gt;) by Molunerfinn
Reference: &lt;a href="https://docs.nocobase.com/en/ai-builder" rel="noopener noreferrer"&gt;AI Builder Quick Start&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Improved the version control documentation with AI Builder automatic revision guidance. (&lt;a href="https://github.com/nocobase/nocobase/pull/9745" rel="noopener noreferrer"&gt;#9745&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow Engine]&lt;/strong&gt; Automatically refreshed related data blocks when RunJS closes a popup after updating data through resource APIs (&lt;a href="https://github.com/nocobase/nocobase/pull/9873" rel="noopener noreferrer"&gt;#9873&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Client V2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed missing Settings entries for Client V2 plugin manager cards when a plugin uses a shared or legacy settings path. (&lt;a href="https://github.com/nocobase/nocobase/pull/9852" rel="noopener noreferrer"&gt;#9852&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Adjusted the v2 System settings menu order and page panel height to match the standard settings layout. (&lt;a href="https://github.com/nocobase/nocobase/pull/9849" rel="noopener noreferrer"&gt;#9849&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Show field-level validation rules as read-only inherited rules in UI field validation settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9819" rel="noopener noreferrer"&gt;#9819&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Add override value option for field value settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9578" rel="noopener noreferrer"&gt;#9578&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Supported current item variables in the data scope of association field columns within form sub-tables. (&lt;a href="https://github.com/nocobase/nocobase/pull/9444" rel="noopener noreferrer"&gt;#9444&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[CLI]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add env config schema version (&lt;a href="https://github.com/nocobase/nocobase/pull/9782" rel="noopener noreferrer"&gt;#9782&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;Normalize app compat build versions (&lt;a href="https://github.com/nocobase/nocobase/pull/9763" rel="noopener noreferrer"&gt;#9763&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;Support updating skills to a specified version (&lt;a href="https://github.com/nocobase/nocobase/pull/9760" rel="noopener noreferrer"&gt;#9760&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;Clarify init setup wording (&lt;a href="https://github.com/nocobase/nocobase/pull/9750" rel="noopener noreferrer"&gt;#9750&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JSON Calculation]&lt;/strong&gt; Migrated the workflow JSON calculation node configuration UI to the v2 workflow canvas while preserving v1 canvas compatibility. (&lt;a href="https://github.com/nocobase/nocobase/pull/9902" rel="noopener noreferrer"&gt;#9902&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simplified workflow v2 create/update field assignment, improved selected variable display, and avoided generating unused assign-form model data. (&lt;a href="https://github.com/nocobase/nocobase/pull/9887" rel="noopener noreferrer"&gt;#9887&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Exported workflow v2 canvas extension APIs for downstream workflow node plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9834" rel="noopener noreferrer"&gt;#9834&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Stabilize update options test (&lt;a href="https://github.com/nocobase/nocobase/pull/9773" rel="noopener noreferrer"&gt;#9773&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Migrate the workflow output node configuration to v2 and align v2 workflow result viewers with the legacy display behavior for string results. (&lt;a href="https://github.com/nocobase/nocobase/pull/9813" rel="noopener noreferrer"&gt;#9813&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Migrate the workflow end node to the v2 implementation. (&lt;a href="https://github.com/nocobase/nocobase/pull/9795" rel="noopener noreferrer"&gt;#9795&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Improved workflow metadata editing by allowing descriptions to be edited from the details modal and pre-filling duplicate workflow metadata. (&lt;a href="https://github.com/nocobase/nocobase/pull/9766" rel="noopener noreferrer"&gt;#9766&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Backup Manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed version-control restore failures when selected-collection backups contain database views or related database objects. (&lt;a href="https://github.com/nocobase/nocobase/pull/9827" rel="noopener noreferrer"&gt;#9827&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Improved backup manager table styling and long file name display. (&lt;a href="https://github.com/nocobase/nocobase/pull/9864" rel="noopener noreferrer"&gt;#9864&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Tables whose collection &lt;code&gt;dataCategory&lt;/code&gt; is marked as &lt;code&gt;'runtime'&lt;/code&gt; are now excluded from backups automatically. (&lt;a href="https://github.com/nocobase/nocobase/pull/9804" rel="noopener noreferrer"&gt;#9804&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Public Forms]&lt;/strong&gt; Separated v1 and v2 public form lists and fixed the v2 Configure page to open a configurable form detail page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9851" rel="noopener noreferrer"&gt;#9851&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Custom Action Event]&lt;/strong&gt; Migrated workflow triggers and bind-workflow settings to client-v2, including action trigger, custom action trigger, request interception trigger, and submit/update action workflow binding settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9845" rel="noopener noreferrer"&gt;#9845&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[User Data Synchronization]&lt;/strong&gt; Added modern UI support for user data synchronization settings (&lt;a href="https://github.com/nocobase/nocobase/pull/9837" rel="noopener noreferrer"&gt;#9837&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow Engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open RunJS browser globals. (&lt;a href="https://github.com/nocobase/nocobase/pull/9841" rel="noopener noreferrer"&gt;#9841&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Added the current block to the user context by default when building AI employees using the Flow Surface API. (&lt;a href="https://github.com/nocobase/nocobase/pull/9840" rel="noopener noreferrer"&gt;#9840&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: HTTP Request Node]&lt;/strong&gt; Migrated the workflow HTTP request node to client-v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9806" rel="noopener noreferrer"&gt;#9806&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Access Control]&lt;/strong&gt; Aligned the v2 Users &amp;amp; Permissions settings pages with v1 behavior, including pagination totals, department tree behavior, selected styles, and internal permissions-panel scrolling. (&lt;a href="https://github.com/nocobase/nocobase/pull/9810" rel="noopener noreferrer"&gt;#9810&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Migrated the JavaScript workflow node to client-v2 (&lt;a href="https://github.com/nocobase/nocobase/pull/9805" rel="noopener noreferrer"&gt;#9805&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File Manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved PDF previews by using the browser-native viewer for cross-origin PDF files while keeping same-origin PDF files rendered with PDF.js. (&lt;a href="https://github.com/nocobase/nocobase/pull/9796" rel="noopener noreferrer"&gt;#9796&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Added selectable text support to the file manager PDF preview when the PDF contains embedded text. (&lt;a href="https://github.com/nocobase/nocobase/pull/9781" rel="noopener noreferrer"&gt;#9781&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Users]&lt;/strong&gt; Improved the Users &amp;amp; Permissions v2 page layout and department tree behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/9780" rel="noopener noreferrer"&gt;#9780&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Batch Edit]&lt;/strong&gt; Improved v2 action plugin loading and kept migrated action buttons in a stable order. (&lt;a href="https://github.com/nocobase/nocobase/pull/9778" rel="noopener noreferrer"&gt;#9778&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import Records]&lt;/strong&gt; Improved import and async task error dialogs so long error messages can be fully read without breaking the layout. (&lt;a href="https://github.com/nocobase/nocobase/pull/9746" rel="noopener noreferrer"&gt;#9746&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Locale Tester]&lt;/strong&gt; Added a client v2 settings page for the locale tester. (&lt;a href="https://github.com/nocobase/nocobase/pull/9744" rel="noopener noreferrer"&gt;#9744&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Version Control]&lt;/strong&gt; Updated the Chinese display name of the Version Control plugin. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import Records Pro]&lt;/strong&gt; Improved import dialogs so long error messages remain readable and v2 processing mode can be selected directly from the settings menu. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge Base]&lt;/strong&gt; Improved AI knowledge base document segmentation, segment management, hit tests, and document workflow node support. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[WeCom]&lt;/strong&gt; Added modern UI support for WeCom authentication, sync, and notification settings by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Added modern UI support for DingTalk authentication, sync, and notification settings by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Client V2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed a brief no-pages prompt flash when refreshing in UI Editor mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/9918" rel="noopener noreferrer"&gt;#9918&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed v2 form submit success redirects so they can reference the saved response record. (&lt;a href="https://github.com/nocobase/nocobase/pull/9907" rel="noopener noreferrer"&gt;#9907&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed table blocks failing when a configured drag sorting field has been deleted, and allowed clearing the drag sorting field setting. (&lt;a href="https://github.com/nocobase/nocobase/pull/9867" rel="noopener noreferrer"&gt;#9867&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed v2 table row action buttons changing row height. (&lt;a href="https://github.com/nocobase/nocobase/pull/9866" rel="noopener noreferrer"&gt;#9866&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fix assigning values to display association fields in filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/9875" rel="noopener noreferrer"&gt;#9875&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where union roles could not be correctly resolved by variables in v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9611" rel="noopener noreferrer"&gt;#9611&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed block did not refresh after blocks settings updated. (&lt;a href="https://github.com/nocobase/nocobase/pull/9843" rel="noopener noreferrer"&gt;#9843&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed custom action workflow trigger buttons sending custom context JSON under an extra &lt;code&gt;values&lt;/code&gt; property or as a serialized string. (&lt;a href="https://github.com/nocobase/nocobase/pull/9815" rel="noopener noreferrer"&gt;#9815&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed an issue where configuring an association field value as a fixed value or default value would not take effect. (&lt;a href="https://github.com/nocobase/nocobase/pull/9820" rel="noopener noreferrer"&gt;#9820&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed an issue where event flows on sub-table columns would execute incorrectly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9821" rel="noopener noreferrer"&gt;#9821&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Remove unexpected updateAssociationValues from association fields (&lt;a href="https://github.com/nocobase/nocobase/pull/9812" rel="noopener noreferrer"&gt;#9812&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where form submission would show incorrect message when a subform contained a sub-table. (&lt;a href="https://github.com/nocobase/nocobase/pull/9807" rel="noopener noreferrer"&gt;#9807&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed untranslated Yes/No options in v2 filter form checkbox dropdowns. (&lt;a href="https://github.com/nocobase/nocobase/pull/9792" rel="noopener noreferrer"&gt;#9792&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed incorrect display and format settings when v2 table association title fields use time, date-only, or datetime fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/9785" rel="noopener noreferrer"&gt;#9785&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed the issue that not able to update event flow settings after saving block as template. (&lt;a href="https://github.com/nocobase/nocobase/pull/9585" rel="noopener noreferrer"&gt;#9585&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed migration progress not showing its dedicated progress view (&lt;a href="https://github.com/nocobase/nocobase/pull/9761" rel="noopener noreferrer"&gt;#9761&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Fix the issue where v2 pages could keep loading after signing in (&lt;a href="https://github.com/nocobase/nocobase/pull/9738" rel="noopener noreferrer"&gt;#9738&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[CLI]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support pnpm and yarn global self update (&lt;a href="https://github.com/nocobase/nocobase/pull/9912" rel="noopener noreferrer"&gt;#9912&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;Prepare npm source dev dependencies (&lt;a href="https://github.com/nocobase/nocobase/pull/9882" rel="noopener noreferrer"&gt;#9882&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;Require Node.js 22 for nb (&lt;a href="https://github.com/nocobase/nocobase/pull/9749" rel="noopener noreferrer"&gt;#9749&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Client]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Corrected several copy and typo issues across locales, related UI text, and documentation. (&lt;a href="https://github.com/nocobase/nocobase/pull/9905" rel="noopener noreferrer"&gt;#9905&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fix the issue where fields in horizontal subforms are too narrow to display data (&lt;a href="https://github.com/nocobase/nocobase/pull/9755" rel="noopener noreferrer"&gt;#9755&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow Engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where some parameters of ctx.openView in RunJS would not take effect. (&lt;a href="https://github.com/nocobase/nocobase/pull/9883" rel="noopener noreferrer"&gt;#9883&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fix the issue where resizing fields closes the detail popup (&lt;a href="https://github.com/nocobase/nocobase/pull/9850" rel="noopener noreferrer"&gt;#9850&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where the block toolbar may not reappear after dragging a field (&lt;a href="https://github.com/nocobase/nocobase/pull/9848" rel="noopener noreferrer"&gt;#9848&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed Vietnamese and Chinese IME input handling in v2 single-line text and textarea fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/9764" rel="noopener noreferrer"&gt;#9764&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added support for using NocoBase request variables in user-bound MCP configurations and prevented user-bound MCP connection failures from interrupting AI employee conversations. (&lt;a href="https://github.com/nocobase/nocobase/pull/9888" rel="noopener noreferrer"&gt;#9888&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed incompatible LangChain dependency resolutions for AI plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9831" rel="noopener noreferrer"&gt;#9831&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Locked &lt;code&gt;@langchain/openai&lt;/code&gt; to patch-level updates for AI packages. (&lt;a href="https://github.com/nocobase/nocobase/pull/9829" rel="noopener noreferrer"&gt;#9829&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App]&lt;/strong&gt; Ignore unrelated &lt;code&gt;currentScript&lt;/code&gt; when inferring plugin public path (&lt;a href="https://github.com/nocobase/nocobase/pull/9839" rel="noopener noreferrer"&gt;#9839&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Auth]&lt;/strong&gt; Encrypted password data is no longer included in sign-in status responses (&lt;a href="https://github.com/nocobase/nocobase/pull/9836" rel="noopener noreferrer"&gt;#9836&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[CLI v1]&lt;/strong&gt; Fix the &lt;code&gt;yarn dev&lt;/code&gt; error after upgrading projects created by &lt;code&gt;create-nocobase-app&lt;/code&gt; from 2.0 to 2.1. (&lt;a href="https://github.com/nocobase/nocobase/pull/9775" rel="noopener noreferrer"&gt;#9775&lt;/a&gt;) by Molunerfinn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Server]&lt;/strong&gt; Fixed unsafe plugin name handling in &lt;code&gt;pm:enable&lt;/code&gt; to prevent local file inclusion through plugin resolution. (&lt;a href="https://github.com/nocobase/nocobase/pull/9701" rel="noopener noreferrer"&gt;#9701&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Backup Manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed inconsistent bold labels on the v2 Backup manager settings page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9908" rel="noopener noreferrer"&gt;#9908&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed a security issue where unsafe PostgreSQL schema names could be accepted during backup restore (&lt;a href="https://github.com/nocobase/nocobase/pull/9758" rel="noopener noreferrer"&gt;#9758&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI Employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed AI employee chat failures caused by replaying malformed tool calls. (&lt;a href="https://github.com/nocobase/nocobase/pull/9900" rel="noopener noreferrer"&gt;#9900&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed AI employee shortcut task triggers so attachments from the current work context are included when running a task from the shortcut profile. (&lt;a href="https://github.com/nocobase/nocobase/pull/9808" rel="noopener noreferrer"&gt;#9808&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed an issue where AI employees could not correctly fill sub-table data. (&lt;a href="https://github.com/nocobase/nocobase/pull/9801" rel="noopener noreferrer"&gt;#9801&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed loss of message configuration in workflow LLM nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9743" rel="noopener noreferrer"&gt;#9743&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed an issue where attachments pasted into the AI employee dialog could not be removed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9753" rel="noopener noreferrer"&gt;#9753&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the workflow v2 add-node menu so unavailable node types are disabled according to workflow and branch rules (&lt;a href="https://github.com/nocobase/nocobase/pull/9855" rel="noopener noreferrer"&gt;#9855&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Restored debounced remote search for workflow collection trigger manual execution and aligned the selector with the v1 200-record fetch behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/9870" rel="noopener noreferrer"&gt;#9870&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed workflow dispatcher recovery after unexpected dispatch errors. (&lt;a href="https://github.com/nocobase/nocobase/pull/9783" rel="noopener noreferrer"&gt;#9783&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed workflow last modifier tracking after workflow nodes are changed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9769" rel="noopener noreferrer"&gt;#9769&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed workflow timeout handling so aborted executions and their pending jobs are updated atomically. (&lt;a href="https://github.com/nocobase/nocobase/pull/9768" rel="noopener noreferrer"&gt;#9768&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: iframe]&lt;/strong&gt; Fixed 403 errors for normal users when viewing v2 iframe blocks in HTML mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/9889" rel="noopener noreferrer"&gt;#9889&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[UI Templates]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where association field block templates could not be used. (&lt;a href="https://github.com/nocobase/nocobase/pull/9406" rel="noopener noreferrer"&gt;#9406&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed incorrect default context for ctx.openView. (&lt;a href="https://github.com/nocobase/nocobase/pull/9811" rel="noopener noreferrer"&gt;#9811&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Custom Action Event]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the v2 custom action workflow binding selector so enabled workflows are filtered with boolean values and can be listed correctly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9865" rel="noopener noreferrer"&gt;#9865&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed custom-context trigger workflow actions so frontend variables in request payloads are resolved before submission in v2 action buttons (&lt;a href="https://github.com/nocobase/nocobase/pull/9853" rel="noopener noreferrer"&gt;#9853&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed action panel v2 trigger workflow buttons showing success and sending a request when no workflow is bound. (&lt;a href="https://github.com/nocobase/nocobase/pull/9798" rel="noopener noreferrer"&gt;#9798&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Data Source Manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added a warning and quick setup for v2 data source collections without a primary key or record unique key. (&lt;a href="https://github.com/nocobase/nocobase/pull/9872" rel="noopener noreferrer"&gt;#9872&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where deleting the active collection category in the v1 data source manager could leave the All collections tab empty. (&lt;a href="https://github.com/nocobase/nocobase/pull/9757" rel="noopener noreferrer"&gt;#9757&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed the blank edit field drawer caused by repeated rerenders on the v1 external data source Configure fields page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9759" rel="noopener noreferrer"&gt;#9759&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Mailer Node]&lt;/strong&gt; Fixed workflow v2 test failures caused by missing mocks for trigger workflow action registration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9863" rel="noopener noreferrer"&gt;#9863&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Embed NocoBase]&lt;/strong&gt; Fixed v2 embed pages losing token-based access after the URL token is removed and the page is refreshed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9857" rel="noopener noreferrer"&gt;#9857&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Response Message]&lt;/strong&gt; Migrated the workflow response message node to the v2 canvas and fixed unsupported workflow types being able to add it. (&lt;a href="https://github.com/nocobase/nocobase/pull/9830" rel="noopener noreferrer"&gt;#9830&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Gantt]&lt;/strong&gt; Fixed Gantt task popup template settings not applying or clearing correctly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9835" rel="noopener noreferrer"&gt;#9835&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Print]&lt;/strong&gt; Fixed v2 detail block printing so empty detail blocks no longer print the whole page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9832" rel="noopener noreferrer"&gt;#9832&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed JavaScript workflow node registration failure in the legacy workflow client. (&lt;a href="https://github.com/nocobase/nocobase/pull/9826" rel="noopener noreferrer"&gt;#9826&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File Manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed 404 errors when uploading files to attachment URL fields in external data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/9809" rel="noopener noreferrer"&gt;#9809&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Fixed PDF preview failures caused by the PDF.js worker module not loading correctly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9779" rel="noopener noreferrer"&gt;#9779&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fix PDF previews missing CJK/CID font text after switching to pdf.js. (&lt;a href="https://github.com/nocobase/nocobase/pull/9737" rel="noopener noreferrer"&gt;#9737&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Custom Request]&lt;/strong&gt; Fixed v2 custom request actions showing an extra error when request settings are not configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9802" rel="noopener noreferrer"&gt;#9802&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow Engine]&lt;/strong&gt; Fixed an issue where current record forms and details in popup could contain incorrect data if built by AI. (&lt;a href="https://github.com/nocobase/nocobase/pull/9788" rel="noopener noreferrer"&gt;#9788&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Async Task Manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed async task file download errors when the task id is missing from &lt;code&gt;filterByTk&lt;/code&gt;. (&lt;a href="https://github.com/nocobase/nocobase/pull/9705" rel="noopener noreferrer"&gt;#9705&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed incorrect request IDs in async task worker logs (&lt;a href="https://github.com/nocobase/nocobase/pull/9686" rel="noopener noreferrer"&gt;#9686&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import Records]&lt;/strong&gt; Store import uploads on disk to reduce memory pressure during large imports. (&lt;a href="https://github.com/nocobase/nocobase/pull/9739" rel="noopener noreferrer"&gt;#9739&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: SQL Node]&lt;/strong&gt; Fixed SQL workflow legacy template-variable migration being skipped for some beta-version users. (&lt;a href="https://github.com/nocobase/nocobase/pull/9762" rel="noopener noreferrer"&gt;#9762&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Block: Kanban]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed unexpected hidden popup action persistence and repeated destroy requests when opening calendar, gantt, and kanban blocks outside edit mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/9772" rel="noopener noreferrer"&gt;#9772&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed URL support for calendar and related popups. (&lt;a href="https://github.com/nocobase/nocobase/pull/9751" rel="noopener noreferrer"&gt;#9751&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[API Documentation]&lt;/strong&gt; Fixed the API documentation package declaration build failure. (&lt;a href="https://github.com/nocobase/nocobase/pull/9752" rel="noopener noreferrer"&gt;#9752&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Version Control]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed version-control restore failures when selected-collection backups contain database views or related database objects. by cgyrock&lt;/li&gt;
&lt;li&gt;Adjusted the Version control topbar shortcut to appear next to the UI editor in both legacy and v2 admin layouts. by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI: Knowledge Base]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed AI knowledge base document table and hit-test result cards overflowing on narrow screens or with long filenames. by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed incompatible LangChain dependency resolutions for the AI knowledge base plugin. by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed unclear failures when enabling the AI knowledge base plugin without the AI plugin available. by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Multi-Space]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the spaces settings page so it can load spaces beyond the first 20 records. by jiannx&lt;/li&gt;
&lt;li&gt;Fixed authentication recovery requests being blocked by stale multi-space headers. by jiannx&lt;/li&gt;
&lt;li&gt;Fixed permission errors when space managers add users without access to the users email field. by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data Source: External NocoBase]&lt;/strong&gt; Proxy NocoBase external data source file upload and storage actions by upload data source by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Export Records Pro]&lt;/strong&gt; Improved v2 import/export pro Processing mode settings and tooltip descriptions. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import Records Pro]&lt;/strong&gt; Avoid parsing large pro import files on the request node before async task creation. by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt; Fixed asynchronous subflows so parent workflows can resume after worker restart or in-memory event mapping loss. by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration Manager]&lt;/strong&gt; Fixed failures when importing large migration data files by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Template Print]&lt;/strong&gt; Rejected unsupported template file types before template printing starts by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed approval action node validation to allow &lt;code&gt;null&lt;/code&gt; for &lt;code&gt;applyDetail&lt;/code&gt; or &lt;code&gt;approvalUid&lt;/code&gt; and skip processing unless a string reference is provided by mytharcher&lt;/li&gt;
&lt;li&gt;Fix the issue where related approvals do not load or refresh correctly by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where related data is not displayed in v2 approval forms by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App Supervisor]&lt;/strong&gt; Fixed a crash when remote WebSocket proxy responses fail by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>Weekly Updates : Add External Vector Store Configuration Form for AI Knowledge Bases</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Sun, 21 Jun 2026 07:39:13 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updates-add-external-vector-store-configuration-form-for-ai-knowledge-bases-dc1</link>
      <guid>https://dev.to/nocobase/weekly-updates-add-external-vector-store-configuration-form-for-ai-knowledge-bases-dc1</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/weekly-updates-20260619" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/weekly-updates-20260619&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated with three branches: &lt;code&gt;main&lt;/code&gt; , &lt;code&gt;next&lt;/code&gt; and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;：The most stable version to date, recommended for installation;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;：Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It's mainly for test users to collect feedback and optimize functions further. Ideal for test users who want to experience new features early and give feedback;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;：Alpha version, contains the latest feature code, may be incomplete or unstable, mainly for internal dev and rapid iteration. Suited for tech users interested in product's cutting-edge, but with potential issues and incomplete functions. Not for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.9" rel="noopener noreferrer"&gt;v2.1.9&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Add override value option for field value settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9578" rel="noopener noreferrer"&gt;#9578&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed custom action workflow trigger buttons sending custom context JSON under an extra &lt;code&gt;values&lt;/code&gt; property or as a serialized string. (&lt;a href="https://github.com/nocobase/nocobase/pull/9815" rel="noopener noreferrer"&gt;#9815&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed an issue where configuring an association field value as a fixed value or default value would not take effect. (&lt;a href="https://github.com/nocobase/nocobase/pull/9820" rel="noopener noreferrer"&gt;#9820&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[auth]&lt;/strong&gt; Encrypted password data is no longer included in sign-in status responses (&lt;a href="https://github.com/nocobase/nocobase/pull/9836" rel="noopener noreferrer"&gt;#9836&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[app]&lt;/strong&gt; Ignore unrelated currentScript when inferring plugin public path (&lt;a href="https://github.com/nocobase/nocobase/pull/9839" rel="noopener noreferrer"&gt;#9839&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI templates]&lt;/strong&gt; Fixed incorrect default context for ctx.openview. (&lt;a href="https://github.com/nocobase/nocobase/pull/9811" rel="noopener noreferrer"&gt;#9811&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.8" rel="noopener noreferrer"&gt;v2.1.8&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-18&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[ai]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Locked &lt;code&gt;@langchain/openai&lt;/code&gt; to patch-level updates for AI packages. (&lt;a href="https://github.com/nocobase/nocobase/pull/9829" rel="noopener noreferrer"&gt;#9829&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed incompatible LangChain dependency resolution for AI plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9831" rel="noopener noreferrer"&gt;#9831&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed unclear error messages when enabling the AI knowledge base plugin without the AI plugin available. by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed incompatible LangChain dependency resolution for the AI knowledge base plugin. by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.7" rel="noopener noreferrer"&gt;v2.1.7&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-18&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Backup manager]&lt;/strong&gt; Support backup and restore for KingBase as the primary database (&lt;a href="https://github.com/nocobase/nocobase/pull/9791" rel="noopener noreferrer"&gt;#9791&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Migration manager]&lt;/strong&gt; Support migrations for KingBase as the primary database. by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Improved AI knowledge base retrieval and documentation. (&lt;a href="https://github.com/nocobase/nocobase/pull/9765" rel="noopener noreferrer"&gt;#9765&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Add env config schema version (&lt;a href="https://github.com/nocobase/nocobase/pull/9782" rel="noopener noreferrer"&gt;#9782&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Stabilize update options test (&lt;a href="https://github.com/nocobase/nocobase/pull/9773" rel="noopener noreferrer"&gt;#9773&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Improved PDF previews: cross-origin PDF files now use the browser-native viewer, while same-origin PDF files continue to use PDF.js. (&lt;a href="https://github.com/nocobase/nocobase/pull/9796" rel="noopener noreferrer"&gt;#9796&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Backup manager]&lt;/strong&gt; Tables whose collection &lt;code&gt;dataCategory&lt;/code&gt; is marked as &lt;code&gt;'runtime'&lt;/code&gt; are now automatically excluded from backups. (&lt;a href="https://github.com/nocobase/nocobase/pull/9804" rel="noopener noreferrer"&gt;#9804&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Improved AI knowledge base document segmentation, segment management, hit tests, and document workflow node support. by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where form submission would show an incorrect message when a subform contained a sub-table. (&lt;a href="https://github.com/nocobase/nocobase/pull/9807" rel="noopener noreferrer"&gt;#9807&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed an issue where event flows on sub-table columns would execute incorrectly. (&lt;a href="https://github.com/nocobase/nocobase/pull/9821" rel="noopener noreferrer"&gt;#9821&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Removed unexpected &lt;code&gt;updateAssociationValues&lt;/code&gt; from association fields (&lt;a href="https://github.com/nocobase/nocobase/pull/9812" rel="noopener noreferrer"&gt;#9812&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed untranslated Yes/No options in v2 filter form checkbox dropdowns. (&lt;a href="https://github.com/nocobase/nocobase/pull/9792" rel="noopener noreferrer"&gt;#9792&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed the issue where event flow settings could not be updated after saving a block as a template. (&lt;a href="https://github.com/nocobase/nocobase/pull/9585" rel="noopener noreferrer"&gt;#9585&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed incorrect display and format settings when v2 table association title fields use time, date-only, or datetime fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/9785" rel="noopener noreferrer"&gt;#9785&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed workflow dispatcher recovery after unexpected dispatch errors. (&lt;a href="https://github.com/nocobase/nocobase/pull/9783" rel="noopener noreferrer"&gt;#9783&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed 404 errors when uploading files to attachment URL fields in external data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/9809" rel="noopener noreferrer"&gt;#9809&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Custom request]&lt;/strong&gt; Fixed V2 custom request actions showing an unnecessary error when request settings are not configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9802" rel="noopener noreferrer"&gt;#9802&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where AI employees could not correctly fill sub-table data. (&lt;a href="https://github.com/nocobase/nocobase/pull/9801" rel="noopener noreferrer"&gt;#9801&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed AI employee shortcut task triggers so that attachments from the current work context are included when running a task from the shortcut profile. (&lt;a href="https://github.com/nocobase/nocobase/pull/9808" rel="noopener noreferrer"&gt;#9808&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Custom action event]&lt;/strong&gt; Fixed action panel v2 trigger workflow buttons showing success and sending a request when no workflow is bound. (&lt;a href="https://github.com/nocobase/nocobase/pull/9798" rel="noopener noreferrer"&gt;#9798&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed an issue where current record forms and details in popup could contain incorrect data when built by AI. (&lt;a href="https://github.com/nocobase/nocobase/pull/9788" rel="noopener noreferrer"&gt;#9788&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Async task manager]&lt;/strong&gt; Fixed async task file download errors when the task id is missing from &lt;code&gt;filterByTk&lt;/code&gt;. (&lt;a href="https://github.com/nocobase/nocobase/pull/9705" rel="noopener noreferrer"&gt;#9705&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Proxy NocoBase external data source file upload and storage actions by upload data source by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Multi-space]&lt;/strong&gt; Fixed permission errors when space managers add users without access to the user email field. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt; Fixed asynchronous subflows so that parent workflows can resume after worker restart or in-memory event mapping loss. by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed a crash when remote WebSocket proxy responses fail by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.5" rel="noopener noreferrer"&gt;v2.1.5&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-15&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Mailer node]&lt;/strong&gt; Added support for sending attachments in workflow mailer nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9724" rel="noopener noreferrer"&gt;#9724&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Relation field column data scopes in form subtables now support current item variables. (&lt;a href="https://github.com/nocobase/nocobase/pull/9444" rel="noopener noreferrer"&gt;#9444&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Unified the Chinese documentation name of the version control plugin as “版本控制”. (&lt;a href="https://github.com/nocobase/nocobase/pull/9776" rel="noopener noreferrer"&gt;#9776&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Added selectable text support to PDF previews in the file manager for PDFs with embedded text. (&lt;a href="https://github.com/nocobase/nocobase/pull/9781" rel="noopener noreferrer"&gt;#9781&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Bulk edit]&lt;/strong&gt; Optimized the loading method for v2 action plugins and kept the order of migrated action buttons stable. (&lt;a href="https://github.com/nocobase/nocobase/pull/9778" rel="noopener noreferrer"&gt;#9778&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Version control]&lt;/strong&gt; Changed the Chinese display name of the version control plugin to “版本控制”. by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli-v1]&lt;/strong&gt; Fixed an error when running &lt;code&gt;yarn dev&lt;/code&gt; after upgrading projects created with create-nocobase-app from 2.0 to 2.1. (&lt;a href="https://github.com/nocobase/nocobase/pull/9775" rel="noopener noreferrer"&gt;#9775&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Fixed the issue where migration progress did not show the dedicated progress view. (&lt;a href="https://github.com/nocobase/nocobase/pull/9761" rel="noopener noreferrer"&gt;#9761&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed Vietnamese and Chinese IME input issues in v2 single-line text and multiline text fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/9764" rel="noopener noreferrer"&gt;#9764&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Fixed unsafe plugin name handling in &lt;code&gt;pm:enable&lt;/code&gt; to prevent local file inclusion risks during plugin resolution. (&lt;a href="https://github.com/nocobase/nocobase/pull/9701" rel="noopener noreferrer"&gt;#9701&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed PDF preview failures caused by abnormal pdf.js worker module loading. (&lt;a href="https://github.com/nocobase/nocobase/pull/9779" rel="noopener noreferrer"&gt;#9779&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed the issue where opening Calendar, Gantt, and Kanban blocks outside edit mode unexpectedly persisted hidden popup actions and repeatedly sent delete requests. (&lt;a href="https://github.com/nocobase/nocobase/pull/9772" rel="noopener noreferrer"&gt;#9772&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Improved processing mode settings and explanatory prompts for v2 Import/Export Pro. by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed possible failures when importing large migration data files. by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Template print]&lt;/strong&gt; Rejected unsupported template file types before template printing starts. by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.4" rel="noopener noreferrer"&gt;v2.1.4&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-13&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Improved the workflow metadata editing experience by supporting description editing in the details popup and automatically filling source workflow metadata when duplicating workflows. (&lt;a href="https://github.com/nocobase/nocobase/pull/9766" rel="noopener noreferrer"&gt;#9766&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Import records]&lt;/strong&gt; Changed uploaded import files to disk storage to reduce memory pressure during large data imports. (&lt;a href="https://github.com/nocobase/nocobase/pull/9739" rel="noopener noreferrer"&gt;#9739&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Backup manager]&lt;/strong&gt; Fixed a security issue where unsafe PostgreSQL schema names could be accepted during backup restoration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9758" rel="noopener noreferrer"&gt;#9758&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed workflow timeout handling so aborted executions and their pending tasks can be updated atomically. (&lt;a href="https://github.com/nocobase/nocobase/pull/9768" rel="noopener noreferrer"&gt;#9768&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed the issue where the workflow’s last updated by field was not updated after workflow node changes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9769" rel="noopener noreferrer"&gt;#9769&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt; Avoided parsing large files in the request node before Pro import creates an async task. by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Version control]&lt;/strong&gt; Adjusted the position of the version control top shortcut entry so it appears next to the UI editor in both legacy and v2 admin layouts. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.3" rel="noopener noreferrer"&gt;v2.1.3&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-12&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;normalize app compat build versions (&lt;a href="https://github.com/nocobase/nocobase/pull/9763" rel="noopener noreferrer"&gt;#9763&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;support updating skills to a specified version (&lt;a href="https://github.com/nocobase/nocobase/pull/9760" rel="noopener noreferrer"&gt;#9760&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed the issue where fields in horizontal subforms are too narrow to display data (&lt;a href="https://github.com/nocobase/nocobase/pull/9755" rel="noopener noreferrer"&gt;#9755&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the blank edit field drawer caused by repeated rerenders on the v1 external data source Configure fields page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9759" rel="noopener noreferrer"&gt;#9759&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where deleting the active collection category in the v1 data source manager could leave the All collections tab empty. (&lt;a href="https://github.com/nocobase/nocobase/pull/9757" rel="noopener noreferrer"&gt;#9757&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Async task manager]&lt;/strong&gt; Fixed incorrect request IDs in async task worker logs (&lt;a href="https://github.com/nocobase/nocobase/pull/9686" rel="noopener noreferrer"&gt;#9686&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: SQL node]&lt;/strong&gt; Fixed SQL workflow legacy template-variable migration being skipped for some beta-version users. (&lt;a href="https://github.com/nocobase/nocobase/pull/9762" rel="noopener noreferrer"&gt;#9762&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed loss of message configuration in workflow LLM nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9743" rel="noopener noreferrer"&gt;#9743&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed an issue where attachments pasted into the AI employee dialog could not be removed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9753" rel="noopener noreferrer"&gt;#9753&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed URL support for calendar and related popups. (&lt;a href="https://github.com/nocobase/nocobase/pull/9751" rel="noopener noreferrer"&gt;#9751&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fixed the issue where related data is not displayed in v2 approval forms by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.1.2" rel="noopener noreferrer"&gt;v2.1.2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-12&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Added an external vector store configuration form for AI knowledge bases. (&lt;a href="https://github.com/nocobase/nocobase/pull/9723" rel="noopener noreferrer"&gt;#9723&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added an external vector store configuration form for AI knowledge bases. by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added a version control scenario to the AI builder quick start (&lt;a href="https://github.com/nocobase/nocobase/pull/9748" rel="noopener noreferrer"&gt;#9748&lt;/a&gt;) by Molunerfinn
Reference: &lt;a href="https://docs.nocobase.com/en/ai-builder" rel="noopener noreferrer"&gt;AI Builder Quick Start&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Improved the version control documentation with AI Builder automatic revision guidance. (&lt;a href="https://github.com/nocobase/nocobase/pull/9745" rel="noopener noreferrer"&gt;#9745&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; clarify init setup wording (&lt;a href="https://github.com/nocobase/nocobase/pull/9750" rel="noopener noreferrer"&gt;#9750&lt;/a&gt;) by chenos&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records]&lt;/strong&gt; Improved import and async task error dialogs so long error messages can be fully read without breaking the layout. (&lt;a href="https://github.com/nocobase/nocobase/pull/9746" rel="noopener noreferrer"&gt;#9746&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt; Improved import dialogs so long error messages remain readable and v2 processing mode can be selected directly from the settings menu. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Fixed the issue where v2 pages could keep loading after signing in (&lt;a href="https://github.com/nocobase/nocobase/pull/9738" rel="noopener noreferrer"&gt;#9738&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; require Node.js 22 for nb (&lt;a href="https://github.com/nocobase/nocobase/pull/9749" rel="noopener noreferrer"&gt;#9749&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Fix PDF previews missing CJK/CID font text after switching to pdf.js. (&lt;a href="https://github.com/nocobase/nocobase/pull/9737" rel="noopener noreferrer"&gt;#9737&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.2.0-beta.5" rel="noopener noreferrer"&gt;v2.2.0-beta.5&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-16&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Added schema version records for env configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9782" rel="noopener noreferrer"&gt;#9782&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Improved PDF previews: cross-origin PDF files now use the browser-native preview, while same-origin PDF files continue to be rendered with PDF.js. (&lt;a href="https://github.com/nocobase/nocobase/pull/9796" rel="noopener noreferrer"&gt;#9796&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the issue where event flow settings could no longer be modified after a block was converted into a template. (&lt;a href="https://github.com/nocobase/nocobase/pull/9585" rel="noopener noreferrer"&gt;#9585&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed the issue where checkbox dropdown options in v2 filter forms did not display translated text. (&lt;a href="https://github.com/nocobase/nocobase/pull/9792" rel="noopener noreferrer"&gt;#9792&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed incorrect display and format settings when the title field of a v2 table relation field used a time, date, or datetime field. (&lt;a href="https://github.com/nocobase/nocobase/pull/9785" rel="noopener noreferrer"&gt;#9785&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed incorrect data in current record forms and detail data inside popups during AI building. (&lt;a href="https://github.com/nocobase/nocobase/pull/9788" rel="noopener noreferrer"&gt;#9788&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Custom action event]&lt;/strong&gt; Fixed the issue where action panel v2 trigger workflow buttons still showed success and sent requests when no workflow was bound. (&lt;a href="https://github.com/nocobase/nocobase/pull/9798" rel="noopener noreferrer"&gt;#9798&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Fixed the issue where AI employees could not correctly fill sub-table data. (&lt;a href="https://github.com/nocobase/nocobase/pull/9801" rel="noopener noreferrer"&gt;#9801&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.2.0-beta.3" rel="noopener noreferrer"&gt;v2.2.0-beta.3&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-15&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Mailer node]&lt;/strong&gt; Added support for sending attachments in workflow mailer nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9724" rel="noopener noreferrer"&gt;#9724&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Added support for database transaction scopes in workflows. (&lt;a href="https://github.com/nocobase/nocobase/pull/9742" rel="noopener noreferrer"&gt;#9742&lt;/a&gt;) by mytharcher
Reference: &lt;a href="//docs/docs/en/workflow/nodes/transaction.md"&gt;Database transactions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Database transaction node]&lt;/strong&gt; Added a database transaction workflow node plugin. by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Relation field columns in form subtables now support current item variables in data scopes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9444" rel="noopener noreferrer"&gt;#9444&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Unified the Chinese documentation name of the Version control plugin as “版本控制”. (&lt;a href="https://github.com/nocobase/nocobase/pull/9776" rel="noopener noreferrer"&gt;#9776&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Added selectable text support to PDF previews in File manager for PDFs with embedded text. (&lt;a href="https://github.com/nocobase/nocobase/pull/9781" rel="noopener noreferrer"&gt;#9781&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Users]&lt;/strong&gt; Improved the layout of the v2 Users and Permissions pages and optimized department tree behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/9780" rel="noopener noreferrer"&gt;#9780&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Bulk edit]&lt;/strong&gt; Optimized how v2 action plugins are loaded and kept the order of migrated action buttons stable. (&lt;a href="https://github.com/nocobase/nocobase/pull/9778" rel="noopener noreferrer"&gt;#9778&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Version control]&lt;/strong&gt; Renamed the Chinese display name of the Version control plugin to “版本控制”. by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli-v1]&lt;/strong&gt; Fixed an error when running &lt;code&gt;&amp;lt;span&amp;gt;yarn dev&amp;lt;/span&amp;gt;&lt;/code&gt; after upgrading projects created with create-nocobase-app from 2.0 to 2.1. (&lt;a href="https://github.com/nocobase/nocobase/pull/9775" rel="noopener noreferrer"&gt;#9775&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fixed Vietnamese and Chinese IME input issues in v2 single-line text and multiline text fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/9764" rel="noopener noreferrer"&gt;#9764&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Fixed the issue where migration progress did not display the dedicated progress view. (&lt;a href="https://github.com/nocobase/nocobase/pull/9761" rel="noopener noreferrer"&gt;#9761&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Fixed unsafe plugin name handling in &lt;code&gt;&amp;lt;span&amp;gt;pm:enable&amp;lt;/span&amp;gt;&lt;/code&gt; to avoid local file inclusion risks during plugin resolution. (&lt;a href="https://github.com/nocobase/nocobase/pull/9701" rel="noopener noreferrer"&gt;#9701&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Async task manager]&lt;/strong&gt; Fixed database query errors caused by missing &lt;code&gt;&amp;lt;span&amp;gt;filterByTk&amp;lt;/span&amp;gt;&lt;/code&gt; when downloading async task files. (&lt;a href="https://github.com/nocobase/nocobase/pull/9705" rel="noopener noreferrer"&gt;#9705&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed PDF preview failures caused by abnormal loading of the pdf.js worker module. (&lt;a href="https://github.com/nocobase/nocobase/pull/9779" rel="noopener noreferrer"&gt;#9779&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed the issue where opening Calendar, Gantt, and Kanban blocks in non-edit mode unexpectedly persisted hidden popup actions and repeatedly sent delete requests. (&lt;a href="https://github.com/nocobase/nocobase/pull/9772" rel="noopener noreferrer"&gt;#9772&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Improved the processing mode settings and help text for v2 Import/Export Pro. by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Multi-space]&lt;/strong&gt; Fixed the issue where space administrators could not add space users when they did not have permission for the user email field. by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed possible failures when importing large migration data files. by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Template print]&lt;/strong&gt; Rejected unsupported template file types before template printing starts. by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.nocobase.com/en/blog/v2.2.0-beta.2" rel="noopener noreferrer"&gt;v2.2.0-beta.2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-06-13&lt;/em&gt;*&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Added an external vector store configuration form for AI knowledge bases. (&lt;a href="https://github.com/nocobase/nocobase/pull/9723" rel="noopener noreferrer"&gt;#9723&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added an external vector store configuration form for AI knowledge bases. by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Email manager]&lt;/strong&gt; Migrated the Email manager client to v2. by jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Optimized compatibility checks for different version number formats. (&lt;a href="https://github.com/nocobase/nocobase/pull/9763" rel="noopener noreferrer"&gt;#9763&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;Added support for updating skills to a specified version. (&lt;a href="https://github.com/nocobase/nocobase/pull/9760" rel="noopener noreferrer"&gt;#9760&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;Improved the wording of initialization setup prompts. (&lt;a href="https://github.com/nocobase/nocobase/pull/9750" rel="noopener noreferrer"&gt;#9750&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added a version control conversation scenario to the AI Builder overview page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9748" rel="noopener noreferrer"&gt;#9748&lt;/a&gt;) by Molunerfinn
Reference: &lt;a href="https://docs.nocobase.com/en/ai-builder" rel="noopener noreferrer"&gt;AI Builder Quick Start&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Improved version control documentation with notes on automatic version saving in AI Builder. (&lt;a href="https://github.com/nocobase/nocobase/pull/9745" rel="noopener noreferrer"&gt;#9745&lt;/a&gt;) by cgyrock
Reference: &lt;a href="//docs/docs/en/ops-management/version-control/index.md"&gt;Version control&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Improved the workflow metadata editing experience by supporting description editing in the details popup and automatically filling source workflow metadata when duplicating workflows. (&lt;a href="https://github.com/nocobase/nocobase/pull/9766" rel="noopener noreferrer"&gt;#9766&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records]&lt;/strong&gt; Improved import and async task error detail dialogs so long error messages can be fully viewed without breaking the layout. (&lt;a href="https://github.com/nocobase/nocobase/pull/9746" rel="noopener noreferrer"&gt;#9746&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Translation test tool]&lt;/strong&gt; Added a client-v2 settings page for the translation test tool. (&lt;a href="https://github.com/nocobase/nocobase/pull/9744" rel="noopener noreferrer"&gt;#9744&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt; Improved import dialogs so long error messages can be fully viewed, and processing mode can be selected directly from the v2 settings menu. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client]&lt;/strong&gt; Fixed the issue where fields in horizontal subforms were too narrow to display data. (&lt;a href="https://github.com/nocobase/nocobase/pull/9755" rel="noopener noreferrer"&gt;#9755&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Fixed the issue where v2 pages could keep loading after signing in. (&lt;a href="https://github.com/nocobase/nocobase/pull/9738" rel="noopener noreferrer"&gt;#9738&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; Added Node.js version detection for the nb runtime environment. (&lt;a href="https://github.com/nocobase/nocobase/pull/9749" rel="noopener noreferrer"&gt;#9749&lt;/a&gt;) by chenos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Import records]&lt;/strong&gt; Changed uploaded import files to disk storage to reduce memory pressure during large data imports. (&lt;a href="https://github.com/nocobase/nocobase/pull/9739" rel="noopener noreferrer"&gt;#9739&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Async task manager]&lt;/strong&gt; Fixed incorrect request IDs in async task worker logs. (&lt;a href="https://github.com/nocobase/nocobase/pull/9686" rel="noopener noreferrer"&gt;#9686&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed workflow timeout handling so aborted executions and their pending tasks can be updated atomically. (&lt;a href="https://github.com/nocobase/nocobase/pull/9768" rel="noopener noreferrer"&gt;#9768&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed the issue where the workflow’s last updated by field was not updated after workflow node changes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9769" rel="noopener noreferrer"&gt;#9769&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the blank field edit drawer caused by repeated rerenders on the v1 external data source Configure fields page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9759" rel="noopener noreferrer"&gt;#9759&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed the issue where deleting the current collection category in the v1 data source manager could leave the All collections tab empty. (&lt;a href="https://github.com/nocobase/nocobase/pull/9757" rel="noopener noreferrer"&gt;#9757&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt; Fixed a security issue where unsafe PostgreSQL schema names could be accepted during backup restoration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9758" rel="noopener noreferrer"&gt;#9758&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: SQL node]&lt;/strong&gt; Fixed the issue where SQL workflow legacy template variable migration was skipped for some beta-version users. (&lt;a href="https://github.com/nocobase/nocobase/pull/9762" rel="noopener noreferrer"&gt;#9762&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed URL support for Calendar and other popups. (&lt;a href="https://github.com/nocobase/nocobase/pull/9751" rel="noopener noreferrer"&gt;#9751&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the issue where attachments pasted into the AI employee dialog could not be removed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9753" rel="noopener noreferrer"&gt;#9753&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed loss of message configuration in workflow LLM nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9743" rel="noopener noreferrer"&gt;#9743&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed missing Chinese/CID font text in some PDF previews after switching to pdf.js. (&lt;a href="https://github.com/nocobase/nocobase/pull/9737" rel="noopener noreferrer"&gt;#9737&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[API documentation]&lt;/strong&gt; Fixed the build failure of the API documentation plugin declaration file. (&lt;a href="https://github.com/nocobase/nocobase/pull/9752" rel="noopener noreferrer"&gt;#9752&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt; Avoided parsing large files in the request node before Pro import creates an async task. by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Version control]&lt;/strong&gt; Adjusted the position of the version control top shortcut entry so it appears next to the UI editor in both legacy and v2 admin layouts. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fixed the issue where related data was not displayed in v2 approval forms. by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>news</category>
    </item>
    <item>
      <title>Do Software and Programmers Still Have a Future?</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Tue, 16 Jun 2026 03:54:47 +0000</pubDate>
      <link>https://dev.to/nocobase/do-software-and-programmers-still-have-a-future-3pj3</link>
      <guid>https://dev.to/nocobase/do-software-and-programmers-still-have-a-future-3pj3</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/future-of-software-programmers-revenue-doubled" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/future-of-software-programmers-revenue-doubled&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;Six months ago, when we released NocoBase 2.0, we published our second recap: &lt;a href="https://www.nocobase.com/en/blog/an-open-source-project-without-ai-can-still-earn-millions-a-year" rel="noopener noreferrer"&gt;No AI, No VC, Just 17K Stars and Real Revenue&lt;/a&gt;. At that point, NocoBase had already reached around $1.4 million in annual revenue.&lt;/p&gt;

&lt;p&gt;The plan had been simple: one recap a year, sharing NocoBase's growth as it happened. This third piece was supposed to wait until the end of this year, when NocoBase 3.0 comes out. But the world is changing too fast. AI is hitting this industry with a new shock wave almost every day. In a jolt like this, NocoBase was never going to remain untouched. We have been pulled, over and over, into all kinds of uncertainty.&lt;/p&gt;

&lt;p&gt;So we had to move faster. We had to stay nimble enough to answer the shock as it came.&lt;/p&gt;

&lt;p&gt;That is why this recap is arriving half a year early, together with NocoBase 2.1. Better to write it now than wait another six months and wonder whether this industry will still look the same by then. Or whether anyone will still care about an open-source product like this. Or whether anyone will still care about software, or programmers, at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where We Are
&lt;/h2&gt;

&lt;p&gt;It has now been five years since we committed the first line of code on GitHub.&lt;/p&gt;

&lt;p&gt;Compared with six months ago, our team size has not changed. We are still 14 people. We still do not have a dedicated sales team. For the most part, users still find us, not the other way around. But beyond SEO, we have also started paying serious attention to generative engine optimization, and we already have quite a few paying users who discovered NocoBase through ChatGPT and Claude.&lt;/p&gt;

&lt;p&gt;Here are a few other numbers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub stars: 22.7k&lt;/li&gt;
&lt;li&gt;Contributors: 115&lt;/li&gt;
&lt;li&gt;Git clones: 3K/day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssioaaoqmnm2o70lakku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssioaaoqmnm2o70lakku.png" alt="Image" width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Revenue
&lt;/h2&gt;

&lt;p&gt;Now that the revenue figure is becoming more substantial, we will stop disclosing exact numbers in future recap articles. But we will keep sharing the trend lines, and the shape of what is happening underneath them.&lt;/p&gt;

&lt;p&gt;In the first five months of 2026, our revenue was exactly double what it was in the same period of 2025. In our best month so far, monthly revenue alone had already reached our entire revenue for all of 2024.&lt;/p&gt;

&lt;p&gt;But if I am being honest about how it felt from the inside, this was not the result of some smooth, graceful curve upward. It came after a major turn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Were We About to Be Killed?
&lt;/h2&gt;

&lt;p&gt;Before 2025, NocoBase was positioned as a no-code platform. It was a direction plenty of companies had already proven to be valuable and commercially viable, even if it was not the kind of business that usually leads to spectacular fortunes. &lt;strong&gt;The familiar products in this category can become solid businesses, even if they rarely produce outsized outcomes. With differentiated positioning, a standardized product, and a global market, we believed we had a chance to build a durable business around a focused product and a lean team.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Starting in 2025, we began introducing AI features into the product. That opened up a new imaginative horizon for the traditional no-code platform. AI could play a supporting role in business workflows and help people get certain kinds of work done more efficiently. At the same time, our revenue was climbing quickly, which seemed to validate the decision.&lt;/p&gt;

&lt;p&gt;Then, at the end of 2025, things changed.&lt;/p&gt;

&lt;p&gt;When Opus 4.5 was released, it felt as though the weather turned overnight. Social media was suddenly full of awe at the revolutionary changes it seemed to be bringing to programming. Then came the wave of layoff news, followed by all the loud voices declaring that traditional software was about to be killed. And just like that, the whole industry seemed to be living inside the same split reality, one half panic, one half exhilaration.&lt;/p&gt;

&lt;p&gt;That mood spread through our team almost immediately.&lt;/p&gt;

&lt;p&gt;More than one colleague started to feel that what we were building no longer had any meaning. And once that feeling takes hold, it does real damage. We had spent years building something we were proud of. Now AI appeared able to produce something similar in a few hours. And AI was still evolving at a frightening pace. So what were we still here for? Only a month earlier, I had believed that the stronger AI became, the better it would be for us, unless it planned to take over the entire world. Was that day really about to arrive this quickly?&lt;/p&gt;

&lt;p&gt;At the same time, NocoBase's revenue also entered a weaker stretch. I could not tell whether that was just because of the Christmas and New Year holiday season, or because a flood of AI news had genuinely affected how enterprises were making purchasing decisions.&lt;/p&gt;

&lt;p&gt;For two full months, I read obsessively. I tried product after product. Every day I discussed, argued, and compared notes with the more radical people on our team, while also trying to keep everyone grounded. I spoke with NocoBase users about how they viewed AI and how it was actually being used inside their companies.&lt;/p&gt;

&lt;p&gt;And while I was doing all that, I sank into a serious state of anxiety, the kind I had not experienced in many years. When I was resting, I could hear my own heartbeat. I would fall asleep, wake up quickly, and find it hard to sleep again. The muscles in my abdomen were often so tight that I could feel them beating with my pulse.&lt;/p&gt;

&lt;p&gt;NocoBase has not made us a huge amount of money. But everyone on this team has tied some part of their ideals to it, along with some part of their hope for a better life. If it were killed, it would hurt. A lot.&lt;/p&gt;

&lt;p&gt;It was not until after February, after many rounds of intense discussion inside the team and many conversations with users, that I felt we had finally thought it through. We then held three all-hands alignment sessions in a row and shared a presentation called &lt;em&gt;The Twilight of the Old Version, the Dawn of the New One&lt;/em&gt;. It laid out why NocoBase still deserves to exist, and where it should go next. We made sure everyone understood the reasoning behind the direction and felt confident moving forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking for What Does Not Change
&lt;/h2&gt;

&lt;p&gt;The day before I started writing this piece, one of the three largest life sciences companies in the world contacted us. They wanted to explore using NocoBase as infrastructure, layering AI capabilities on top of traditional systems like SAP, and rebuilding certain parts of their supply chain on that basis.&lt;/p&gt;

&lt;p&gt;For example, they want to identify and structure large volumes of orders arriving from different countries through fax, paper, handwriting, websites, and other channels. They want to plan shipping in batches based on warehouse locations and delivery destinations. They want to process accounts receivable, bills, and invoices more efficiently depending on different payment methods.&lt;/p&gt;

&lt;p&gt;This is a giant enterprise with tens of thousands of employees spread across dozens of countries. They have no shortage of technical expertise and access to the most advanced models. So why would they still consider a product like NocoBase, instead of simply instructing an LLM to write the whole thing from scratch?&lt;/p&gt;

&lt;p&gt;That was exactly the question we had been discussing and thinking through over the past few months.&lt;/p&gt;

&lt;p&gt;Large models and agents are advancing at astonishing speed. They are making code itself incredibly cheap. They are making programmers as a group feel deeply uneasy. But once that same wave reaches traditional enterprises, it loses a lot of force.&lt;/p&gt;

&lt;p&gt;The furniture company is still making furniture. The supply chain team is still doing supply chain work. Processes that never even made it to digitalization are still running on A4 paper and fax. These things are not going to undergo some revolutionary transformation just because LLMs can generate code. LLMs are not wish-granting machines. You cannot wave a magic wand and expect an entire enterprise to remake itself.&lt;/p&gt;

&lt;p&gt;The bar is still very high. Solving real problems in production, sales, logistics, finance, and the rest of the business means building systems that are solid, secure, able to run for years, able to evolve, and able to absorb AI in ways that genuinely improve efficiency.&lt;/p&gt;

&lt;p&gt;Code generation lowers the barrier to generating code. That is all. And in practice, if you use it badly, it may lead you straight into more traps.&lt;/p&gt;

&lt;p&gt;In &lt;em&gt;The Twilight of the Old Version, the Dawn of the New One&lt;/em&gt;, we listed several things that we believe will remain unchanged for quite a long time. Those are also the reasons we believe NocoBase still needs to exist.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;If AI is going to truly land inside business, a chat window is not enough.&lt;/strong&gt; AI needs a real operating environment. NocoBase gives it one, along with a ready-made toolbox. We turn data, workflows, and functional modules into interfaces AI can actually use, while surrounding that access with strict permissions and full logging. That is what allows AI to query data safely, identify risks, carry out complex tasks, and gradually move enterprise software from the old logic of "people looking for data" to a new logic of "tasks finding people."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An enterprise-grade system must have standardized data structures, rigorous permissions, strict business workflows, audit logs for every action, and historical records for key data.&lt;/strong&gt; This layer is complex, and it cannot afford to be wrong. And no matter how much AI improves, it will not make these things disappear, because this is not really a problem of intelligence. It is a problem of people and organizations. Rather than asking AI to rewrite a fresh, half-proven version of this every time, it makes far more sense to build on top of standardized foundational modules that have already been thoroughly tested.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise applications contain a great deal of basic functionality that gets reused over and over again.&lt;/strong&gt; User systems, authentication, email and SMS delivery, notification centers, data import and export, backend asynchronous jobs, almost every system needs them. As AI develops, these building blocks will keep changing too, and more AI-oriented tools will appear with them. But asking AI to rewrite them from scratch every single time is a massive waste. Reusing mature capabilities that already exist in the platform still creates enormous value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WYSIWYG no-code visual configuration still matters.&lt;/strong&gt; Its value is no longer just that it reduces the amount of code people need to write. It also gives AI output a visible surface that humans can adjust directly. If AI generates an interface or a workflow, people should be able to understand it at a glance, then refine it with their own hands. That kind of directness preserves transparency in human-AI collaboration. It keeps the system from turning into a black box that only AI understands and no one else can really move.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Without truly strong architectural design, the more code AI generates, the harder it becomes to maintain.&lt;/strong&gt; NocoBase uses architecture to impose a set of physical rules on the system. It keeps interfaces and interaction styles highly consistent. It keeps automation under shared standards. It keeps plugins under shared standards too. That is what makes long-term, stable iteration possible.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Based on these things that do not change, we immediately adjusted our product positioning. We moved from "no-code platform" to "AI + no-code" infrastructure, and within a matter of weeks we completed the corresponding product changes. Of course, AI itself helped enormously, pushing our efficiency to more than twice what it was before. The no-code platform that had originally been built for people formally became a platform built for collaboration between people and AI.&lt;/p&gt;

&lt;p&gt;And soon after that, we started receiving strong positive feedback from several large enterprises.&lt;/p&gt;

&lt;p&gt;One pharmaceutical company, with more than 20,000 employees and dozens of subsidiaries, had begun promoting AI coding across the whole company months earlier. In the process, they had done a great deal of engineering work to deal with hallucinations, limited context windows, and architectural drift, all the problems that make long-term stable iteration so difficult. Even then, the results were not encouraging. Eventually, they concluded that a more sensible approach was to develop on top of a scaffold suited to AI, one that would preserve efficiency and flexibility while also placing strong constraints on AI behavior. After spending several weeks testing NocoBase, they concluded that NocoBase was exactly that kind of infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggd8iicmdv3wiv2o3fag.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggd8iicmdv3wiv2o3fag.jpg" alt="Image" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another top-tier renewable energy company in the wind power sector used NocoBase inside a single team for several months, then formally rolled it out across the entire company, to tens of thousands of employees, as an AI development platform. It has since gone into production in key scenarios such as review workflows, project management, and AI portals, allowing AI to create dependable value in those areas. They also have more than enough technical and business experts, the most advanced models, and essentially unlimited tokens. But spending time and resources on low-level infrastructure that does not generate returns is simply not worth it. Once they adopted NocoBase, they were able to focus most of their energy on the business itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Do Next
&lt;/h2&gt;

&lt;p&gt;No matter what we think, AI is still moving very fast. If we want to stay alive for longer, and if we want to keep finding a sense of fulfillment true to our original intentions, then we need to keep reminding ourselves not to forget a few simple facts.&lt;/p&gt;

&lt;h4&gt;
  
  
  Stand on What Lasts
&lt;/h4&gt;

&lt;p&gt;Under AI's impact, the pace of the world seems to have accelerated dramatically. And with social platforms, industry hype, and recommendation algorithms amplifying everything, we are bombarded by new concepts every day. But from what we have seen in real life, the world of AI vendors and online commentary is very different from the world of actual enterprises.&lt;/p&gt;

&lt;p&gt;No matter how intense the conceptual bombardment becomes, real businesses are still making their pharmaceuticals, their cars, their bottled water. Many companies still have not even completed basic digitalization. They still rely heavily on paper and Excel, let alone any AI revolution. If we anchor ourselves in the things we can identify as lasting, and take those real businesses as the people we serve, that will be the foundation of our healthy survival.&lt;/p&gt;

&lt;h4&gt;
  
  
  Embrace What Changes Fast
&lt;/h4&gt;

&lt;p&gt;Since the company was founded, we had been adding one or two new people to the product and engineering team every year. But starting this year, we decided to stop expanding the engineering team. Instead, we would give the existing team access to the most advanced models and plenty of tokens. In practice, the result is clear: people's output has already increased by at least a factor of two.&lt;/p&gt;

&lt;p&gt;Using frontier models every day also keeps the team highly sensitive. It helps us really understand the boundaries of what these models can do, where they fit, and where they do not. Once we understand those things, we can fold them into NocoBase as part of the product itself.&lt;/p&gt;

&lt;h4&gt;
  
  
  Live in the Present
&lt;/h4&gt;

&lt;p&gt;I have written so much above about "what lasts." But how long is "long-term," really? Six months? One year? Three years? To be honest, we ourselves cannot judge that with confidence.&lt;/p&gt;

&lt;p&gt;But there is no need to let that become a source of anxiety. We are a bridge between AI and enterprises. AI is moving fast, so fast that it is hard to say what things will look like this time next year. But between the speed of AI and the speed of most enterprises in the real world, there is still a gap of many months, if not years. As long as we stay grounded in the actual conditions and needs of those businesses, there will always be time for us to adjust, and perhaps even discover more opportunities along the way.&lt;/p&gt;

&lt;p&gt;What we most need to avoid in this process is end-state thinking: the belief that if AI can generate code, then it can do anything; the belief that if AI will eventually take over everything, then whatever we do now is meaningless. The real world in front of us does not look like that.&lt;/p&gt;

&lt;h4&gt;
  
  
  From a Vast Ocean, We Only Need One Drop
&lt;/h4&gt;

&lt;p&gt;If the needs of enterprises around the world are a vast ocean, then we do not need a bucketful. We only need one drop. That is enough for a team our size to move at our own pace, stay focused on what we love, create value for the users inside that one drop, and find a sense of achievement there.&lt;/p&gt;

&lt;p&gt;NocoBase has to stay focused on a precise kind of user. We are not trying to make every enterprise our target customer. Many people may not agree with the things we have listed here as long-term constants. That is fine. As long as the users in this one drop agree, that is enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, Do Programmers and Software Still Have a Future?
&lt;/h2&gt;

&lt;p&gt;I think the answer depends mostly on what we want, and on what we are willing to do.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgofm52erj2hastqrd5z.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvgofm52erj2hastqrd5z.jpeg" alt="Image" width="800" height="962"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the ambition is to build another Salesforce, form a monopoly, and change the world, that is beyond our ability to judge. But for a product like NocoBase, built by a team of fourteen people, I believe there is absolutely a future. Not only are we not going to be killed, we may well have more opportunities ahead of us than before.&lt;/p&gt;

&lt;p&gt;NocoBase used to live only inside the no-code crowd, and that crowd was very small. Today, NocoBase has also started attracting attention from AI users. More and more enterprises want to bring AI capability into real business operations. As long as we avoid end-state thinking, and do not assume that the leading model companies are capable of doing everything across every industry, every scenario, and every link in the chain, we will see how diverse enterprise demand really is. On the road to adopting AI, companies will need all kinds of infrastructure layers, along with the services that make them usable.&lt;/p&gt;

&lt;p&gt;From that point of view, I believe some programmers, and some kinds of software, have a better future ahead of them than they did before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Note
&lt;/h2&gt;

&lt;p&gt;NocoBase 2.1 was released last week. Try connecting your AI agent to NocoBase and experience it for yourself.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;https://github.com/nocobase/nocobase&lt;/a&gt;&lt;/p&gt;


  


</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>lowcode</category>
    </item>
    <item>
      <title>Announcing NocoBase 2.1.0</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Mon, 15 Jun 2026 14:20:52 +0000</pubDate>
      <link>https://dev.to/nocobase/announcing-nocobase-210-4hb9</link>
      <guid>https://dev.to/nocobase/announcing-nocobase-210-4hb9</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/2.1.0" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/2.1.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NocoBase 2.1 is a major upgrade to &lt;strong&gt;AI capabilities, multi-app, and 2.0 adaptation&lt;/strong&gt;. We've introduced the NocoBase CLI, making it easy for both people and AI Agents to connect to and manage NocoBase applications. From creating applications and AI-assisted building to enhanced AI Employees and an AI development plugin, it covers the full flow from environment onboarding to system building and business collaboration. We've also enhanced multi-app capabilities to make interaction and collaboration across apps easier. At the same time, we've added version control and continued to substantially round out 2.0 page support and core capabilities — more blocks, fields, actions, and plugins now support 2.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's New
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Introducing the NocoBase CLI
&lt;/h3&gt;

&lt;p&gt;In this release, the NocoBase CLI (&lt;code&gt;nb&lt;/code&gt;) is the core entry point for both regular users and AI Agents to connect to NocoBase.&lt;/p&gt;

&lt;p&gt;The CLI is used to initialize, connect, and manage NocoBase applications in a local workspace. It covers several scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install a new NocoBase application via Docker, npm, or Git, then save it as a CLI env&lt;/li&gt;
&lt;li&gt;Connect to an existing NocoBase application and save it as a CLI env&lt;/li&gt;
&lt;li&gt;Install, create, and activate plugins&lt;/li&gt;
&lt;li&gt;Operate, back up, and manage NocoBase applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhubabjayt108lshgclq7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhubabjayt108lshgclq7.png" alt="NocoBase CLI visual wizard" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether you want to plug AI into an existing system or spin up a new application from scratch, you can handle initialization and ongoing management through the CLI.&lt;/p&gt;

&lt;p&gt;For teams, the CLI provides a standard entry point that AI Agents can understand and operate on — environment initialization, connection configuration, and runtime management all share the same flow.&lt;/p&gt;

&lt;p&gt;The official release also adds a set of operations-related commands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;nb api&lt;/code&gt;: Call the NocoBase API through the CLI.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb app&lt;/code&gt;: Manage application runtime state: start, stop, restart, logs, and upgrade.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb backup&lt;/code&gt;: Create a backup and download it locally, or restore a local backup file to a target env.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb config&lt;/code&gt;: Manage CLI default configuration.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb db&lt;/code&gt;: Manage the built-in database of the selected env.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb env&lt;/code&gt;: Manage NocoBase project environments, the current env, status, details, and runtime commands.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb license&lt;/code&gt;: Manage commercial licenses and licensed plugins.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb plugin&lt;/code&gt;: Manage plugins of the selected NocoBase env.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb scaffold&lt;/code&gt;: Generate a NocoBase plugin development scaffold.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb self&lt;/code&gt;: Check or update the NocoBase CLI itself.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nb source&lt;/code&gt;: Manage local source projects: download, develop, build, and test.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/quickstart/installation/cli" rel="noopener noreferrer"&gt;Install NocoBase with the CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai/quick-start" rel="noopener noreferrer"&gt;AI Agent integration guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/api/cli/" rel="noopener noreferrer"&gt;NocoBase CLI command reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI-assisted building: replace manual configuration with conversation
&lt;/h3&gt;

&lt;p&gt;AI-assisted building is one of the core experiences in this release. You can describe your business needs in natural language, and the AI helps complete data modeling, page configuration, permission setup, and workflow orchestration.&lt;/p&gt;

&lt;p&gt;Compared with traditional low-code building, AI-assisted building has several clear advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A lower barrier to entry — you don't need to be familiar with every configuration concept up front&lt;/li&gt;
&lt;li&gt;A shorter path from requirement description to working prototype&lt;/li&gt;
&lt;li&gt;Data, UI, and workflow configuration can be completed by the AI continuously&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example: "design a CRM data model for me", "create a customer management page for me", or "orchestrate a workflow that automatically deducts inventory after an order is created" — all of these can be handled by the AI within the scope of NocoBase's capabilities.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-builder/" rel="noopener noreferrer"&gt;AI-assisted building quick start&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  NocoBase Skills cover the full building flow
&lt;/h3&gt;

&lt;p&gt;To help the AI truly understand NocoBase's configuration system, this release ships a set of domain knowledge packs that can be installed into AI Agents — NocoBase Skills.&lt;/p&gt;

&lt;p&gt;Skills are standardized knowledge and operation wrappers organized around NocoBase's key capability domains, helping the AI more accurately understand object models, configuration structures, and execution boundaries.&lt;/p&gt;

&lt;p&gt;We currently provide 8 Skills that cover the full building flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-builder/env-bootstrap" rel="noopener noreferrer"&gt;Environment management&lt;/a&gt; — environment checks, install/deploy, upgrade, and troubleshooting&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-builder/data-modeling" rel="noopener noreferrer"&gt;Data modeling&lt;/a&gt; — create and manage tables, fields, and relations&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-builder/ui-builder" rel="noopener noreferrer"&gt;UI building&lt;/a&gt; — create and edit pages, blocks, popups, and interaction reactions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-builder/workflow" rel="noopener noreferrer"&gt;Workflow management&lt;/a&gt; — create, edit, enable, and diagnose workflows&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-builder/acl" rel="noopener noreferrer"&gt;Permission configuration&lt;/a&gt; — manage roles, permission policies, user bindings, and risk assessment&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-builder/dsl-reconciler" rel="noopener noreferrer"&gt;Solutions&lt;/a&gt; — bulk-build entire business systems from YAML (still in beta, with limited stability)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-builder/plugin-manage" rel="noopener noreferrer"&gt;Plugin management&lt;/a&gt; — view, enable, and disable plugins&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-builder/publish" rel="noopener noreferrer"&gt;Publish management&lt;/a&gt; — cross-environment publishing, backup/restore, and migration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With Skills, the AI can more accurately understand NocoBase's configuration system and provide smarter assistance when building and managing systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: NocoBase Skills are still being actively improved. NocoBase Skills are also installed automatically when you install and initialize the NocoBase CLI, so in most cases you don't need to install them separately.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/nocobase/skills" rel="noopener noreferrer"&gt;NocoBase Skills&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI development plugin
&lt;/h3&gt;

&lt;p&gt;This release fills in the foundational capabilities needed for AI plugin development, so the AI can take part not only in application building but also in custom plugin development.&lt;/p&gt;

&lt;p&gt;This shows up in three main areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A unified &lt;code&gt;rsbuild/rspack&lt;/code&gt; build pipeline, consolidating plugin development and the frontend build system&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;client-v2&lt;/code&gt; capability and &lt;code&gt;/v/&lt;/code&gt; routing system aimed at AI development, preparing for the next-generation client plugin development&lt;/li&gt;
&lt;li&gt;AI plugin development Skills that help the AI better understand plugin structure, code organization, and implementation patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Preparation around &lt;code&gt;client-v2&lt;/code&gt; includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;@nocobase/app&lt;/code&gt; exposes the &lt;code&gt;client-v2&lt;/code&gt; entry&lt;/li&gt;
&lt;li&gt;The kernel ships a &lt;code&gt;@nocobase/client-v2&lt;/code&gt; package with base components, utilities, and type definitions&lt;/li&gt;
&lt;li&gt;Each plugin gets a &lt;code&gt;/src/client-v2&lt;/code&gt; directory&lt;/li&gt;
&lt;li&gt;A new &lt;code&gt;/v/&lt;/code&gt; route is added — still being actively improved, available for early adopters&lt;/li&gt;
&lt;li&gt;The kernel is gradually migrating to V2&lt;/li&gt;
&lt;li&gt;Plugins are gradually migrating to V2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A unified build pipeline lowers the cost of frontend plugin development and debugging. The gradual rollout of &lt;code&gt;client-v2&lt;/code&gt; also gives the AI a more stable target structure for generating and maintaining plugin code.&lt;/p&gt;

&lt;p&gt;In practice: you can describe a plugin requirement in natural language, and the AI helps generate the frontend and backend code, data tables, APIs, permission configuration, and i18n content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: AI plugin development is only for &lt;code&gt;client-v2&lt;/code&gt;-style new plugins. We will follow up with migration documentation and Skills for moving from &lt;code&gt;client-v1&lt;/code&gt; plugins to &lt;code&gt;client-v2&lt;/code&gt;, to help you bring existing plugins into the new system.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-dev/" rel="noopener noreferrer"&gt;AI development plugin quick start&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/plugin-development/" rel="noopener noreferrer"&gt;Plugin development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI Employees enhancements
&lt;/h3&gt;

&lt;p&gt;AI-assisted building answers "how do I use AI to build a system"; AI Employees answer "how do I let AI work inside the system to solve concrete business problems".&lt;/p&gt;

&lt;p&gt;AI Employees existed in earlier releases, but in this release the related capabilities have been enhanced and the AI kernel has been rounded out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/features/mcp" rel="noopener noreferrer"&gt;MCP support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-employees/features/built-in-employee#default-ai-employee-atlas" rel="noopener noreferrer"&gt;New AI Employee Atlas&lt;/a&gt;, playing a team-leader role and dispatching other AI Employees to complete tasks based on user intent&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/workflow/nodes/employee/configuration" rel="noopener noreferrer"&gt;AI Employee workflow node&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/features/web-search" rel="noopener noreferrer"&gt;LLM-based web search tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-employees/scenarios/business-report" rel="noopener noreferrer"&gt;New aggregation query tool and report generation tool&lt;/a&gt; for producing business analysis reports&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/ai-employees/built-in/lina" rel="noopener noreferrer"&gt;New localization engineer Lina&lt;/a&gt;, a built-in AI Employee from the localization plugin used for system localization translation, supporting incremental, selected, and full translation scopes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These improvements take AI Employees' extensibility, orchestration, and execution capabilities inside business systems to the next level. AI Employees can understand the current business context, invoke skills to execute specific tasks, participate in automated workflows, and combine external information to deliver analysis and output.&lt;/p&gt;

&lt;p&gt;The official release also adds support for AI Employees to load files from workflow attachment fields and to handle multiple conversations in parallel, further improving the usability of AI Employees in real business processes.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/" rel="noopener noreferrer"&gt;AI Employees&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/built-in/lina" rel="noopener noreferrer"&gt;Lina: Localization engineer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/scenarios/localization-hy-mt" rel="noopener noreferrer"&gt;Translate localization terms with Lina and a local HY-MT1.5-1.8B model&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Version control
&lt;/h3&gt;

&lt;p&gt;Version control helps you better manage your application's version iterations and change history. You can create, view, and restore different versions of an application, making it easy to switch versions and recover from issues during development and operations. &lt;strong&gt;Note: This feature requires the Professional edition or above.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F675d8ddxa8o6njaqdabk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F675d8ddxa8o6njaqdabk.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ops-management/version-control/" rel="noopener noreferrer"&gt;Version control&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ops-management/backup-manager/" rel="noopener noreferrer"&gt;Backup manager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Multi-app enhancements
&lt;/h3&gt;

&lt;p&gt;In this release, we have made some important enhancements to multi-app deployments, mainly in three areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/multi-app/multi-app/app-block-and-switcher" rel="noopener noreferrer"&gt;New app block and app switcher&lt;/a&gt;, which let you surface entry points to other sub-applications on a page, making it easy for users to switch between the main app and sub-apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fukz6mm44cc1e0my95qnw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fukz6mm44cc1e0my95qnw.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/multi-app/multi-app/app-sso" rel="noopener noreferrer"&gt;New app single sign-on&lt;/a&gt;. When a user enters a sub-app from the main app, or switches between sub-apps, the system attempts to automatically sign them in to the target sub-app using the currently logged-in user. Users no longer need to re-enter their credentials in each sub-app.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkml4hekv1f0kf2fh3js.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzkml4hekv1f0kf2fh3js.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://docs.nocobase.com/multi-app/multi-app/sub-app-api" rel="noopener noreferrer"&gt;Calling sub-app APIs&lt;/a&gt;. In multi-app scenarios, each sub-app has its own independent API, distinguished by path prefix, parameters, and so on, making it easy to call a sub-app's API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These enhancements are very practical for users running multi-app deployments, making it easier to exchange data and operate across multiple applications and improving the overall collaboration efficiency of multi-app systems.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/multi-app/multi-app/app-block-and-switcher" rel="noopener noreferrer"&gt;App block and app switcher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/multi-app/multi-app/app-sso" rel="noopener noreferrer"&gt;App single sign-on&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/multi-app/multi-app/sub-app-api" rel="noopener noreferrer"&gt;Calling sub-app APIs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Workflow enhancements
&lt;/h3&gt;

&lt;p&gt;This release enhances the &lt;strong&gt;controllability and observability&lt;/strong&gt; of workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added timeout control — workflows that run too long are automatically terminated (subflows also support timeout configuration)&lt;/li&gt;
&lt;li&gt;Added created-by and updated-by fields&lt;/li&gt;
&lt;li&gt;Added a log field to node jobs, making it easier to view node logs while debugging&lt;/li&gt;
&lt;li&gt;The Webhook trigger (synchronous mode) returns a 408 response status on timeout&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/workflow/" rel="noopener noreferrer"&gt;Workflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Handwritten signature field
&lt;/h3&gt;

&lt;p&gt;Added a handwritten signature field that lets you draw and save a signature in a form, suitable for approvals, confirmation sheets, receipts, and similar scenarios.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/data-sources/field-signature/" rel="noopener noreferrer"&gt;Handwritten signature field&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  JS Item action
&lt;/h3&gt;

&lt;p&gt;Added the JS Item action, which lets you run custom logic in an action by writing JS, working together with event flows to meet more flexible interaction needs.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/actions/types/js-item" rel="noopener noreferrer"&gt;JS Item action&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2.0 adaptation and new features
&lt;/h3&gt;

&lt;p&gt;Beyond AI, this release continues to migrate key feature modules to 2.0, while also rolling out new features for real-world business scenarios.&lt;/p&gt;

&lt;p&gt;New features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/data-sources/field-signature/" rel="noopener noreferrer"&gt;Handwritten signature field&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/actions/types/js-item" rel="noopener noreferrer"&gt;JS Item action&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2.0 adaptation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/actions/types/custom-request" rel="noopener noreferrer"&gt;Custom request&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/blocks/filter-blocks/tree" rel="noopener noreferrer"&gt;Tree filter block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/data-sources/calendar/" rel="noopener noreferrer"&gt;Calendar block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/blocks/data-blocks/kanban" rel="noopener noreferrer"&gt;Kanban block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/plugins/@nocobase/plugin-gantt" rel="noopener noreferrer"&gt;Gantt block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/blocks/data-blocks/list" rel="noopener noreferrer"&gt;List block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/blocks/data-blocks/grid-card" rel="noopener noreferrer"&gt;Grid card block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/plugins/@nocobase/plugin-map" rel="noopener noreferrer"&gt;Map block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/blocks/other-blocks/markdown" rel="noopener noreferrer"&gt;Markdown block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/integration/embed" rel="noopener noreferrer"&gt;iframe block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/data-visualization" rel="noopener noreferrer"&gt;Chart block / Data visualization&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Multilingual documentation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Added Indonesian and Vietnamese documentation&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>news</category>
    </item>
    <item>
      <title>14 Open Source AI Agent Tools with the Most GitHub Stars</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 12 Jun 2026 17:36:21 +0000</pubDate>
      <link>https://dev.to/nocobase/14-open-source-ai-agent-tools-with-the-most-github-stars-490c</link>
      <guid>https://dev.to/nocobase/14-open-source-ai-agent-tools-with-the-most-github-stars-490c</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recently, we have published several recommendation articles about &lt;strong&gt;open source AI Agent projects&lt;/strong&gt;, and they have received attention, saves, and feedback from many developers. Many readers also mentioned that they would like to see more roundups of AI Agent tools across different directions and use cases.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 open source tools suitable for use with WorkBuddy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;How can OpenClaw be used in real business? 5 recommended open source tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/opencode-open-source-tools-ai-agents" rel="noopener noreferrer"&gt;Which open source tools can OpenCode be used with? 5 open source projects suitable for AI Agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/building-internal-tools-with-codex" rel="noopener noreferrer"&gt;Do not let Codex generate apps from scratch: 6 composable open source projects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-tools-after-claude-code" rel="noopener noreferrer"&gt;After using Claude Code, you need these 6 open source tools&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Reddit’s &lt;a href="https://www.reddit.com/r/AI_Agents/comments/1sfrb3t/what_are_the_best_tools_and_frameworks_for/" rel="noopener noreferrer"&gt;AI Agent&lt;/a&gt; community, developers have raised similar questions: there are more and more AI Agent tools and frameworks, but the hard part is figuring out which projects are suitable for real use cases and which ones are mostly hype.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0p9serw4ir1ksgxeha8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0p9serw4ir1ksgxeha8.png" alt="Reddit-b7cbmq.png" width="678" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This time, we focus on GitHub’s official &lt;a href="https://github.com/topics/ai-agent" rel="noopener noreferrer"&gt;ai-agent&lt;/a&gt; topic. We selected projects from the most-starred results and organized them in the order they appear on the topic page. Since the projects under this topic cover a wide range of types, we excluded some projects that are only loosely related to AI Agent tools, are too vertical in use case, or are closer to resource collections or single-purpose content generation. In the end, we selected 14 open source projects that are more suitable for this article.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;AI Agent-related projects cover a broad range of areas, so ranking purely by Star count does not fully explain their practical value. Therefore, this article first lists the basic information for each project, including official website, GitHub repository, Star count, and more. Then, each project is introduced from two angles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Positioning&lt;/strong&gt;: What type of AI Agent tool it mainly is, whether it focuses more on personal productivity, development assistance, web automation, knowledge management, or enterprise business systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;: What specific problems it is better suited to solve, and whether it is more suitable for individual developers, team collaboration, or implementation inside enterprises.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below are the 14 open source AI Agent projects we selected. Before the detailed introduction, you can quickly scan their positioning through the table.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rank&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Positioning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;22.7k&lt;/td&gt;
&lt;td&gt;AI-powered no-code business systems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;OpenCLI&lt;/td&gt;
&lt;td&gt;24.1k&lt;/td&gt;
&lt;td&gt;Website-to-CLI / browser automation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;Agent-Reach&lt;/td&gt;
&lt;td&gt;26.3k&lt;/td&gt;
&lt;td&gt;AI Agent web access / information retrieval&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;Google Workspace CLI&lt;/td&gt;
&lt;td&gt;27k&lt;/td&gt;
&lt;td&gt;Productivity suite CLI / Agent Skills&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;AionUi&lt;/td&gt;
&lt;td&gt;28.1k&lt;/td&gt;
&lt;td&gt;Local AI coworking workspace / multi-Agent management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;OpenClaude&lt;/td&gt;
&lt;td&gt;28.6k&lt;/td&gt;
&lt;td&gt;AI Coding Agent / CLI tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;CopilotKit&lt;/td&gt;
&lt;td&gt;34.7k&lt;/td&gt;
&lt;td&gt;Agent frontend framework / Generative UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Nanobot&lt;/td&gt;
&lt;td&gt;44.1k&lt;/td&gt;
&lt;td&gt;Lightweight AI Agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Siyuan&lt;/td&gt;
&lt;td&gt;44.4k&lt;/td&gt;
&lt;td&gt;Self-hosted knowledge management / personal knowledge base&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;CowAgent&lt;/td&gt;
&lt;td&gt;45.2k&lt;/td&gt;
&lt;td&gt;AI Assistant / Agent Harness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Cherry Studio&lt;/td&gt;
&lt;td&gt;47.2k&lt;/td&gt;
&lt;td&gt;AI Productivity Studio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;career-ops&lt;/td&gt;
&lt;td&gt;52.7k&lt;/td&gt;
&lt;td&gt;AI job search automation system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;learn-claude-code&lt;/td&gt;
&lt;td&gt;66.1k&lt;/td&gt;
&lt;td&gt;Claude Code-like Agent Harness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Hermes Agent&lt;/td&gt;
&lt;td&gt;191k&lt;/td&gt;
&lt;td&gt;General AI Agent / Agent Harness&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  14. NocoBase
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5gdj555gu99wl879pxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5gdj555gu99wl879pxq.png" alt="NocoBase1-8m9930.png" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;https://www.nocobase.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;https://github.com/nocobase/nocobase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 22.7k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;NocoBase is an open source AI-powered no-code / low-code platform for quickly building enterprise internal business systems, admin panels, and business applications that need continuous iteration.&lt;/p&gt;

&lt;p&gt;As AI Agents gradually enter both development and business scenarios, enterprises need more than single-task automation. They need a system environment that can support data, permissions, pages, workflows, and activity logs. This is exactly the foundation NocoBase provides.&lt;/p&gt;

&lt;p&gt;In NocoBase, AI can participate in application building. Users can describe business requirements in natural language, and AI can help create data models, configure pages, orchestrate workflows, and even assist with plugin development. After the system is generated, teams can continue checking and adjusting fields, relationships, pages, permissions, and workflows through the no-code interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53r5u0j4rj245d2s5oo8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F53r5u0j4rj245d2s5oo8.png" alt="NocoBase2-0l0hhf.png" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NocoBase also supports configuring AI Employees inside business systems. AI Employees can work with page data, business context, tools, and knowledge bases to handle data analysis, content summaries, report generation, translation, unstructured content extraction, form filling, workflow node processing, and more. In this way, AI does not only help build the system. It can also continue participating in system operations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhr7ghpigecj14qtowaur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhr7ghpigecj14qtowaur.png" alt="NocoBase3-xn1trm.png" width="799" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;NocoBase is suitable for building enterprise internal systems that require data models, permission control, workflow orchestration, and long-term maintenance, especially in the following scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise internal business systems&lt;/strong&gt;: CRM customer management, approval systems, ticketing systems, project management systems, operations backends, admin backends, and more.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe23g0sxy51dtepl4jstz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe23g0sxy51dtepl4jstz.png" alt="NocoBase4-ngkai4.png" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight ERP and business management modules&lt;/strong&gt;: procurement management, inventory management, order management, equipment management, asset management, archive management, customer follow-up, and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extension and enhancement of existing systems&lt;/strong&gt;: For enterprises that already have databases, ERP, CRM, or other business systems, NocoBase can help integrate data, configure pages, manage permissions, and orchestrate workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A foundation for AI Agents to enter business workflows&lt;/strong&gt;: NocoBase provides AI Agents with a clear business system environment, where business data has models, user operations have permissions, workflow transitions have rules, and later maintenance can continue through no-code configuration and plugin extensions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🔎Related resources&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;CLI: &lt;a href="https://docs.nocobase.com/en/api/cli/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/api/cli/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Skills: &lt;a href="https://docs.nocobase.com/en/ai-builder#nocobase-skills" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/ai-builder#nocobase-skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MCP: &lt;a href="https://docs.nocobase.com/en/ai/mcp/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/ai/mcp/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official solution library: &lt;a href="https://www.nocobase.com/en/solutions" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/solutions&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  13. OpenCLI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4w5c4igk9oxpv9bnx3ut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4w5c4igk9oxpv9bnx3ut.png" alt="OpenCLI-qn3nn7.png" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://opencli.info/" rel="noopener noreferrer"&gt;https://opencli.info&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/jackwener/OpenCLI" rel="noopener noreferrer"&gt;https://github.com/jackwener/OpenCLI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 24.1k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;OpenCLI converts websites, browser sessions, Electron apps, and local tools into CLI interfaces. Operations that originally required graphical interfaces can be wrapped as commands, allowing humans or AI Agents to call web capabilities, reuse logged-in browser sessions, and perform automated actions such as navigation, clicking, form filling, and data extraction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;OpenCLI is suitable for scenarios where tasks need to be completed through webpages but no standard API is available:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web automation&lt;/strong&gt;: Read backend pages, query information, fill out forms, and extract platform data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent tool interface&lt;/strong&gt;: Wrap browser sessions and web capabilities as commands that AI Agents can call.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  12. Agent-Reach
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52ioi0qwz4wsn5s2anpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F52ioi0qwz4wsn5s2anpq.png" alt="Agent-Reach-ew3tec.png" width="800" height="690"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Panniantong/Agent-Reach" rel="noopener noreferrer"&gt;https://github.com/Panniantong/Agent-Reach&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 26.3k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;Agent-Reach focuses on external information access for AI Agents. Through a CLI tool, it allows Agents to read and search content from platforms such as Twitter, Reddit, YouTube, GitHub, Bilibili, and Xiaohongshu, solving the access problem in information retrieval, content reading, and cross-platform research.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;Agent-Reach can be used for technology trend tracking, competitor research, social media sentiment analysis, content topic research, GitHub project organization, and cross-platform material collection. It is not a complete Agent platform by itself. Instead, it adds external information access capabilities to Agents, giving later analysis, summarization, and organization a richer information base.&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Google Workspace CLI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7cl1y2nzpr8a1xxfq25.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7cl1y2nzpr8a1xxfq25.png" alt="Google Workspace CLI-pw1xpm.png" width="800" height="688"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/googleworkspace/cli" rel="noopener noreferrer"&gt;https://github.com/googleworkspace/cli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 27k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;Google Workspace CLI is a command-line tool for Google Workspace. It covers Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, and more. Through command-line operations and structured JSON output, it turns capabilities scattered across different productivity apps into interfaces that are easier to call.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;For teams that heavily use Google Workspace, this type of tool makes it easier for AI Agents to enter daily office workflows, such as reading emails, managing calendars, organizing Drive files, operating Sheets, generating Docs, or processing Chat messages. Since it involves workplace data and account authorization, actual use should pay special attention to OAuth scopes, access boundaries, and data security.&lt;/p&gt;

&lt;p&gt;🔎Related resources:&lt;/p&gt;

&lt;p&gt;Agent Skills: &lt;a href="https://github.com/googleworkspace/cli/blob/main/docs/skills.md" rel="noopener noreferrer"&gt;https://github.com/googleworkspace/cli/blob/main/docs/skills.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  10. AionUi
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffdhr8enky5lzqioz5ldw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffdhr8enky5lzqioz5ldw.png" alt="AionUi-5b2768.png" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://www.aionui.com/" rel="noopener noreferrer"&gt;https://www.aionui.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/iOfficeAI/AionUi" rel="noopener noreferrer"&gt;https://github.com/iOfficeAI/AionUi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 28.1k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;AionUi is a local open source AI coworking app for AI CLI tools such as OpenClaw, Hermes Agent, Claude Code, Codex, OpenCode, and Gemini CLI. It provides built-in Agents, multi-Agent management, remote access, cross-platform use, and automation tasks, making it more like a desktop workbench for managing AI Agents and local work in one place.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;AionUi is suitable for people who use multiple AI Coding or Agent tools at the same time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Agent management&lt;/strong&gt;: Manage tools such as Claude Code, Codex, Hermes Agent, OpenCode, and Gemini CLI in one place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local workbench&lt;/strong&gt;: Handle local files, coding tasks, web operations, and remote access in one workspace, reducing the need to switch between multiple tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. OpenClaude
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjelzaerabv66vnuaqhyx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjelzaerabv66vnuaqhyx.png" alt="OpenClaude-kw4n93.png" width="799" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://openclaude.gitlawb.com/" rel="noopener noreferrer"&gt;https://openclaude.gitlawb.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Gitlawb/openclaude" rel="noopener noreferrer"&gt;https://github.com/Gitlawb/openclaude&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 28.6k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;OpenClaude is an open source AI Coding Agent CLI that supports both cloud and local model providers, including OpenAI-compatible APIs, Gemini, GitHub Models, Codex, Ollama, Atomic Chat, and more. It brings prompts, tools, agents, MCP, slash commands, and streaming output into a terminal-first workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;OpenClaude is mainly used in terminal development environments, such as code explanation, file modification, test generation, refactoring suggestions, and tool calling. It is flexible, composable, and supports many model choices, but it also requires users to have some development experience and manage model configuration, execution permissions, and code change review themselves.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. CopilotKit
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq5z4uclv1xu7mynikks8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq5z4uclv1xu7mynikks8.png" alt="CopilotKit-gply44.png" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://docs.copilotkit.ai/" rel="noopener noreferrer"&gt;https://docs.copilotkit.ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/CopilotKit/CopilotKit" rel="noopener noreferrer"&gt;https://github.com/CopilotKit/CopilotKit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 34.7k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;CopilotKit is a frontend framework for Agents and Generative UI, supporting React, Angular, mobile, Slack, and other interfaces and platforms. It helps developers build AI Copilots, Agent interactions, shared state, and human-AI collaboration workflows inside their own products, rather than providing a standalone application for end users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;When a product needs to embed an AI Copilot into its interface, CopilotKit provides a relatively complete frontend foundation. For example, it can let AI understand the current page state, assist with form filling, trigger in-app actions, generate UI content, or participate in a business workflow. It is more of a development framework, suitable for teams building AI products, SaaS applications, or internal systems.&lt;/p&gt;

&lt;p&gt;🔎Related resources:&lt;/p&gt;

&lt;p&gt;Build with Agents: &lt;a href="https://docs.showcase.copilotkit.ai/build-with-agents" rel="noopener noreferrer"&gt;https://docs.showcase.copilotkit.ai/build-with-agents&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Nanobot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrpokf0q6xevnxvyldnu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrpokf0q6xevnxvyldnu.png" alt="image-jnwd3y.png" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://nanobot.wiki/" rel="noopener noreferrer"&gt;https://nanobot.wiki&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/HKUDS/nanobot" rel="noopener noreferrer"&gt;https://github.com/HKUDS/nanobot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 44.1k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;Nanobot is a lightweight open source personal AI Agent that emphasizes real user ownership. It keeps the Agent core relatively simple while providing WebUI, chat channels, tools, memory, MCP, model routing, automation, deployment, and other capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;It is suitable for individual developers, small teams, or users who want to build lightweight AI Agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Personal AI Agent&lt;/strong&gt;: Connect to Telegram, Discord, Slack, Email, and other entry points to handle daily tasks and automation workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent prototype development&lt;/strong&gt;: Quickly build a runnable Agent with tools, memory, MCP, model routing, and WebUI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. SiYuan
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrv0hlzsfmsqzvc9df6u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrv0hlzsfmsqzvc9df6u.png" alt="SiYuan-xlju2b.png" width="799" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://b3log.org/siyuan" rel="noopener noreferrer"&gt;https://b3log.org/siyuan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/siyuan-note/siyuan" rel="noopener noreferrer"&gt;https://github.com/siyuan-note/siyuan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 44.4k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;SiYuan is a privacy-first, self-hosted, fully open source personal knowledge management tool written in TypeScript and Go. It supports block references, backlinks, Markdown WYSIWYG editing, embedded SQL queries, web clipping, PDF annotation, databases, flashcards, AI writing, Q&amp;amp;A, and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;In the AI Agent context, SiYuan can be understood as a layer of knowledge infrastructure rather than a typical Agent framework. It is mainly used for personal knowledge management, research material organization, team knowledge accumulation, and local-first knowledge base building. When users want AI to better read, organize, and reuse long-term knowledge, this type of structured knowledge environment becomes especially important.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. CowAgent
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtkf20a0izpc2acvcwke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtkf20a0izpc2acvcwke.png" alt="CowAgent-kbrmgq.png" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://cowagent.ai/" rel="noopener noreferrer"&gt;https://cowagent.ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/zhayujie/CowAgent" rel="noopener noreferrer"&gt;https://github.com/zhayujie/CowAgent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 45.2k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;CowAgent is an open source AI Assistant and Agent Harness. It supports task planning, tool and Skills calling, memory and knowledge, self-evolution, multi-model access, and multi-channel access. It also builds on the foundation of chatgpt-on-wechat in IM access and personal assistant scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;CowAgent focuses on connecting AI Assistants to multiple entry points and tool environments, such as webpages, servers, personal computers, the WeChat ecosystem, and other IM platforms. It is not just a chatbot. Instead, it aims to become a long-running personal assistant or automation assistant through task planning, tool calling, memory, and Skills extensions.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Cherry Studio
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2hfbimke3gby8v99tyd5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2hfbimke3gby8v99tyd5.png" alt="Cherry Studio-ykg2qa.png" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://cherryai.com/" rel="noopener noreferrer"&gt;https://cherryai.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/CherryHQ/cherry-studio" rel="noopener noreferrer"&gt;https://github.com/CherryHQ/cherry-studio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 47.2k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;Cherry Studio is an AI Productivity Studio that supports intelligent chat, Autonomous Agents, 300+ assistants, and unified access to multiple frontier large language models. It is closer to a complete AI workbench for centrally managing models, assistants, knowledge bases, and daily AI workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;Cherry Studio is designed for high-frequency AI use in daily work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-model workbench&lt;/strong&gt;: Manage different large language models, assistants, knowledge bases, and daily AI workflows in one place.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI productivity tool&lt;/strong&gt;: Use it for writing, material organization, knowledge base Q&amp;amp;A, Agent usage, and team collaboration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. career-ops
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1kqypohm4kkm9nt9l3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1kqypohm4kkm9nt9l3u.png" alt="career-ops-ylaji6.png" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://career-ops.org/" rel="noopener noreferrer"&gt;https://career-ops.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/santifer/career-ops" rel="noopener noreferrer"&gt;https://github.com/santifer/career-ops&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 52.7k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;career-ops is an AI job search automation system based on Claude Code. It can turn an AI Coding CLI into a job search management center for job evaluation, resume generation, job portal scanning, batch processing, interview preparation, and opportunity tracking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;career-ops is highly vertical and mainly focuses on personal job search workflows. Its value is not only in providing a “job search tool,” but also in showing how AI Agents can enter a clearly defined workflow and break job filtering, material generation, opportunity tracking, interview preparation, and batch processing into executable task chains.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. learn-claude-code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy81nch34sonpjx99dl7k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy81nch34sonpjx99dl7k.png" alt="learn-claude-code-6gfiw7.png" width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://learn.shareai.run/" rel="noopener noreferrer"&gt;https://learn.shareai.run&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/shareAI-lab/learn-claude-code" rel="noopener noreferrer"&gt;https://github.com/shareAI-lab/learn-claude-code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 66.1k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;learn-claude-code is an open source project for learning Claude Code-like Agent Harnesses. Built around the idea that “Agent product = Model + Harness,” it explains tools, knowledge, observation, action interfaces, permission boundaries, context management, multi-Agent collaboration, and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;learn-claude-code is more like systematic learning material for developers, helping users understand the mechanisms behind AI Coding Agents. It covers agent loop, tool use, permissions, hooks, memory, task systems, MCP, and multi-agent collaboration. It is suitable for individual learning and can also serve as internal training material for teams building Agent engineering capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Hermes Agent
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv06pxk6kjnkpnuxyspks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv06pxk6kjnkpnuxyspks.png" alt="Hermes Agent-500tav.png" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Official website: &lt;a href="https://hermes-agent.nousresearch.com/" rel="noopener noreferrer"&gt;https://hermes-agent.nousresearch.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/NousResearch/hermes-agent" rel="noopener noreferrer"&gt;https://github.com/NousResearch/hermes-agent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Stars: 191k&lt;/p&gt;

&lt;h3&gt;
  
  
  Project introduction
&lt;/h3&gt;

&lt;p&gt;Hermes Agent is a self-improving AI Agent built by Nous Research. It is officially described as “The agent that grows with you.” It emphasizes that Agents can create and improve skills during continuous use, record and search past conversations, and gradually understand users’ long-term preferences and context.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;p&gt;Hermes Agent is suitable for Agent scenarios that require long-term operation, long-term memory, and Skills accumulation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Self-hosted Agent&lt;/strong&gt;: Build a personal or team Agent that can run continuously, record historical conversations, and reuse skills.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long-term collaboration assistant&lt;/strong&gt;: Through memory, skills, and tool calling, the Agent can gradually accumulate context and working methods across repeated use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡Read more: &lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;Improve internal tool efficiency with Hermes: 5 recommended open source projects&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔎Related resources:&lt;/p&gt;

&lt;p&gt;Skills System: &lt;a href="https://hermes-agent.nousresearch.com/docs/user-guide/features/skills" rel="noopener noreferrer"&gt;https://hermes-agent.nousresearch.com/docs/user-guide/features/skills&lt;/a&gt; Skills Catalog: &lt;a href="https://github.com/NousResearch/hermes-agent/blob/main/website/docs/reference/skills-catalog.md" rel="noopener noreferrer"&gt;https://github.com/NousResearch/hermes-agent/blob/main/website/docs/reference/skills-catalog.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Q1: How should I choose between these tools?
&lt;/h3&gt;

&lt;p&gt;A: You can first identify what type of problem you want to solve. If you want to improve personal productivity, you can prioritize Cherry Studio, Nanobot, Hermes Agent, and SiYuan. If you are developing AI Agents or AI Copilots, you can look at OpenClaude, CopilotKit, and learn-claude-code. If you want Agents to call external tools and web capabilities, you can look at OpenCLI, Agent-Reach, and Google Workspace CLI. If you are building enterprise business systems and implementing workflows, NocoBase is worth focusing on.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Goal&lt;/th&gt;
&lt;th&gt;Recommended tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Build enterprise internal systems&lt;/td&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web automation and tool calling&lt;/td&gt;
&lt;td&gt;OpenCLI, Agent-Reach&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Office system automation&lt;/td&gt;
&lt;td&gt;Google Workspace CLI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI Coding / terminal Agent&lt;/td&gt;
&lt;td&gt;OpenClaude, learn-claude-code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In-product AI Copilot&lt;/td&gt;
&lt;td&gt;CopilotKit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personal AI assistant&lt;/td&gt;
&lt;td&gt;Nanobot, Hermes Agent, CowAgent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-model workbench&lt;/td&gt;
&lt;td&gt;Cherry Studio&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knowledge management&lt;/td&gt;
&lt;td&gt;SiYuan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vertical Agent application reference&lt;/td&gt;
&lt;td&gt;career-ops&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Q2: Can non-technical teams use these AI Agent tools?
&lt;/h3&gt;

&lt;p&gt;Yes, but it depends on the type of tool.&lt;/p&gt;

&lt;p&gt;Projects such as &lt;strong&gt;OpenCLI, Agent-Reach, Google Workspace CLI, OpenClaude, CopilotKit, and learn-claude-code&lt;/strong&gt; are more like CLI tools, development frameworks, or Agent engineering learning materials. They require some technical foundation.&lt;/p&gt;

&lt;p&gt;Tools such as &lt;strong&gt;Cherry Studio and SiYuan&lt;/strong&gt; have friendlier interfaces and are easier for business users to get started with directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt; sits between the two. Non-technical users can use systems and AI Employees that have already been built. Users with some technical background can better configure data models, pages, permissions, and workflows. With development resources, teams can also extend it more deeply through plugins, APIs, Skills, and MCP.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q3: What should enterprises pay the most attention to when using AI Agents?
&lt;/h3&gt;

&lt;p&gt;When enterprises use AI Agents, they should not focus only on model capabilities. They also need to consider data, permissions, workflows, and auditing. Once an Agent enters a business system, it may access customer data, order information, approval workflows, contract content, or internal documents. Clear boundaries are required.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key issue&lt;/th&gt;
&lt;th&gt;Capabilities to focus on&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Is data controllable?&lt;/td&gt;
&lt;td&gt;Self-hosting, database permissions, data access scope&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Are operations traceable?&lt;/td&gt;
&lt;td&gt;Audit logs, activity logs, workflow records&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Are permissions clear?&lt;/td&gt;
&lt;td&gt;Role permissions, field permissions, data scope control&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do key actions require confirmation?&lt;/td&gt;
&lt;td&gt;Human confirmation nodes, approval workflows, trigger conditions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Is Agent output stable?&lt;/td&gt;
&lt;td&gt;Structured output, retry mechanisms, human review&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The value of business system platforms such as NocoBase is that they place AI inside a system environment with permissions, workflows, and data models, rather than letting Agents directly face scattered data and uncontrolled operations. For scenarios such as approvals, customer service, data entry, and report generation, human confirmation and audit records remain very important.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q4: Can multiple tools be combined?
&lt;/h3&gt;

&lt;p&gt;Yes. The AI Agent ecosystem cannot be covered by a single tool. Many teams use different tools at different layers: some are responsible for building systems, some for calling webpages, some for writing code, some for knowledge management, and some for frontend AI interaction.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Combination scenario&lt;/th&gt;
&lt;th&gt;Reference combination&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Business system + AI Employee&lt;/td&gt;
&lt;td&gt;NocoBase + AI Employee&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business system + external Coding Agent&lt;/td&gt;
&lt;td&gt;NocoBase + Claude Code / Codex / OpenCode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web operation + information organization&lt;/td&gt;
&lt;td&gt;OpenCLI + Agent-Reach&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In-product AI Copilot&lt;/td&gt;
&lt;td&gt;CopilotKit + business system API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Knowledge base + Agent&lt;/td&gt;
&lt;td&gt;SiYuan + Nanobot / Hermes Agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-model daily workbench&lt;/td&gt;
&lt;td&gt;Cherry Studio + various model services&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;AI Agent tools are rapidly branching into different directions. Some tools focus on model calling and task execution, some focus on web automation and external information access, some focus on AI Coding and Agent Harnesses, and some are beginning to enter enterprise business systems and long-term process management.&lt;/p&gt;

&lt;p&gt;For individual users, it is better to start with lightweight scenarios such as knowledge management, personal assistants, AI Coding, or browser automation. For enterprise teams, the more important question is whether an Agent can enter real business workflows and run stably under the constraints of data, permissions, workflows, and audit mechanisms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If this article is helpful to you, feel free to share it with friends who are following open source AI Agent tools, AI automation, and enterprise internal system building.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;5 Open-Source Internal Tools to Use with Hermes Agent&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;OpenClaw and 5 Open-Source Tools for Monitoring Business Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/opencode-open-source-tools-ai-agents" rel="noopener noreferrer"&gt;What Open-Source Tools Work Well with OpenCode? 5 Projects to Try&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/building-internal-tools-with-codex" rel="noopener noreferrer"&gt;Building Internal Tools with Codex: 6 Open-Source Projects for Developers&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-tools-after-claude-code" rel="noopener noreferrer"&gt;After Claude Code: 6 Open-Source Tools You Should Know&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-enterprise-software-development" rel="noopener noreferrer"&gt;Top 10 Open-Source AI And No-Code Tools for Enterprise Software Development&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/8-open-source-ai-agent-platforms-for-internal-tools" rel="noopener noreferrer"&gt;8 Open-Source AI Agent Platforms for Building Internal Tools&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/the-best-self-hosted-crm-for-enterprise-teams" rel="noopener noreferrer"&gt;The Best Enterprise-Grade Self-Hosted CRMs with RBAC, AI, and Open API Support&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-open-source-integration-tools-to-replace-custom-middleware" rel="noopener noreferrer"&gt;6 Best Open-Source Tools to Replace Custom Integration Middleware&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/airtable-vs-nocobase-migration-cost-comparison" rel="noopener noreferrer"&gt;Airtable vs. NocoBase: The Real Cost of Migrating from Excel&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>github</category>
      <category>news</category>
    </item>
    <item>
      <title>Top 8 Open Source AI Assistant Tools by GitHub Stars</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Wed, 10 Jun 2026 15:58:18 +0000</pubDate>
      <link>https://dev.to/nocobase/top-8-open-source-ai-assistant-tools-by-github-stars-630</link>
      <guid>https://dev.to/nocobase/top-8-open-source-ai-assistant-tools-by-github-stars-630</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Over the past few weeks, we have organized several open source tools that work well with popular AI Agents:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-tools-after-claude-code" rel="noopener noreferrer"&gt;💡After using Claude Code, you need these 6 open source tools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nocobase.com/en/blog/building-internal-tools-with-codex" rel="noopener noreferrer"&gt;💡Do not let Codex generate apps from scratch: 6 composable open source projects&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recently, while browsing Reddit, we noticed that besides AI Agents, AI Assistants are still a topic many users actively discuss. Compared with Agents, which emphasize autonomous planning and task execution, Assistants are more like everyday work entry points. They can serve individuals, small teams, and enterprises.&lt;/p&gt;

&lt;p&gt;In a discussion on r/AI_Agents, one user was looking for a &lt;a href="https://www.reddit.com/r/AI_Agents/comments/1t7c020/what_ai_personal_assistants_are_actually_worth/" rel="noopener noreferrer"&gt;personal AI Assistant that is actually worth using long term&lt;/a&gt;. They hoped it could help manage daily information such as notes, tasks, calendars, emails, reminders, and contacts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge677gc4v8owi2dl4qdj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge677gc4v8owi2dl4qdj.png" alt="Raddit1.png" width="745" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another discussion was more focused on enterprise and team scenarios. The user runs a service agency and needs to handle website content, emails, and social media work for small business clients, so they wanted to know &lt;a href="https://www.reddit.com/r/AI_Agents/comments/1qfuity/what_is_the_best_ai_assistant_for_small_businesses/" rel="noopener noreferrer"&gt;which AI Assistants or AI tools&lt;/a&gt; would fit their needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0uwaryk7jncuqffhp5w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0uwaryk7jncuqffhp5w.png" alt="Raddit2.png" width="745" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From these discussions, we can see that AI Assistant needs roughly fall into two categories: personal use and enterprise or team use.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. →&lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt; Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Personal AI Assistants&lt;/strong&gt;: mainly help individual users manage daily information and improve productivity, such as organizing notes, following up on tasks, managing calendars, processing emails, setting reminders, calling local tools, or providing support in desktop and development environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise AI Assistants&lt;/strong&gt;: better suited for teams and enterprises. They can connect to business systems, be embedded into application interfaces, handle customer communication, support content operations, automate workflows, and provide support around data, permissions, and task collaboration.&lt;/p&gt;

&lt;p&gt;Based on this idea, we collected high-star projects ranked near the top under GitHub’s &lt;a href="https://github.com/topics/ai-assistant" rel="noopener noreferrer"&gt;ai-assistant&lt;/a&gt; topic and selected 8 open source projects that are worth introducing in more detail.&lt;/p&gt;

&lt;p&gt;Below, we will review them in two categories: enterprise AI Assistants and personal AI Assistants. Since personal AI Assistants usually have more direct use cases around desktops, development tools, and daily productivity, while enterprise AI Assistants often involve business systems, permission workflows, data management, application embedding, and team collaboration, this article will focus more on enterprise AI Assistants.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;GitHub Stars&lt;/th&gt;
&lt;th&gt;Positioning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise AI Assistant&lt;/td&gt;
&lt;td&gt;NocoBase&lt;/td&gt;
&lt;td&gt;22.7k&lt;/td&gt;
&lt;td&gt;AI-powered no-code platform for building and maintaining business systems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise AI Assistant&lt;/td&gt;
&lt;td&gt;NanoClaw&lt;/td&gt;
&lt;td&gt;29.8k&lt;/td&gt;
&lt;td&gt;AI Assistant with chat-based entry points and containerized runtime&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise AI Assistant&lt;/td&gt;
&lt;td&gt;CopilotKit&lt;/td&gt;
&lt;td&gt;34.3k&lt;/td&gt;
&lt;td&gt;Frontend framework for in-app AI Copilots and generative UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise AI Assistant&lt;/td&gt;
&lt;td&gt;Ruflo&lt;/td&gt;
&lt;td&gt;58.6k&lt;/td&gt;
&lt;td&gt;Multi-Agent collaboration and automation workflow assistant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personal AI Assistant&lt;/td&gt;
&lt;td&gt;DeepChat&lt;/td&gt;
&lt;td&gt;6k&lt;/td&gt;
&lt;td&gt;Desktop assistant that connects models, tools, and personal context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personal AI Assistant&lt;/td&gt;
&lt;td&gt;Everywhere&lt;/td&gt;
&lt;td&gt;6k&lt;/td&gt;
&lt;td&gt;Desktop context-aware AI Assistant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personal AI Assistant&lt;/td&gt;
&lt;td&gt;CopilotForXcode&lt;/td&gt;
&lt;td&gt;6.1k&lt;/td&gt;
&lt;td&gt;AI coding assistant for Xcode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Personal AI Assistant&lt;/td&gt;
&lt;td&gt;Leon&lt;/td&gt;
&lt;td&gt;17.3k&lt;/td&gt;
&lt;td&gt;Open source personal AI Assistant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Enterprise AI Assistant
&lt;/h2&gt;

&lt;h2&gt;
  
  
  NocoBase
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;https://www.nocobase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Online Demo&lt;/strong&gt;: &lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;https://demo.nocobase.com/new&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;: &lt;a href="https://docs.nocobase.com/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;https://github.com/nocobase/nocobase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars&lt;/strong&gt;: 22.7k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhrc3odgt8vx57ntd1ur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhrc3odgt8vx57ntd1ur.png" alt="NocoBase1.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;NocoBase is an open source AI-powered no-code platform for quickly building enterprise internal business systems. In NocoBase, users can describe business requirements in natural language and let AI help with data model design, page configuration, workflow orchestration, permission setup, plugin management, and more. NocoBase also supports AI Employees, AI Skills, CLI, and other capabilities, allowing AI to continue working around existing business systems instead of stopping at one-off app generation.&lt;/p&gt;

&lt;p&gt;This is especially important for enterprise internal systems. Many business applications are not finished after being generated once. They often need continuous adjustments to fields, permissions, workflows, pages, and data relationships. The value of NocoBase is that it provides AI with a structured system environment, allowing AI to work within existing data models, permissions, workflows, and plugin systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cfjll1h08ct0vr52m4o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cfjll1h08ct0vr52m4o.png" alt="NocoBase2.png" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Core features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AI participates in business system building&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NocoBase supports describing business requirements in natural language and letting AI help with the initial creation of data tables, fields, relationships, pages, and workflows. For example, users can describe a customer management, ticket management, contract approval, or project dashboard scenario. AI can first generate the system foundation, and the team can then review and adjust it.&lt;/p&gt;

&lt;p&gt;This approach is better suited for enterprise internal systems, because business systems usually require clear data structures, role permissions, and workflow rules. AI improves building efficiency, while humans confirm business logic and control system boundaries.&lt;/p&gt;

&lt;p&gt;🔎Related resources:&lt;/p&gt;

&lt;p&gt;CLI: &lt;a href="https://docs.nocobase.com/en/api/cli/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/api/cli/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Skills: &lt;a href="https://docs.nocobase.com/en/ai-builder#nocobase-skills" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/ai-builder#nocobase-skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MCP: &lt;a href="https://docs.nocobase.com/en/ai/mcp/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/en/ai/mcp/&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AI Employees can continue participating in system operations&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NocoBase’s AI Employees can automatically use page data and structure as context, understand business scenarios, and directly execute tasks. They can summarize emails, analyze data, organize unstructured content and automatically fill forms, design data models, and even write JavaScript code. Each AI Employee has independent Skills, tools, and knowledge bases. Enterprises can create any number of AI Employees to build their own AI team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffvm0id7dzjjqrohw84md.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffvm0id7dzjjqrohw84md.png" alt="NocoBase3.png" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No-code capabilities reduce later maintenance costs&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many AI generation tools can quickly generate code, but later maintenance often depends on developers. NocoBase is different. After AI generates the system, users can still enter the no-code interface to continue modifying fields, pages, menus, action buttons, permissions, and workflows.&lt;/p&gt;

&lt;p&gt;For business teams, this means the system does not remain a one-off demo. Whenever the business changes, teams can continue adjusting it inside the platform, without needing to return to the code development process every time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wert1dgrb6cwvt5f4m1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wert1dgrb6cwvt5f4m1.png" alt="NocoBase4.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Suitable for enterprise-level data, permissions, and workflows&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When enterprise AI Assistants are actually implemented, data, permissions, and workflows are unavoidable. NocoBase has capabilities such as data models, role permissions, workflows, plugin extensions, and multiple data sources, making it a strong foundation for AI Assistants to work inside business systems.&lt;/p&gt;

&lt;p&gt;For example, AI can work around business objects such as customers, orders, tickets, projects, inventory, and contracts. At the same time, different roles can have different data access scopes and operation permissions, preventing everyone from seeing the same information or performing the same actions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Suitable for starting from specific scenarios&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When using NocoBase, it is not recommended to ask AI to build a complete ERP or complex enterprise system from the beginning. A better approach is to start with a clear small scenario, such as customer management, purchase requests, equipment ledgers, after-sales tickets, contract approval, project dashboards, or inventory records.&lt;/p&gt;

&lt;p&gt;After one specific scenario works well, you can gradually expand fields, pages, workflows, and permissions. This makes it easier for AI-generated results to match the business and makes later review and maintenance easier for the team.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/solutions/all-in-one/crm" rel="noopener noreferrer"&gt;CRM customer management system&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Approval systems&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/solutions/all-in-one/ticketing" rel="noopener noreferrer"&gt;Ticketing systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/solutions/all-in-one/project" rel="noopener noreferrer"&gt;Project management systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lightweight ERP modules such as procurement, inventory, and orders&lt;/li&gt;
&lt;li&gt;Operations backends and admin backends&lt;/li&gt;
&lt;li&gt;Equipment management, &lt;a href="https://www.nocobase.com/en/solutions/all-in-one/asset" rel="noopener noreferrer"&gt;asset management&lt;/a&gt;, and archive management&lt;/li&gt;
&lt;li&gt;Customer follow-up and service management&lt;/li&gt;
&lt;li&gt;Enterprise internal systems that require private deployment&lt;/li&gt;
&lt;li&gt;Business applications that require permissions, workflows, data models, and continuous adjustment&lt;/li&gt;
&lt;li&gt;Teams that want to combine AI and no-code capabilities to build internal systems&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  NanoClaw
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/nanocoai/nanoclaw" rel="noopener noreferrer"&gt;https://github.com/nanocoai/nanoclaw&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://nanoclaw.dev/" rel="noopener noreferrer"&gt;https://nanoclaw.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars&lt;/strong&gt;: 29.8k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz47q75hq4mqfqcu4tw12.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz47q75hq4mqfqcu4tw12.png" alt="NanoClaw1.png" width="800" height="893"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;NanoClaw is a lightweight AI Assistant project focused on running Agents in containers and connecting to messaging channels such as WhatsApp, Telegram, Slack, Discord, and Gmail. It is more like an enterprise-focused AI Assistant with chat-based entry points and container isolation, making it suitable for users who want to call Agents, handle tasks, and arrange automation workflows through chat tools.&lt;/p&gt;

&lt;p&gt;Compared with ordinary chat assistants, NanoClaw places more emphasis on security isolation and controllable runtime environments. Each Agent can run in an independent container, reducing its impact on the host system and other tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Containerized runtime&lt;/strong&gt;: Agents run in independent containers, making it easier to isolate the file system and runtime environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rich messaging channels&lt;/strong&gt;: Supports Telegram, Discord, WhatsApp, Slack, Gmail, and other entry points, making it suitable for connecting AI Assistants to daily collaboration tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight and customizable&lt;/strong&gt;: Compared with large Agent systems, NanoClaw emphasizes clear code structure, easy understanding, and convenient customization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzu3e26e4vrszu0qmsu2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzu3e26e4vrszu0qmsu2.png" alt="NanoClaw2.png" width="800" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Calling AI Assistants through messaging tools such as Telegram, Discord, and Slack.&lt;/li&gt;
&lt;li&gt;Building a self-hosted task processing entry point for individuals or teams.&lt;/li&gt;
&lt;li&gt;Running Agent tasks in a safer and isolated environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  CopilotKit
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/CopilotKit/CopilotKit" rel="noopener noreferrer"&gt;https://github.com/CopilotKit/CopilotKit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://docs.copilotkit.ai/" rel="noopener noreferrer"&gt;https://docs.copilotkit.ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars&lt;/strong&gt;: 34.4k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq94as8wgkux2ibjcwhjz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq94as8wgkux2ibjcwhjz.png" alt="CopilotKit1.png" width="799" height="235"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;CopilotKit is a frontend framework for building AI Copilots, generative UI, and Agent applications. It is better understood as a development framework for in-app AI Assistants. It can embed Agent capabilities into interfaces users already use, such as Web, mobile apps, Slack, and Teams.&lt;/p&gt;

&lt;p&gt;Its focus is not only providing a chat window. It also supports generative UI, shared state, and human confirmation workflows, making it suitable for teams that need to deeply integrate AI Assistants into product interactions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqxwnbvs6zuvobrzcjmvg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqxwnbvs6zuvobrzcjmvg.png" alt="CopilotKit2.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Core features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In-app Copilot&lt;/strong&gt;: Embed AI Assistants directly into existing applications, instead of asking users to switch to a separate chat tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generative UI&lt;/strong&gt;: Agents can generate or update UI components based on task status and user intent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human confirmation workflows&lt;/strong&gt;: Supports human-in-the-loop, allowing users to confirm, modify, or take over tasks at key steps.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Embedding an AI Copilot into SaaS products.&lt;/li&gt;
&lt;li&gt;Building AI Assistants that can read application state, call tools, and generate interfaces.&lt;/li&gt;
&lt;li&gt;Teams that need to integrate Agent workflows into Slack, Teams, or Web applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Ruflo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/ruvnet/ruflo" rel="noopener noreferrer"&gt;https://github.com/ruvnet/ruflo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://flo.ruv.io/" rel="noopener noreferrer"&gt;https://flo.ruv.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars&lt;/strong&gt;: 58.6k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6pypisbd5udguazaxerx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6pypisbd5udguazaxerx.png" alt="Ruflo1.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Ruflo is a multi-Agent collaboration platform for Claude Code and Codex, used to coordinate multiple specialized Agents, automated workflows, and team-level tasks. It is more like the Agent collaboration foundation behind enterprise AI Assistants, and is suitable for complex development, testing, security, documentation, architecture, and DevOps scenarios.&lt;/p&gt;

&lt;p&gt;Its core value is expanding the capability of a single Agent into multi-Agent collaboration, allowing tasks to be split, routed, executed, and remembered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Agent collaboration&lt;/strong&gt;: Supports multiple specialized Agents working together on development, testing, security, documentation, and other tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Designed for complex workflows&lt;/strong&gt;: Can work with Claude Code / Codex to handle coding, testing, auditing, documentation generation, and other workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugin and memory capabilities&lt;/strong&gt;: Provides a plugin system, vector memory, and task coordination capabilities, making it suitable for more complex Agent working environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxhuc6tg09dd3w0z5qrr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foxhuc6tg09dd3w0z5qrr.png" alt="Ruflo2.png" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Suitable scenarios
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Multiple Agents need to collaborate on development tasks.&lt;/li&gt;
&lt;li&gt;Teams want to automate code review, test generation, documentation maintenance, security scanning, and similar workflows.&lt;/li&gt;
&lt;li&gt;Teams need to extend more complex Agent collaboration capabilities on top of Claude Code or Codex.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Personal AI Assistant
&lt;/h2&gt;

&lt;h2&gt;
  
  
  DeepChat
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/ThinkInAIXYZ/deepchat" rel="noopener noreferrer"&gt;https://github.com/ThinkInAIXYZ/deepchat&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://deepchat.thinkinai.xyz/" rel="noopener noreferrer"&gt;https://deepchat.thinkinai.xyz&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars&lt;/strong&gt;: 6k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe90dxfoc4973uav8rsbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe90dxfoc4973uav8rsbb.png" alt="DeepChat.png" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;DeepChat is an open source desktop AI Assistant platform that supports multiple cloud and local large language models, and integrates MCP tool calling, Skills, ACP Agent integration, and remote control capabilities. It is more like a desktop assistant that connects models, tools, and personal context.&lt;/p&gt;

&lt;p&gt;For individual users, DeepChat’s advantage is that it brings multi-model chat, local models, tool calling, search enhancement, and skill workflows into one desktop application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unified multi-model management&lt;/strong&gt;: Supports multiple model providers, including OpenAI, Gemini, Anthropic, DeepSeek, and Ollama.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool and skill support&lt;/strong&gt;: Built-in MCP, Skills, and ACP Agent integrations can extend task capabilities for code review, document processing, PDFs, PPTs, spreadsheets, and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote control&lt;/strong&gt;: Supports controlling DeepChat sessions through Telegram, Feishu, QQBot, Discord, WeChat iLink, and other channels.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Everywhere
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Sylinko/Everywhere" rel="noopener noreferrer"&gt;https://github.com/Sylinko/Everywhere&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://everywhere.sylinko.com/" rel="noopener noreferrer"&gt;https://everywhere.sylinko.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars&lt;/strong&gt;: 6k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnauahzsefity39rc1t9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpnauahzsefity39rc1t9.png" alt="Everywhere.png" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Everywhere is a desktop AI Assistant focused on screen context awareness and contextual understanding. It can perceive the current application and screen content, allowing users to call AI for help in the current work environment without frequently taking screenshots, copying content, or switching windows.&lt;/p&gt;

&lt;p&gt;It is more like a desktop context-aware assistant, suitable for individual users when reading, translating, troubleshooting, summarizing, and working across applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screen context awareness&lt;/strong&gt;: Understands the current screen and application environment, reducing copy-paste and window switching.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick invocation&lt;/strong&gt;: Uses shortcuts to call the AI Assistant in the current scenario, making it closer to desktop workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supports multiple models and MCP tools&lt;/strong&gt;: Can combine different LLMs and MCP tools to complete more operations in the desktop environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  GitHub Copilot for Xcode
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/github/CopilotForXcode" rel="noopener noreferrer"&gt;https://github.com/github/CopilotForXcode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://github.com/github/CopilotForXcode" rel="noopener noreferrer"&gt;https://github.com/github/CopilotForXcode&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars&lt;/strong&gt;: 6.1k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3xud0t8zsr7xnt6un9dp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3xud0t8zsr7xnt6un9dp.png" alt="GitHub Copilot for Xcode.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;GitHub Copilot for Xcode is an AI coding assistant for Xcode, mainly serving Swift, Objective-C, iOS, and macOS development scenarios. It is more like a developer assistant embedded directly into Xcode, providing code completion, chat, code review, Agent Mode, and other capabilities.&lt;/p&gt;

&lt;p&gt;For developers in the Apple ecosystem, its value is bringing AI programming assistance into the native development environment and reducing the need to switch back and forth between Xcode and other AI tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native Xcode integration&lt;/strong&gt;: Built for Swift, Objective-C, iOS, and macOS development, and used directly in Xcode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code completion and chat&lt;/strong&gt;: Supports code suggestions, Copilot Chat, code review, and other features.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Mode&lt;/strong&gt;: Can understand and modify codebases, search related files, create files, and run MCP tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Leon
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/leon-ai/leon" rel="noopener noreferrer"&gt;https://github.com/leon-ai/leon&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official website&lt;/strong&gt;: &lt;a href="https://getleon.ai/" rel="noopener noreferrer"&gt;https://getleon.ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stars&lt;/strong&gt;: 17.3k&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F084w82vhos23u89jx1lv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F084w82vhos23u89jx1lv.png" alt="Leon.png" width="800" height="803"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Leon is an open source personal AI Assistant built around tools, context, memory, and Agent-style execution. It is more like a personal assistant that can run locally or on a server, suitable for users who value privacy, control, and extensibility.&lt;/p&gt;

&lt;p&gt;Compared with ordinary chat assistants, Leon emphasizes completing tasks through real tools and combining memory with context, making its answers and actions closer to the user’s real environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clear personal assistant positioning&lt;/strong&gt;: Designed for personal tasks, voice, automation, memory, and local environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supports tools, skills, and memory&lt;/strong&gt;: Can use local tools, skills, and hierarchical memory to complete more specific tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Balances local and remote models&lt;/strong&gt;: Supports local and remote AI providers, making it easier to choose between privacy and capability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. What should you consider when choosing an open source AI Assistant?
&lt;/h2&gt;

&lt;p&gt;When choosing an open source AI Assistant, you can focus on five aspects: whether the project is actively maintained, whether it supports your use case, whether it can connect to existing tools or systems, whether it supports self-hosting or private deployment, and whether it has clear documentation and an active community.&lt;/p&gt;

&lt;p&gt;Individual users can prioritize ease of use, model support, local tool calling, and desktop experience. Enterprise users should focus more on permissions, data structures, workflow automation, system integration, and long-term maintenance capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. If I want to build internal business systems for an enterprise, which AI Assistant project should I choose?
&lt;/h2&gt;

&lt;p&gt;If your goal is to build enterprise internal business systems such as CRM, approval systems, ticketing systems, project management, inventory management, and operations backends, you can look at &lt;strong&gt;NocoBase&lt;/strong&gt; first.&lt;/p&gt;

&lt;p&gt;NocoBase is better suited for supporting enterprise business data, permissions, workflows, and page configuration. It can not only help build systems with AI, but also continue adjusting fields, pages, permissions, and workflows through a no-code interface after generation. For enterprise internal systems that require long-term maintenance, this type of structured platform is more reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. If I only need a desktop AI Assistant for personal use, which one should I choose?
&lt;/h2&gt;

&lt;p&gt;If you mainly use it personally and want to use multiple models, process files, call tools, and organize information from one desktop app, you can first look at &lt;strong&gt;DeepChat&lt;/strong&gt; or &lt;strong&gt;Everywhere&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;DeepChat is better suited for bringing multiple models, MCP, Skills, and remote control capabilities into one desktop application. Everywhere emphasizes screen context awareness and contextual understanding, making it suitable for reading, translating, troubleshooting, and summarizing webpages or documents.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. If I am a developer and want to use an AI Assistant inside development tools, which one should I choose?
&lt;/h2&gt;

&lt;p&gt;If you are a developer in the Apple ecosystem and mainly use Xcode to build iOS, macOS, Swift, or Objective-C projects, you can look at &lt;strong&gt;GitHub Copilot for Xcode&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is better suited as a developer assistant embedded directly into Xcode, providing code completion, chat, code review, Agent Mode, and other capabilities. If your needs lean more toward multi-Agent collaboration, code review, test generation, documentation maintenance, and DevOps workflows, you can also look at &lt;strong&gt;Ruflo&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. If I want to embed an AI Assistant into my own product interface, which one should I choose?
&lt;/h2&gt;

&lt;p&gt;If you are building a SaaS product, Web application, or internal product and want to embed an AI Assistant directly into the application interface, you can first look at &lt;strong&gt;CopilotKit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;CopilotKit is better suited for building in-app Copilots. It allows AI Assistants to read application state, call tools, generate interfaces, and add human confirmation workflows at key steps. For teams that want to add AI Copilots, generative UI, or Agent workflows to products, it is a better fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. How should I choose if I want to build an open source personal AI Assistant?
&lt;/h2&gt;

&lt;p&gt;Leon leans more toward the personal assistant direction and is suitable for personal tasks, voice interaction, tool calling, memory, and automation scenarios. It is suitable for users who value privacy, self-hosting, long-term memory, and extensibility. If you want an assistant that can gradually connect to your local environment and personal workflows, Leon is closer to that direction than a simple chat tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Is NocoBase only for enterprises? Can individual users use it?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;NocoBase&lt;/strong&gt; is not only for enterprises. Individual users can also use it to build their own management systems or knowledge bases. Its open source edition is free and friendly to individual users.&lt;/p&gt;

&lt;p&gt;For example, individuals can use NocoBase to build knowledge bases, reading logs, task management systems, resource libraries, project dashboards, customer follow-up tables, content topic libraries, and other systems. As long as your needs involve data tables, fields, relationships, pages, and long-term organization, NocoBase can serve as a lightweight personal management platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⭐ If this article inspired you, feel free to share it with friends who are also interested in open source AI tools and productivity improvement.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;5 Open-Source Internal Tools to Use with Hermes Agent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;OpenClaw and 5 Open-Source Tools for Monitoring Business Workflows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/opencode-open-source-tools-ai-agents" rel="noopener noreferrer"&gt;What Open-Source Tools Work Well with OpenCode? 5 Projects to Try&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/building-internal-tools-with-codex" rel="noopener noreferrer"&gt;Building Internal Tools with Codex: 6 Open-Source Projects for Developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-tools-after-claude-code" rel="noopener noreferrer"&gt;After Claude Code: 6 Open-Source Tools You Should Know&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-enterprise-software-development" rel="noopener noreferrer"&gt;Top 10 Open-Source AI And No-Code Tools for Enterprise Software Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/8-open-source-ai-agent-platforms-for-internal-tools" rel="noopener noreferrer"&gt;8 Open-Source AI Agent Platforms for Building Internal Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/the-best-self-hosted-crm-for-enterprise-teams" rel="noopener noreferrer"&gt;The Best Enterprise-Grade Self-Hosted CRMs with RBAC, AI, and Open API Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/6-open-source-integration-tools-to-replace-custom-middleware" rel="noopener noreferrer"&gt;6 Best Open-Source Tools to Replace Custom Integration Middleware&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nocobase.com/en/blog/airtable-vs-nocobase-migration-cost-comparison" rel="noopener noreferrer"&gt;Replace Excel with NocoBase or Airtable? A Cost-by-Cost Comparison&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>github</category>
      <category>nocode</category>
    </item>
  </channel>
</rss>
