Features
TypeScript submodule support for SpacetimeDB modules
TypeScript modules can now import and mount other modules under a namespace. The runtime supports namespaced reducer/procedure dispatch and HTTP handler delegation; the client codegen exports namespace-aware table, reducer, and procedure handles and a query builder for submodule tables and views. The CLI now supports namespaced spacetime call and spacetime sql. Auto-migration is supported for submodule tables, views, and indexes. The C++ and C# bindings have been updated with autogenerated RawSubmoduleV10 types.
Compatibility note:
ModuleDefnow includes asubmodulefield. Modules that do not use submodules can still be published to older servers, but modules that use submodules require a v2.8.0+ server.
(#5486)
Bug Fixes
Fix TypeScript composite btree range scans
TypeScript module indexes now correctly handle filter() and delete() methods when the final argument is a Range on a composite key. Previously, range bounds were sliced from the start of the key instead of after the prefix, producing incorrect results for composite range scans.
(#5479)
Reliability & Observability
Track scheduled function delay
The server now emits a warning and records a Prometheus metric when a scheduled function starts more than 50 ms after its expected start time.
(#5592)
Reduce noisy server logs
Routine client connection lifecycle, SQL query, JWT payload lookup, PostgreSQL socket processing, migration planning, and reducer-returned error logs are now logged at quieter levels or written only to the module log. Actionable logs remain visible.
(#5320)
What’s Changed
- Add TypeScript submodule support for SpacetimeDB modules in #5486
- Fix TS composite btree range scans in #5479
- Track scheduled function delay in #5592
- Reduce noisy server logs in #5320
Full Changelog: v2.7.1-hotfix1...v2.8.0