5d4aefc99c1ef9160b1e950262c5efb3972b2702
The 256-tag LRU was global, so two Browse circuits on different areas evicted each other's whole sets every poll. Tags now record the viewer that read them last; each active viewer (read within 30s) owns MaxSubscribedTags/active (floor 32). Eviction takes other viewers' excess over their share first (inactive viewers' share is zero), then the reader's own untouched tags, and never strips a neighbour within its share (soft cap). Single-viewer behaviour is unchanged. IDashboardLiveDataService gains a viewerId ReadAsync overload.
Description
No description provided
Languages
C#
48.4%
Java
40.1%
Python
3.2%
Rust
3%
Go
2.6%
Other
2.7%