v2.7.1

clockworklabs/SpacetimeDBv2.7.1Jul 30, 2026by rekhoff

AI Summary

A patch release focusing on reliability, fixing sequence migrations, restoring JWT/JWKS dependencies, and improving the TypeScript SDK's network handling capabilities.

Key Highlights

  • Safer sequence migrations
  • Restore JWT/JWKS dependencies
  • TypeScript SDK reconnects on refocus and network return
  • Enable HTTP/2 support

New Features

  • HTTP/2 support
  • CORS preflight response caching
  • Convex migration guide

Full Release Notes

## Bug Fixes

### Safer sequence migrations

Adding a sequence to an existing integer column now correctly checks the full sequence range, including the maximum representable value. Migrations with existing conflicting values fail during the precheck rather than proceeding to a later unique-constraint violation.

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

### Preserve column defaults in V10 schemas

V10 schema serialization now retains declared column default values. This fixes the V10 database schema endpoint and `extract-schema`, so schema diff, compatibility, code generation, and migration tooling can observe defaults.

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

### Fix scheduled-reducer interval drift

Scheduled reducers and procedures now use the reducer's own `timestamp` parameter to compute the next interval, instead of `Timestamp::now()`. This prevents long-running scheduled reducers from drifting over repeated runs.

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

### Restore JWT/JWKS dependencies

The removal of the `spacetimedb-jsonwebtoken` and `spacetimedb-jwks` dependencies has been reverted due to `Keats/jsonwebtoken#510`. This restores the previous authentication behavior.

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

### TypeScript SDK reconnects on refocus and network return

The TypeScript SDK now listens for `visibilitychange`, `focus`, `online`, and `pageshow` events in the browser. When a tab returns to the foreground or the network comes back, stalled reconnect backoffs are reset and dead sockets are torn down and rebuilt automatically.

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

### Fix task leak on module init

A leaked metric-tracking task is now dropped when module initialization fails, particularly during replay errors. A new `module_host_init_attempts` counter is also recorded on every init attempt for per-database alerting.

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

## Reliability & Observability

### Reducer errors log database identity and reducer name

When a reducer returns an error, the log line now includes the database identity and the reducer name, making it easier to correlate errors with upstream connection or proxy issues.

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

## Release & Packaging

### Fix npm release artifact handling

The release workflow now handles the npm package more robustly, fixing two potential issues during release artifact upload.

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

## Networking & Infrastructure

### Enable HTTP/2

SpacetimeDB now enables HTTP/2 on its ingress paths, improving connection multiplexing and reducing latency for clients and internal services.

### Cache CORS preflight responses

CORS preflight responses are now cached, reducing redundant preflight round-trips for browser-based clients.

## Documentation

### Convex migration guide

The documentation now includes a guide for migrating Convex applications to SpacetimeDB, covering schema design, reducers, views, procedures, HTTP handlers, scheduling, authentication, and client subscriptions.

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

## What's Changed

- Fix sequence migration prechecks in [#5561](<https://github.com/clockworklabs/SpacetimeDB/pull/5561>)
- Preserve column defaults in V10 schemas in [#5508](<https://github.com/clockworklabs/SpacetimeDB/pull/5508>)
- Fix scheduled-reducer interval drift in [#5574](<https://github.com/clockworklabs/SpacetimeDB/pull/5574>)
- Restore `spacetimedb-jsonwebtoken` and `spacetimedb-jwks` dependencies in [#5578](<https://github.com/clockworklabs/SpacetimeDB/pull/5578>)
- TypeScript SDK reconnects on refocus and network return in [#5525](<https://github.com/clockworklabs/SpacetimeDB/pull/5525>)
- Fix task leak on module init in [#5601](<https://github.com/clockworklabs/SpacetimeDB/pull/5601>)
- Fix npm release artifact handling in [#5593](<https://github.com/clockworklabs/SpacetimeDB/pull/5593>)
- Enable HTTP/2
- Cache CORS preflight responses 
- Log database identity and reducer name on reducer errors in [#5473](<https://github.com/clockworklabs/SpacetimeDB/pull/5473>)
- Add the Convex migration guide in [#5536](<https://github.com/clockworklabs/SpacetimeDB/pull/5536>)

**Full Changelog**: [v2.7.0-hotfix3...v2.7.1](<https://github.com/clockworklabs/SpacetimeDB/compare/v2.7.0-hotfix3...v2.7.1>)