Skip to content

Portal extension zone hot reload fix - #4909

Merged
gabrielbeamable merged 6 commits into
mainfrom
issue/portal-extension-hot-reload
Oct 8, 2026
Merged

gabrielbeamable merged 6 commits into
mainfrom
issue/portal-extension-hot-reload

Conversation

@gabrielbeamable

Copy link
Copy Markdown
Contributor

Summary

Lets zone-scoped microservices send server events, so portal extensions hot-reload in zones too. Until now, zone portal extensions skipped the hot-reload push because the only notifications API was realm-scoped. This splits the server-event methods into a new interface that both realm and zone containers can register.

Changes

  • New IMicroserviceServerNotificationsApi interface with the NotifyServer overloads, not marked [RealmScoped]
  • IMicroserviceNotificationsApi (still [RealmScoped]) now extends it; NotifyPlayer/NotifyGame stay realm-only
  • MicroserviceServerNotificationApi base class added; MicroserviceNotificationApi derives from it
  • Realm container: IMicroserviceServerNotificationsApi forwards to the existing realm notifications API (publishes on cid.pid)
  • Zone container: registers its own MicroserviceServerNotificationApi on the zone socket (publishes on cid.zid); it builds its own requester so it also resolves at the zone root, where there is no RequestContext
  • ZoneServicesImpl removes the zone notifier before applying the realm SDK in AssumeRealm scopes
  • PortalExtensionObserver / BeamoLocalSystem_PortalExtension use the new interface for both scopes; zone TODOs removed
  • Tests: a zone container accepts the server notifications API but still rejects the full realm MicroserviceNotificationApi
public interface IMicroserviceServerNotificationsApi { /* NotifyServer overloads */ }

[RealmScoped]
public interface IMicroserviceNotificationsApi : IMicroserviceServerNotificationsApi { /* NotifyPlayer, NotifyGame, ... */ }

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Lightbeam link

@gabrielbeamable
gabrielbeamable merged commit c459c39 into main Oct 8, 2026
32 checks passed
@gabrielbeamable
gabrielbeamable deleted the issue/portal-extension-hot-reload branch October 8, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant