v2.6.1 is a patch release with two bug fixes and a CLI improvement.

⚠️ Small breaking change for some TypeScript users. Generated TypeScript types for Option<T> fields have changed from required keys with an undefined value to truly optional keys:

// Before (v2.6.0 and earlier)
{ foo: string | undefined; }

// After (v2.6.1)
{ foo?: string | undefined; } 

If your TypeScript code explicitly passes undefined for optional reducer or procedure arguments, or relies on { foo: T | undefined } being a required key, you may need to update your call sites. This will require no action from almost all TypeScript users and it addresses a bug in the implementation of 2.0, so we've chosen to make this small breaking change.

(#4940)

Generated optional fields now use optional key syntax. See Breaking Changes above.

(#4940)

A regression introduced in 2.4 caused ctx.sender and ctx.connection_id to always be empty inside procedure contexts. This has been corrected — callers' identity and connection ID are now properly propagated again.

(#5323)

Running spacetime init --template without an argument now prints the list of available templates and a link to the website, rather than failing silently.

(#5264)

  • Fix TypeScript optional row keys by @clockwork-labs-bot in #4940
  • spacetime init --template without arg prints template list and link to website by @clockwork-tien in #5264
  • [Procedures] Fix Identity and ConnectionId Regression by @kistz in #5323

Full Changelog: v2.6.0...v2.6.1