Thanks, and you nailed the use case: the enabled switch exists precisely for staggered rollouts. Yes, one generator per subscriber is the intended shape. Each api.sse() call gets its own iterator, so finally cleanup stays scoped to that subscriber and unmounting one component never kills another's stream. If two subscribers need to see the same ticks, keep the shared state outside the generator. Create one module-level ticker (a setInterval plus a small listener set), and have each generator subscribe to it on start and unsubscribe in finally. Then the timer is shared, and the per-subscriber cleanup still works. You can also stop the interval when the listener set is empty, which mirrors how a real server behaves. In practice, the simpler fix is often one level up: if both components render the same feed, put the subscription in a shared hook or query so there's only one consumer in the first place.
