Changelog
v2.8.1 (2026-06-03)
Canvas comments (experimental)
The Canvas now has experimental support for comments, so you can leave notes anywhere on the canvas and discuss work in context with your team.
Dropbox and OneDrive integrations
Connect Dropbox and OneDrive as data sources and read files straight into your UDFs, alongside the existing cloud storage integrations.
New widget components
Widgets gain a file-upload input and a PDF gallery viewer, making it easier to bring documents into a widget and browse them inline.
Improvements
- Canvas: open any node in a fullscreen view for focused editing
- Canvas: UDF folders improved — duplicate folders, reorder nodes, and reorganize more reliably
- Canvas: revamped edge toolbar with a click-anchored layout, parameters panel, and copy-as-variables
- Canvas: Alt+ keyboard shortcuts jump straight to omnisearch actions
- CLI: new
fused udf searchandfused canvas validatecommands, plus an--output-fileoption onfused run - Experimental Widgets: experimental kepler-map JSON UI component for richer map widgets
Bug fixes
- Fixed: map results not showing up in some cases
- Fixed: z-index layer order not preserved when copying, pasting, or duplicating nodes
- Fixed: chat input Enter key sending messages mid-IME composition
- Fixed: CSV export column order now matches the realtime usage table
- Fixed: kernel dropdown not closing and preset search arrow-key navigation
v2.8.0 (2026-05-19)
Canvas MCP
The Canvas now exposes an MCP server so AI tools like Claude and Cursor can connect directly to your canvas. Register it from the CLI with a single command.
Anthropic integration
Add your Anthropic API key under team integrations to call Claude models inside UDFs via fused.api.anthropic_connect().
Widget UDF data access
Widgets can now reference UDF outputs directly using template syntax — for example {{ udf_1.col_name[0]?param=100 }} — so widget content can react to live UDF results without extra plumbing.
Improvements
- Widgets: presets let you start new widgets from common templates instead of from scratch
- Widgets: choose which AI model powers the widget builder when generating or editing widget code
- Widgets: new form input components — text area, number, datetime, camera, and color picker — available in the JSON UI editor
- Widgets: gallery input now supports additional layout modes and display options
- Canvas: AI chat widgets can be added directly as canvas nodes
- Canvas: auto-save shows a warning when a save encounters a problem
- Canvas: folder node descriptions improved — consistent with canvas-level description behavior
- Integrations modal now has a search bar to quickly find personal and team integrations
Bug fixes
- Fixed: toolbar position rendering offset on canvas
- Fixed: canvas loading indicator style inconsistency
- Fixed: description panel height inside folder nodes
- Fixed: canvas selection history not restoring correctly
- Fixed: UDF name not shown on canvas node when no custom title is set
v2.7.1 (2026-05-14)
Widgets: new components and capabilities
Widgets gain a transformer component for custom JavaScript logic, per-widget background colors, an AI chat preset (beta), and schema linting with autocompletion in the JSON UI editor.
Workbench UI improvements
Navigating the Workbench feels smoother — back and forward buttons let you move through canvas history, node descriptions now show up right on the canvas, and omnisearch got keyboard shortcuts. There's also a stale canvas indicator that shows you a diff before anything gets overwritten.
Improvements
- Canvas: AI suggestions are now scoped to the current canvas for more relevant results
- Canvas: canvas files can be saved and loaded as TOML for easier version control and sharing
- Canvas: node descriptions now appear as overlays directly on canvas nodes
- Canvas: stale canvas detection shows a diff before changes are overwritten
- Canvas: back and forward navigation buttons added to canvas history
- Canvas: parameter names now autocomplete in the JSON editor
- Canvas: AI chat conversations can be exported
- Canvas: create a pull request directly after saving a checkpoint
- Widgets: new transformer component runs custom JavaScript logic inside a widget
- Widgets: background color can be set per widget
- Widgets: JSON UI editor now validates against the schema with linting and autocompletion
- Widgets: new AI chat preset component (beta)
- Omnisearch: keyboard shortcuts added and search UX improved
- Google Drive: re-select which files Fused is allowed to access
Bug fixes
- Fixed: UDF map not loading correctly
- Fixed: widget rename breaking references throughout the canvas
- Fixed: Slack bot authentication errors
- Fixed: Notion access token not persisting between sessions
- Fixed: shared widget parameters not preserved on export
- Fixed: canvas viewport jumping when collapsing or expanding panels
v2.7.0 (2026-05-07)
Canvas redesign
The Canvas has been redesigned — new controls layout, collapsible code editor, node description overlays, a revamped edge toolbar, and refined typography throughout. The file explorer moves to the bottom bar and a new Quick action menu (Cmd+K) lets you search canvases, UDFs, and actions from anywhere.
Auto canvas checkpoints
The Canvas now automatically saves checkpoints as you work so you can restore any previous state without manually saving.
HubSpot integration
Connect HubSpot CRM data directly to UDFs — query contacts, deals, and pipelines without moving data out of HubSpot.
Improvements
- Canvas: AI can auto-rename canvases based on their content
- Canvas: team-scoped shared canvases no longer require a passcode
- Widgets: widget builder now has separate editor and preview tabs
- Widgets: widget configs now support JSON5 format
- Widgets: config previews stream live while editing
- Logs can now be opened in a new browser tab for easier debugging
fused.cacheresults now expose acachedattribute so you can tell whether a result came from cache- UDFs can now return PIL Image objects for raster tile rendering
- Real-time job logs improved with better streaming
- User secrets can now be managed separately from team secrets
Bug fixes
- Fixed: canvas loading performance issues
- Fixed: map not resizing when its container changes size
- Fixed: sidebars expanding when collapsing canvas panels
- Fixed: slider layout in the widget builder
- Fixed: Snowflake queries failing on unsupported fetch operations
- Fixed: UDF matching by file name
v2.6.1 (2026-04-29)
New integrations: Notion, Google Cloud (BigQuery), Snowflake, and Airtable
Connect Notion pages, BigQuery datasets, Snowflake tables, and Airtable bases directly to UDFs and expose results through the Fused API.

