Repository navigation
v0.43.0
SharedMeta 0.43.0
Focus: keeping clients and server in sync — across idle deactivation, reconnects, session loss and server-side failures.
Highlights
- Subscriber store — subscriptions live in their own record (
EntitySubscriptionStorage.ProviderName, e.g. Redis; falls back to"Default") and survive idle deactivation. A lost record is repaired on the player's next call. - Server-side failures no longer stall or diverge clients — when a meta method throws on the server, every subscriber receives the resulting state, and the failed call is not persisted. Permission refusals no longer stall other subscribers.
- Declared
ServerPatch/ServerReplacehonoured by the server — no runtime mode override needed. Under ServerPatch, every subscriber gets the patch. - Config-aware argument transformers —
IConfigArgumentTransformer/IStateConfigArgumentTransformerbox and unbox against a[ServiceConfig]config. The build fails if a service using one doesn't declare that config. - Fixes — triggers on clients, reconnect and session-loss recovery, unsubscribe now reaching the server, and the
_PatchTrackedcopy failing to compile with[ServerMetaService]/[StatelessMetaService]dependencies orPatchState.
Breaking — update client and server together
- Wire format changed: state types travel as negotiated ids.
- Removed:
MetaContexttransformer helpers (GetTransformer,BoxValue,TryAutoBox, …),GetExternal,Observe,TransformerRegistry, and the server-sideGameServiceDiscoverydelegates. Use instead:MetaTransformer<T>.Instancefor manual boxing;- declared dependencies for
[ServerMetaService]bridges; GetServerApi<T>(entityId)for calls from server code.
- Subscriptions from earlier versions are not migrated: they moved out of
EntityGrainStateinto the new store. - Clients re-register once: signature hashes changed (nullable annotations no longer count).
- Custom transports:
IConnection.SubscribeAsync/UnsubscribeAsynctake a state-type id.
Full list: CHANGELOG.