v2.10.0

clockworklabs/SpacetimeDBv2.10.0Sep 4, 2026by rekhoff

AI Summary

SpacetimeDB v2.10.0 introduces performance optimizations for C# NativeAOT builds and adds Model Context Protocol (MCP) support for Maincloud. It also resolves critical bugs in the TypeScript SDK and C++ macro generation to improve stability and reliability.

Key Highlights

  • C# NativeAOT monomorphized dispatch for improved performance
  • MCP support on Maincloud for AI agent integration
  • Fixed TypeScript SDK websocket error routing
  • Fixed C++ auto-increment macro symbol collisions

New Features

  • C# NativeAOT monomorphized dispatch
  • MCP support on Maincloud

Full Release Notes

## Features

### C# NativeAOT monomorphized dispatch

Generated C# module exports now dispatch directly to statically-known generic entrypoints for reducers, procedures, HTTP handlers, views, and anonymous views when building with NativeAOT-LLVM. This eliminates virtual dispatch overhead at the module boundary and improves NativeAOT module performance.

([#5610](<https://github.com/clockworklabs/SpacetimeDB/pull/5610>))

### MCP support on Maincloud

The SpacetimeDB MCP endpoint (`/v1/mcp`) is now available on Maincloud. You can connect AI agents and MCP-compatible tools directly to your Maincloud databases. This release also adds cluster-aware routing so that MCP requests sent to any node are automatically proxied to the leader replica, along with egress tracking for MCP tool calls.

([#5849](<https://github.com/clockworklabs/SpacetimeDB/pull/5849>), [#5793](<https://github.com/clockworklabs/SpacetimeDB/pull/5793>))

## Bug Fixes

### TypeScript SDK: route mid-session websocket errors to onDisconnect

The TypeScript SDK's `ws.onerror` handler previously treated every websocket error as a connection failure, even on established connections. This fired `onConnectError` instead of `onDisconnect`, silently disabled the outbound send path, and left the client in a stalled state with no reconnect. Mid-session errors now close the socket and fire `onDisconnect` with the error, allowing existing reconnect handling to take over.

([#5707](<https://github.com/clockworklabs/SpacetimeDB/pull/5707>))

### Fix C++ auto-increment macro symbol collisions

C++ auto-increment field macros previously used `__LINE__` to generate symbols, causing collisions when two table definitions in separate files had an auto-increment field on the same line number. Macros now use table and field names to guarantee unique symbols.

([#5836](<https://github.com/clockworklabs/SpacetimeDB/pull/5836>))

### Fix `spacetime dev` C# complaint on macOS

The `spacetime dev` command no longer incorrectly warns about C# on macOS when C# is not in use.

([#5867](<https://github.com/clockworklabs/SpacetimeDB/pull/5867>))

## What's Changed

- Allow monomorphization for C# NativeAOT reducers, procedures, HTTP handlers, and views in [#5610](<https://github.com/clockworklabs/SpacetimeDB/pull/5610>)
- Add MCP request routing to leader replica in [#5849](<https://github.com/clockworklabs/SpacetimeDB/pull/5849>)
- Add egress tracking for MCP requests in [#5793](<https://github.com/clockworklabs/SpacetimeDB/pull/5793>)
- Route TypeScript SDK mid-session websocket errors to onDisconnect in [#5707](<https://github.com/clockworklabs/SpacetimeDB/pull/5707>)
- Fix C++ auto-increment macro symbol collisions in [#5836](<https://github.com/clockworklabs/SpacetimeDB/pull/5836>)
- Fix `spacetime dev` C# warning on macOS in [#5867](<https://github.com/clockworklabs/SpacetimeDB/pull/5867>)

**Full Changelog**: [v2.9.0...v2.10.0](<https://github.com/clockworklabs/SpacetimeDB/compare/v2.9.0...release/candidate/v2.10.0>)