Summary

A client side, per channel unread count for channels where serverside read events are disabled (typically livestream channels). When enabled, a user who scrolls away or reopens the app sees how many messages they've missed, even though the backend tracks no read state for that channel. Entirely client local, meaning no backend round trips for read state.

Motivation

Some channel types (e.g. livestreams) disable read events due to performance reasons (to reduce backend load), so the read-events own capability is off. As a result the server never reports per user read state or unread counts for those channels and the SDK's normal unread machinery short circuits. However, some integrations might still want a "you missed N messages" affordance. This feature reconstructs that count on the device as best it can.

Goals

Out of scope

The general idea is that we keep a session, local only count and accept the fact that it cannot be perfectly synced with the (non-existing) backend read objects.

Configuration contract

A single client level boolean flag, defaulting to false.