This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+8 more
ReleasePort's take
Light signalLowdefy v5.3.0 introduces first‑class AI agents and expands provider connections.
Why it matters: Evaluate the new @lowdefy/ai-utils runtime, AgentChat block, and added provider packages for integration opportunities; test in development before production rollout.
Summary
AI summaryAI agents become first‑class citizens with multi‑provider chat, tool usage, and new UI components.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
AI agents are now first-class in Lowdefy, with new @lowdefy/ai-utils runtime and AgentChat block. AI agents are now first-class in Lowdefy, with new @lowdefy/ai-utils runtime and AgentChat block. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Four new provider connections added: @lowdefy/connection-anthropic, @lowdefy/connection-openai, @lowdefy/connection-google, @lowdefy/connection-ai-gateway. Four new provider connections added: @lowdefy/connection-anthropic, @lowdefy/connection-openai, @lowdefy/connection-google, @lowdefy/connection-ai-gateway. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
AgentChat block supports real-time streaming chat UI with configurable reasoning display and file attachments. AgentChat block supports real-time streaming chat UI with configurable reasoning display and file attachments. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
sharedState two-way binding lets agents read and write page state via update-page-state tool. sharedState two-way binding lets agents read and write page state via update-page-state tool. Source: llm_adapter@2026-05-21 Confidence: high |
— |
| Feature | Medium |
MCP integration via @lowdefy/connection-mcp lets agents use external tools over HTTP, SSE, or stdio transports. MCP integration via @lowdefy/connection-mcp lets agents use external tools over HTTP, SSE, or stdio transports. Source: granite4.1:30b@2026-05-24-audit Confidence: high |
— |
| Feature | Medium |
File system agent tools (listFiles, readFile, searchFiles, statFile, resolvePath) give sandboxed access to agent-specific directories; copyAgentFileSystems emits manifest for Next.js file tracing. File system agent tools (listFiles, readFile, searchFiles, statFile, resolvePath) give sandboxed access to agent-specific directories; copyAgentFileSystems emits manifest for Next.js file tracing. Source: granite4.1:30b@2026-05-24-audit Confidence: high |
— |
| Feature | Medium |
MCP integration allows agents to use external tools via Model Context Protocol with @lowdefy/connection-mcp. MCP integration allows agents to use external tools via Model Context Protocol with @lowdefy/connection-mcp. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
File system agent tools provide sandboxed access to agent-specific file directories with copyAgentFileSystems manifest. File system agent tools provide sandboxed access to agent-specific file directories with copyAgentFileSystems manifest. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
blocks-agrid introduces cell.type: buttons renderer for action buttons in a column. blocks-agrid introduces cell.type: buttons renderer for action buttons in a column. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
ag-grid upgraded to v32.3.9 with new column menu, suppressed cell focus by default, and clipped overflow. ag-grid upgraded to v32.3.9 with new column menu, suppressed cell focus by default, and clipped overflow. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
blocks-agrid tag cells now render one tag per item for array-valued fields. blocks-agrid tag cells now render one tag per item for array-valued fields. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Feature | Medium |
blocks-agrid tag cells auto-colour by default using stable hash and antd hues. blocks-agrid tag cells auto-colour by default using stable hash and antd hues. Source: llm_adapter@2026-05-21 Confidence: low |
— |
| Bugfix | Low |
PageHeaderMenu now has a default borderBottom for visual consistency with other menu blocks. PageHeaderMenu now has a default borderBottom for visual consistency with other menu blocks. Source: granite4.1:30b@2026-05-24-audit Confidence: high |
— |
| Bugfix | Low |
@lowdefy/blocks-markdown declares antd as a peer dependency to avoid module resolution failures. @lowdefy/blocks-markdown declares antd as a peer dependency to avoid module resolution failures. Source: granite4.1:30b@2026-05-24-audit Confidence: high |
— |
| Other | Low |
affected_surface affected_surface Source: llm_adapter@2026-05-21 Confidence: low |
— |
Full changelog
Highlights
-
AI agents are now first-class in Lowdefy. New
@lowdefy/ai-utilsruntime, a config-drivenAgentChatcomposite block built on Ant Design X, and four new provider connections (@lowdefy/connection-anthropic,@lowdefy/connection-openai,@lowdefy/connection-google,@lowdefy/connection-ai-gateway) let you wire a streaming, tool-using AI agent into any page from YAML. Agents support multi-turn tool calling, server-side hooks (instructions,onStart,onStepStart,onToolCallStart,onToolCallFinish,onStepFinish,onFinish) callable as Lowdefy endpoints, sub-agents exposed as tools, file attachments with S3 upload, reasoning/thinking display, source citation streaming, and context compaction viapruneMessages. Provider-agnostic by design through the Vercel AI SDK. -
AgentChat block: real-time streaming chat UI. Sequential message part rendering with configurable reasoning display, tool approval UI for endpoint and MCP tools marked
confirm: true, file attachments (configurable accept types and max size, S3 upload integration), drawer display mode with aFloatButtontrigger, source citation rendering, Mermaid diagrams, LaTeX, and syntax-highlighted code blocks (toggled viarenderMermaidandcodeHighlighter). Includes copy, feedback, regenerate, and delete message actions, plus suggestions andSender.Header/Sender.Switchaffordances. The newAgentConversationsblock provides a standalone conversations sidebar for independent placement. -
MCP integration: agents can use external tools via Model Context Protocol. New
@lowdefy/connection-mcpconnection type supports HTTP, SSE, and stdio transports. Agents can reference MCP connections viaconnectionIdor inline config with build-time validation. Runtime MCP client creation does automatic tool discovery, merging, and cleanup, and tool approval support viaconfirm: trueworks for both endpoint tools and MCP sources. -
sharedStatetwo-way binding: agents can read and write page state. The built-inupdate-page-statetool lets an agent write to the page state of theAgentChatblock, so the agent can drive UI changes, fill forms, or read context the user has set elsewhere on the page. -
File system agent tools. Sandboxed
listFiles,readFile,searchFiles,statFile, andresolvePathtools give agents scoped access to agent-specific file directories.copyAgentFileSystemsemits anagentFileSystems.jsonmanifest so the production server includes each agent'sfileSystem.basePathin Next.js file tracing, so agents that read files work on Vercel and standalone (output: 'standalone') deployments without manualnext.config.jsconfiguration. -
blocks-aggrid: newcell.type: buttonsrenderer. Render a list of action buttons in a column with each button firing its own block-level event with the row data on the payload. Per-button properties mirror the antd Button block (title,icon,type,variant,color,size,shape,danger,ghost,hideTitle,disabled) plus row-data-path variants (titleField,iconField,disabledField,hiddenField) for per-row state. Use this for inline Edit/Delete/Approve actions without_ifdispatching. -
blocks-aggrid: ag-grid upgraded to v32.3.9. Pulls in two majors of upstream fixes. The column header UX (hamburger column menu with filter popup) is preserved by default; opt into the new ag-grid v32 column menu viacolumnMenu: 'new'on the block. Cell focus is suppressed by default (suppressCellFocus: true) so the keyboard focus outline doesn't visually compete with built-in cell renderers; override withsuppressCellFocus: false. Cell overflow is clipped so flex-rendered content stays inside its column. -
blocks-aggrid: tag cells render one tag per item for array-valued fields. Thecell.type: tagrenderer now accepts an array of strings in addition to a single string. Each item is rendered as its own styled tag and resolves its colour through the existingcolorMap/colorFrom/defaultconfiguration. Empty arrays and arrays containing only null/empty entries render the em-dash placeholder. Single-string values are unchanged. -
blocks-aggrid: tag cells auto-colour by default. When acell.type: tagcolumn is used with nocolorMap,colorFrom, ordefault, tag values are coloured from a stable hash so the same value always gets the same colour across rows, columns, and tables. The palette uses 12 antd named hues (red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta) and respects the active theme. Opt out withcell: { type: tag, default: default }. -
blocks-antd:PageHeaderMenunow has a defaultborderBottom, matching the existing default borders onPageSiderMenuandPageSidebarLayout, for visual consistency across the page menu blocks. The default can still be overridden viastyles.header. -
blocks-markdown:antddeclared as a peer dependency.MarkdownWithCodeimportsantdfor theme-aware syntax highlighting but the package did not declare it inpeerDependencies, causing module resolution failures when bundling apps that include@lowdefy/blocks-markdownwithout already pulling inantd. Now declaresantd(>=6) as a peer dependency.
Changes
feat: Add AI agent support with multi-provider chat and tool use
Packages: @lowdefy/api, @lowdefy/build, @lowdefy/blocks-antd-x, @lowdefy/connection-ai-gateway, @lowdefy/connection-anthropic, @lowdefy/connection-google, @lowdefy/connection-mcp, @lowdefy/connection-openai, @lowdefy/server, @lowdefy/server-dev, @lowdefy/ai-utils
Agent Runtime (@lowdefy/ai-utils)
handleAgentChatorchestrates the full agent lifecycle: tool merging, MCP client lifecycle, hook callbacks, and stream compositionToolLoopAgenthandles multi-turn tool calling, streaming responses, and artifact cleaningcreateAgentUIStreamResponseconverts agent output to a streaming HTTP response for the clientbuildAgentToolsmerges endpoint tools, MCP tools, and sub-agent tools into AI SDK tool objectsbuildPrepareStepenables dynamic tool phasing per stepbuildUpdatePageStateToolprovides a built-in tool for the agent to write to page state via the AgentChat block- File system agent tools:
listFiles,readFile,searchFiles,statFile,resolvePathfor sandboxed access to agent-scoped file directories pruneMessagesfor context compactionexperimental_repairToolCallintegration- Sub-agent support — agents can be exposed as tools to other agents
- Reserved tool name collision detection (e.g.
update-page-state) - Server-side hooks (
instructions,onStart,onStepStart,onToolCallStart,onToolCallFinish,onStepFinish,onFinish) callable as Lowdefy endpoints - Provider-agnostic design using the Vercel AI SDK — supports reasoning/thinking display,
providerOptionspassthrough, and source citation streaming viasendSources - Strip
data:URL prefix from file attachments before AI SDK processing
AgentChat Block (@lowdefy/blocks-antd-x)
- New
AgentChatcomposite block built on Ant Design X with real-time streaming display - Sequential message part rendering with configurable reasoning/thinking display
- Tool approval UI for endpoint and MCP tools marked
confirm: true - File attachment support (configurable accept types and max size) with S3 upload integration
- Drawer display mode with a
FloatButtontrigger for embedding chat on any page - Source citation rendering for
source-urlandsource-documentparts - Mermaid diagrams, LaTeX, and syntax-highlighted code blocks (with copy + language label) — toggled via
renderMermaidandcodeHighlighter - Copy, feedback, regenerate, and delete message actions
- Suggestions and
Sender.Header/Sender.SwitchUI affordances - Configurable roles, avatars, and names per message role
- Event bridging for agent lifecycle events (
onSuccess,onError,onFinish,onFeedback) sharedStatetwo-way binding lets the agent read and write page state via theupdate-page-statetool
AgentConversations Block (@lowdefy/blocks-antd-x)
- New standalone conversations sidebar block, extracted from AgentChat for independent placement
Connection Plugins
@lowdefy/connection-anthropic: Anthropic connection withAnthropicAgentresolver supporting Claude models@lowdefy/connection-openai: OpenAI connection withOpenAIAgentresolver supporting GPT models@lowdefy/connection-google: Google AI connection withGeminiAgentresolver, includingthinkingConfigandsafetySettingssugar props@lowdefy/connection-ai-gateway: Vercel AI Gateway connection withAIGatewayAgentresolver for routing to multiple providers through a single endpoint
MCP Integration (@lowdefy/connection-mcp, @lowdefy/ai-utils, @lowdefy/build)
- New
Mcpconnection type for HTTP, SSE, and stdio transport config - Agents can reference MCP connections via
connectionIdor inline config with build-time validation - Runtime MCP client creation with automatic tool discovery, merging, and cleanup
- Tool approval support via
confirm: trueon both endpoint tools and MCP sources
Build Pipeline (@lowdefy/build)
buildAgentsvalidates agent config (model, tools, sub-agents, MCP) and normalizes tool definitionswriteAgentswrites agent artifacts for server consumption- Sub-agent circular reference detection
- Tool object format with
confirmsupport - MCP
connectionIdnormalization (inline config vs reference) - Lazy module variable resolution for agent properties referenced from modules
- Agent schema validation integrated into the build pipeline
copyAgentFileSystemsemits anagentFileSystems.jsonmanifest so the production server can include each agent'sfileSystem.basePathdirectory in Next.js file tracing — agents that read files now work on Vercel and standalone (output: 'standalone') deployments without manualnext.config.jsconfiguration
API (@lowdefy/api)
- Agent route handler (
callAgent) for streaming agent responses - Endpoint tool execution context with operator evaluation
- Sub-agent resolver methods for agents-as-tools
- MCP
connectionIdresolution at request time getAgentConfigandgetAgentResolverhelpers for runtime agent resolution
Servers (@lowdefy/server, @lowdefy/server-dev)
- Agent API route (
/api/agent/[...path]) added to both production and development servers urlQueryvalidation- 10 MB request body limit for file attachments
- Server-side hooks for agent lifecycle callbacks (
instructions,onFinish)
feat(blocks-aggrid): Buttons cell renderer and ag-grid v32 update.
Packages: @lowdefy/blocks-aggrid
New cell.type: buttons renderer — render a list of action buttons in a column with each button firing its own block-level event with the row data on the payload. Per-button properties mirror the antd Button block (title, icon, type, variant, color, size, shape, danger, ghost, hideTitle, disabled) plus row-data-path variants (titleField, iconField, disabledField, hiddenField) for per-row state. Use this for inline Edit/Delete/Approve actions without _if dispatching.
ag-grid updated to v32.3.9 — pulls in two majors of upstream fixes. The column header UX (hamburger column menu with filter popup) is preserved by default; opt into the new ag-grid v32 column menu via columnMenu: 'new' on the block.
Cell focus suppressed by default — suppressCellFocus now defaults to true so the keyboard focus outline doesn't visually compete with built-in cell renderers (tags, buttons, links). Override with suppressCellFocus: false if needed. Cell overflow is also clipped so flex-rendered content stays inside its column.
feat(blocks-aggrid): Tag cell renders one tag per item for array-valued fields.
Packages: @lowdefy/blocks-aggrid
The cell.type: tag renderer now accepts an array of strings in addition to a single string. Each item is rendered as its own styled tag and resolves its colour through the existing colorMap / colorFrom / default configuration. Empty arrays and arrays containing only null/empty entries render the em-dash placeholder, matching the existing null-value behaviour. Single-string values are unchanged.
feat(blocks-aggrid): Auto-colour tag cells by default for consistent per-value colouring.
Packages: @lowdefy/blocks-aggrid
When a cell.type: tag column is used with no colorMap, no colorFrom, and no default, tag values are now coloured from a stable hash so the same value always gets the same colour across rows, columns, and tables. The palette uses 12 antd named hues (red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta) and respects the active theme.
The grey fallback is still available — set cell: { type: tag, default: default } on any column to opt out. When colorMap, colorFrom, or default is set, behaviour is unchanged.
Fixes & Improvements
-
fix(blocks-antd): Add default header border to PageHeaderMenu. (
@lowdefy/blocks-antd)PageHeaderMenu now has a default
borderBottommatching the existing default borders on PageSiderMenu and PageSidebarLayout, for visual consistency across the page menu blocks. The default can still be overridden viastyles.header. -
fix(blocks-markdown): Declare
antdas a peer dependency. (@lowdefy/blocks-markdown)MarkdownWithCodeimportsantdfor theme-aware syntax highlighting but the package did not declareantdin itspeerDependencies, causing module resolution failures (e.g., when bundling apps that include@lowdefy/blocks-markdownwithout already pulling inantd). Addedantd(>=6) as a peer dependency to match the version range used by@lowdefy/blocks-antd.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Lowdefy
Build internal tools, BI dashboards, admin panels, CRUD apps and workflows in minutes using YAML / JSON on an self-hosted, open-source platform. Connect to your data sources, host via Serverless, Netlify or Docker.
Related context
Related tools
Beta — feedback welcome: [email protected]