Widget AI Chat
An AI assistant built into the Widgets builder that lets you iterate on widget layout and logic through natural language.
Improvements
- Integrations: Airtable and Snowflake are now generally available — no longer behind a feature flag
- Integrations: New S3, Baseten, BEM, and GitHub integration setup forms
- Integrations: List now shows team vs. personal ownership and uses focused accordion cards
- Widgets: Support
{{udf?param=value}}syntax for overriding UDF parameters in widget SQL - Widgets: Set input default values via
$param; iframe nodes now support{{udf}}and$paramsyntax - Canvas: Smart floating toolbar
- Canvas: HTML template nodes for embedding custom layouts
- Workbench: Batch job execution flow simplified
- Allow passing
Nonevalues to UDFs regardless of type annotation
Bug fixes
- Fixed: non-numeric arrays incorrectly serialized as raster tiles
- Fixed:
to_fusedsilently falling back to the default collection when none matched - Fixed: Shift+Enter not triggering run for UDFs with manual run parameters
- Fixed: Snowflake connection failing when the optional role field was empty
- Fixed: integrations page broken for basic-tier users
- Fixed: canvas Z-index layering issues
- Fixed: zoom level on canvas load
- Fixed: loading issue on shared canvases
- Fixed: recent canvas card size on home page
v2.6.0 (2026-04-24)
[Experimental] Snowflake integration
Connect your Snowflake data warehouse directly to Fused — query Snowflake tables from UDFs and expose results through the Fused API without moving data.
See the Snowflake integration docs to get started.
[Experimental] Airtable integration
Read and write Airtable bases from UDFs, making it easy to build data pipelines on top of your Airtable data.
See the Airtable integration docs to get started.

