A ring holds thousands, and two things routinely hand this the whole of
it at once: the first poll after the tab opens, and every restart of the
app being read, since an in-memory ring starts again at zero. Unbounded
that is one request, one append and one redraw of the whole log per
second -- measured on the emulator as an ANR in this app while the app it
was reading crash-looped. The cursor advances by what was sent, so a
backlog drains over a few polls and nothing is lost.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>