You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Route history_update SSE events for anonymous sessions
HistoryAuditMonitor only dispatched history_update events via
push_to_user, so anonymous-owned histories (user_id IS NULL) never
produced events. With enable_sse_history_updates on, the client
disables polling and waits for SSE events — leaving anonymous history
panels frozen, which broke seven UI tests across the Playwright suites.
Extend the pipeline with a parallel galaxy_session.id-keyed route:
- SSEConnectionManager tracks a _session_connections map alongside
_connections and exposes push_to_session; connect/disconnect/stream
accept an optional galaxy_session_id.
- EventsService.open_stream forwards trans.galaxy_session.id so
anonymous sessions register under their session key.
- SSEEventDispatcher.history_update and HistoryUpdatePayload gain an
optional session_updates dict; the queue_worker handler fans out
session-keyed events via push_to_session.
- HistoryAuditMonitor caches (user_id, session_ids) per history and
performs one extra indexed lookup against GalaxySessionToHistoryAssociation
only for anon histories.
galaxy_session.id never leaves the server — it's used only as an
in-memory/AMQP dispatch key; the browser-visible event payload still
contains just encoded history_ids.
0 commit comments