Improvements
- Widgets: now generally available — no longer behind a feature flag
- Widgets: AI auto-fix from the error log; copy/share button in the code editor
- Canvas: "Folders" renamed to "Sections"; stale indicator added; edge improvements
- Canvas: "Generate MCP" button added; AI suggestions now use canvas context
- Clickable UDF names in the code editor — click to jump to the definition
- Home page UI polish
- Public Canvas now support preview images
fused.submitshows the first error before retrying;delete_cacherenamed toinvalidate_cache
Bug fixes
- Fixed: Slack connection issues
- Fixed: login redirect on shared canvas pages
- Fixed: ghost node on canvas
- Fixed: reading chunks with no geometry
- Fixed: widget props not syncing on shared pages
v2.5.0 (2026-04-16)
[Experimental] Talk to your data in Slack!
Connect any Canvas to a Slack bot and let anyone on your team ask questions directly in Slack — no Workbench needed.
See the Slack integration docs to get started.
Improvements
- [Experimental] Widgets: new
whotkey to open the widget builder - Canvas team access tokens: tokens in UDF settings are now truncated for clarity
- Team-scoped shared canvases can now have an API endpoint created with a session token; "Open API" button activates when a session token is present
- Canvas and share page performance improvements
- UDF thumbnail now falls back gracefully if canvas-level capture fails
- Home page UI polish
Bug fixes
- Fixed: share token no longer carried over when copying a canvas in Workbench
- Fixed: README metadata preserved when pulling UDFs from GitHub
- Fixed: reading and pushing modified public UDFs
- Fixed: initial canvas tab state in the UDF Collection modal
- Fixed: Slack integration channel name handling
v2.4.2 (2026-04-13)
New home page
A redesigned home page with a landing experience, quick-access menu, recents section, and live integration status.
Collection shared tokens
Collections now support shared tokens, making it easier to share data access without exposing credentials.
Improvements
- Canvas: sharing is now available for paid plans only; canvases can now be deleted directly from GitHub
- H3 analytics:
run_partitionnow supports non-count metrics - AI edit confirmation: blocking modals replaced with inline gate UI
- AI usage tracking corrected for basic-tier accounts
- [Experimental] Widgets: new
iframecomponent for embedding URLs in awidget-builder - Export chat conversations from the chat history sidebar
- Google Drive integration bug fixes
- Workbench now shows an access-denied page when an environment has been disabled
Bug fixes
-
Fixed: Canvas: runtime loading bug on canvas open
-
Fixed: Canvas: serialization error when DataFrame index and column names conflict
-
Fixed: AI running badge overlapping the top bar
-
Fixed: AI edit confirmation flow edge cases
-
Fixed: [Experimental] Widgets: CodeMirror text selection inside
widget-builder -
Fixed: [Experimental] Widgets: shared AI widgets now show a login CTA for unauthenticated users
-
Fixed: home page recents card count not updating after reload
-
Fixed: home page integration statuses now sync correctly
-
Fixed: bar chart no longer re-animates on unrelated state changes
-
Fixed: Firefox doc popup layering in the code editor
v2.4.1 (2026-04-09)
Google Drive integration
Files stored in Google Drive can now be accessed directly from Workbench.
AI edit confirmation
When AI suggests code edits in the editor, you can now review and confirm them before they are applied.
Improvements
- [Experimental] Widgets: URL query params now sync with param broadcasts in shared Widget mode
- [Experimental] Widgets: improved loading style when a UDF is running inside a Widget
- Toolbar dropdowns now open on click instead of hover
- Chart UX: improved zoom stability and donut legend cleanup
- Duplicate now works for errored UDFs; default UDF description removed
- Real-time UDF log streaming improvements
- You can now clone a Canvas from a Shared Canvas
Bug fixes
- Fixed: [Experimental] Widgets: dropdown not rendering in fullscreen mode
- Fixed: download data option no longer shown in the toolbar
- Fixed: node toolbar hover behavior reverted to avoid accidental triggers
v2.4.0 (2026-04-07)
Canvas UDF endpoint — build an MCP Server from any Canvas
Public canvases now expose an endpoint that lists all visible UDFs (after creating a shared canvas token). This makes it straightforward to turn any canvas into an MCP Server.
UDF folders
UDFs on the canvas can be grouped into folders, simply by selecting multiple UDFs and clicking "Create Folder".
Automatic session tokens for Team canvases
Workbench now automatically creates a session token for UDFs in Team-scoped canvases, so shared UDFs are always accessible without manual token setup.
Improvements
- [Experimental] Widgets: Map Widget — deck.gl hybrid rendering, tooltip/color updates, and hex-tile polish
- [Experimental] Widgets: line chart and more chart types; switch layouts from a dropdown via
widget-builder; SQL-backed widgets use a higher automatic row limit - [Experimental] Widgets: editor and AI tweaks;
$paramreferences included in share URLs and param discovery - Shared canvases support session tokens end-to-end; canvas passcode is generally available
- Session tokens in the canvas workflow; streamlined top bar
- Faster canvas cold start when catalog refresh can be skipped safely
- UDFs can return DataFrames with columns of fixed-shape NumPy arrays
- Quota exceeded errors surface clearly in the UI
- Glass-style loading overlay while UDFs run; overlay when copying GitHub-linked canvases
- UDF file endpoints:
.htmlextension is optional
Bug fixes
- Fixed: share tokens and
collection_idwhen running UDFs from Workbench or shared links - Fixed: keyboard delete / shortcuts on the canvas
- Fixed: focus when wiring new connected UDFs; share-canvas sidebar behavior
- Fixed: UDF folder and sticky-note UI (rename, width, tags, alpha)
- Fixed: Home page upload popover layering
- Fixed: parquet file registration when a UDF output schema changes
- Fixed: widgets on shared canvases get correct catalog/collection context
- Fixed: extension matching for UDF URLs
- Fixed: cache invalidation and cache lookup on Basic tier
- Fixed: Jobs modal and blurred overlay behavior
v2.3.1 (2026-03-31)
[Experimental] Shareable Widgets
Widgets can now be shared via URL — anyone with the link can view the widget directly, without needing access to the canvas.
Improvements
- [Experimental] Widgets: inline AI editing — AI can now modify Widget configuration directly in the editor
- [Experimental] Widgets: AI chat now distinguishes between "ask", "plan", and "build" modes for more precise tool use
- [Experimental] Widgets: Map-H3 improvements (zoom overlay, restored saved map bounds on refresh, updated Info/X icons)
- Service accounts: users can now create service accounts from the profile page
- GitHub integration: a GitHub repo can now be linked to multiple execution environments
- GitHub integration: confirmation prompt before changing git details when pushing to GitHub
- Canvas thumbnails are captured more reliably; edges toggle is preserved in share URLs
- UDF execution states in Workbench are clearer and more accurate
- Runtime tab now shows a visual indicator while a UDF is executing
- File explorer: improved reliability when opening the modal during a busy canvas
- AI chat: images are now compressed before being sent, reducing payload size
- Share link button and viewport zoom are restored correctly when opening a shared canvas
- Tab icons updated across Workbench
Bug fixes
- Fixed: UDF execution phase getting stuck
- Fixed: Widget dropdown unable to scroll to select an option
- Fixed: canvas sidebar collapse button not working
- Fixed: sticky note text toolbar actions triggered outside of edit mode
- Fixed: job log display issues
- Fixed: GitHub sync reliability issues
- Fixed: opening Preferences or Jobs from a public tab no longer redirects unexpectedly
- Fixed: canvas loading stability; stale canvas state no longer restored on route change
Upgrades
- DuckDB v1.5.1
v2.3.0 (2026-03-26)
New Home page
Workbench now has a new Home page! This allows you to quickly navigate between Canvases.
Improvements
- [Experimental] Session tokens: control access to shared UDFs and canvases similarly to a presigned S3 URL;
fused-pysupports the same flow - [Experimental] Widgets: H3 hex picker preset. Improved defaults & SQL editor
- You can now clone a canvas from a Shared Canvas to make a copy for yourself
- Resize several nodes at once on the canvas
- Parameters show where they came from and surface conflicts when edits disagree
- Saves and runs are easier to reason about: edges wait until upstream nodes finish saving before they run
- Sharing is smoother: improved share modal, multi-select when sharing, and shared links open at the viewport you had when you clicked Share
- Overall speed improvements and lower memory use across the canvas, catalog, DataTable, UDF explorer, and Workbench client
Bug fixes
- Shared canvases run UDFs reliably again;
fused-pyshared-canvas tokens behave correctly - Shared canvas works in Safari
- Basic tier: Improved realtime caching & secrets UI
fused.ingest()accepts point layers with float32 columns- Collection name is not saved into metadata by default unless needed
- UDFs no longer need an extra click to run in some cases
Upgrades
stlitev1.5.0geoai-pyadded
v2.2.2 (2026-03-19)
Improvements
- UDFs don’t run when you open a canvas until it has been saved at least once
- For slow saves, Workbench shows a warning instead of a blocking modal
- Opening a canvas no longer auto-runs UDFs; the auto-run toggle is respected
- For team-shared canvases, a warning explains that the share link can’t be opened in a new tab
- Canvas renaming and saving improvements; duplicate name on upload is resolved automatically
- [Experimental] Widgets: Map-H3 (emit on move, UTM pixel area, updates); bar chart (auto bottom margin from label length); JSON UI (edge animation, layout fixes); big number (auto shrink)
Bug fixes
- Canvas save state and save button state (including after zip upload) corrected
- Opening the Version page no longer triggers UDF reruns
- Checkpoint diff no longer includes README-only changes
- Node toolbar appearing correctly and capture preview for canvas-rendered graphs fixed
- UDF Table view: overlay no longer hides when changing filters
Upgrades
- DuckDB reverted to v1.4.3 due to a CRS/geometry issue in v1.5.0
v2.2.1 (2026-03-16)
Canvas-wide shared tokens
UDFs no longer use per-UDF access tokens; sharing is at the canvas level. The new format is as follows:
fc_****prefix for canvas tokensmy_udf_namefor any UDFs in the canvas.parquetextension for Parquet files
Example:
# doctest: skip
https://udf.ai/fc_MY_CANVAS_TOKEN/my_udf_name.parquet
Previous fsh_**** tokens remain supported but are deprecated.
This will require you to share your canvas first. Read more about the new canvas tokens in the updated UDF as API guide.
Finer AI control in Canvas
- AI chat: Canvas will now show a prominent "AI is running" indicator allowing you to stop AI at any time.
- OpenAI models updated to GPT-5.4
Improvements
- fused.ingest: GeoParquet 1.1 with optional bbox column
- New toggle: Turn "Auto-run" for canvases OFF. When toggle is off, UDFs will NOT automatically run when the canvas is loaded or edited.
- You can now duplicate UDFs & Sticky notes with
Cmd + DorCtrl + D - Checkpoint modal: better folder name validation
- UDF execution failure now shows details
- Canvas UI refinements: name save, share visibility, snapping edge handle
- You can now resize multiple UDFs and sticky notes at the same time
- [Experimental] Widgets: map-H3 component and map widget interaction fixes
- [Experimental] Widgets: enhanced logging; text editing in studio nodes
- [Experimental] Improved PR creation from checkpoints
Bug fixes
- Fixed: UDFs not auto-running on canvas reload/refresh
- UDF execution modal only when manually triggered
- Team-scoped canvas tokens running correctly
- Hidden UDFs will not be executed when the canvas is loaded or edited
- Blocking modal when unsaved for a while, prompting download or checkpoint
v2.2.0 (2026-03-11)
Manual cache invalidation
Click "Invalidate" to manually reset the cache of any UDF.
[Experimental] Canvas version control
Version control your canvases through GitHub (experimental).
Improvements
- [Experimental] Auto invalidate cache when code and/or parameters from upstream UDFs changes
- [Experimental] Widget UI Improvements: click edges to connect a new UDF in 1 click
- Parameter cascading: Any UDF with parameters will automatically update downstream UDFs when the parameters changes
- Capture button in collapsed left sidebar view
- Restore canvas parameters from checkpoints
- AI: UDF rename and chat naming, keyboard handling
- Improved image pasting to canvas
Upgrades
- DuckDB v1.5.0
Bug fixes
- No confirmation modal when importing the initial canvas
- Run timer when no UDF is running
- Starting batch jobs from Workbench fixed
v2.1.1 (2026-03-03)
Collapsible left sidebar
Want more coding space? Collapse the left panel!
Preview your Canvas in Catalog
Canvas Catalog now will show previews of your Canvas
Various bug fixes
Improved canvas stability, sticky notes formatting, AI responses, etc.
Improvements
- Profile page now shows tokens usage
- Experimental: Slack integration
- Various canvas improvements
- Various AI improvements
- Various bug fixes
v2.1.0 (2026-02-26)
🧠 Canvas-wide AI
AI Chat now sees your whole Canvas & can search across all your UDFs!
⏯️ "Run" is now per UDF
We've removed the Run / Freeze button at the Canvas level, instead we now have a dedicated "Run" button for every UDF.
- UDFs don't run on any change anymore
- Hiding a UDF (clicking the eye icon) will prevent it from running