v2.9.0
domcyrus/rustnetv2.9.0Sep 1, 2026by rekhoff
Upgrading?
AI Summary
This release introduces configuration options to disable outbound HTTP requests from modules and improves .NET version compatibility based on the host OS. It also includes critical bug fixes for transaction durability, TypeScript SDK identity preservation, and WebSocket handling.
Key Highlights
- Disable module-originated HTTP requests via `[module-http] enabled = false`
- Improved .NET version handling: .NET 10 on Windows/Linux, .NET 8 on macOS
- Fixed transaction persistence across commitlog rotation and compression
- TypeScript SDK now preserves identity tokens during automatic reconnect
- Improved WebSocket liveness checks and idle timeout handling
New Features
- Configuration to disable module HTTP requests
- Improved .NET version and host OS handling
Full Release Notes
## Features ### Disable outbound HTTP requests from modules Standalone operators can now disable module-originated HTTP requests with the `[module-http] enabled = false` configuration setting. This provides an explicit deployment-level control for environments where modules should not be allowed to access external HTTP services. ([#5774](<https://github.com/clockworklabs/SpacetimeDB/pull/5774>)) ### Improved .NET version and host OS handling `spacetime init` and `spacetime dev` now choose a compatible .NET target based on the host OS: .NET 10 on Windows and Linux, and .NET 8 on macOS. C# build, generation, development, and publish commands now report incompatible host and .NET combinations clearly. This also fixes duplicate package references in .NET 8 NativeAOT module projects. ([#5571](<https://github.com/clockworklabs/SpacetimeDB/pull/5571>)) ## Bug Fixes ### Preserve acknowledged transactions across commitlog maintenance Commitlog segment rotation and compression now durably sync newly installed segment files and their containing directory. Previously, a power loss in a narrow window after a segment was renamed could lose transactions that had already been acknowledged as durable; compression could similarly replace a durable segment without fully persisting the replacement. The updated persistence path preserves the confirmed-read durability guarantee across crashes. ([#5785](<https://github.com/clockworklabs/SpacetimeDB/pull/5785>)) ### TypeScript SDK preserves identity during automatic reconnect The TypeScript SDK now reuses the identity token issued during a first-time anonymous connection when automatically reconnecting. Previously, if the initial connection was created without a stored token, a later reconnect could request a new anonymous identity and silently lose access to data associated with the original identity. Explicit connection rebuilds can still change identity as intended. ([#5761](<https://github.com/clockworklabs/SpacetimeDB/pull/5761>)) ### Improve WebSocket liveness and idle timeout handling Any client data now counts as WebSocket activity and extends the idle deadline, rather than requiring a pong specifically. Idle connections are closed with a proper close handshake and an `idle timeout` reason, with a grace period before forced teardown. This improves liveness detection and gives clients a clear reason for disconnection. ([#5517](<https://github.com/clockworklabs/SpacetimeDB/pull/5517>)) ### Fix C++ index queries with three or more columns C++ multi-column index scans now correctly support exact prefixes followed by an optional terminal range across indexes with three or more columns. Invalid queries with a non-terminal range are rejected at compile time, and index iterator buffering now handles large result payloads correctly. ([#5565](<https://github.com/clockworklabs/SpacetimeDB/pull/5565>)) ### Fix Unity static state reset and WebGL builds The C# SDK now resets generated generic table-handle static state through a non-generic Unity initialization path, fixing Play Mode behavior when domain reload is disabled. The missing `IEnumerator` import used by Unity WebGL message parsing has also been restored. ([#5738](<https://github.com/clockworklabs/SpacetimeDB/pull/5738>), [#5792](<https://github.com/clockworklabs/SpacetimeDB/pull/5792>)) ### Clean up SDK state after errors and disconnections The C# SDK now clears outstanding request tracking and pending operations when connections fail, removes failed subscriptions, and rejects one-off queries immediately when disconnected. This prevents stale state and memory from accumulating across error and reconnect paths. ([#5794](<https://github.com/clockworklabs/SpacetimeDB/pull/5794>)) ## What's Changed - Add configuration for disabling module outbound HTTP requests in [#5774](<https://github.com/clockworklabs/SpacetimeDB/pull/5774>) - Improve WebSocket liveness checks and idle timeout handling in [#5517](<https://github.com/clockworklabs/SpacetimeDB/pull/5517>) - Preserve acknowledged transactions across commitlog rotation and compression in [#5785](<https://github.com/clockworklabs/SpacetimeDB/pull/5785>) - Improve .NET version and host OS handling in [#5571](<https://github.com/clockworklabs/SpacetimeDB/pull/5571>) - Preserve TypeScript client identity tokens during automatic reconnect in [#5761](<https://github.com/clockworklabs/SpacetimeDB/pull/5761>) - Fix Unity static state resetting for generic types in [#5738](<https://github.com/clockworklabs/SpacetimeDB/pull/5738>) - Fix Unity WebGL `IEnumerator` import in [#5792](<https://github.com/clockworklabs/SpacetimeDB/pull/5792>) - Clean up C# SDK state after errors and disconnections in [#5794](<https://github.com/clockworklabs/SpacetimeDB/pull/5794>) - Fix C++ multi-column queries with three or more columns in [#5565](<https://github.com/clockworklabs/SpacetimeDB/pull/5565>) **Full Changelog**: [v2.8.3...v2.9.0](<https://github.com/clockworklabs/SpacetimeDB/compare/v2.8.3...release/candidate/v2.9.0>)
Related Repositories
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one