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
feat(agera): derive mounted state from the graph instead of counting subscribers
- replace the subscriber counters with a presence model: mounted state is never stored, it is a question asked of the graph - does this node have a live path up to an effect - memoized per drain and invalidated by any edge edit
- deliver mount and unmount as one level change from a coalescing queue at quiescent boundaries: churn inside a turn is silent, sources mount before their dependents and unmount after them
- move the layer behind two lazy sockets wired on first `mountable()` use, so a signal-only bundle drops it entirely: `signal` -17%, `nanoviews` -4%
- `onMounted` and the new `isMounted` live in `signal.ts` over a plain listener list; `node.subsCount` and `node.mounted` are gone
- an `onMounted` listener registered while the signal is already mounted now gets `true` at the next boundary instead of waiting for the next cycle
- fix late contagion and late `mountable()` never mounting a signal, a cold computed unmounting a signal under a live subscriber, stuck `mounted(true)` on discarded subscriptions, listeners skipped or served twice when one un-subscribes or registers during a fire, and delivery lost for other signals when a listener throws
0 commit comments