Logs, from both sides of the wire.
Two tabs over one stream. Client entries are re-emitted through Logger
(see Gamend.ClientLogs), so they land in the same ring buffer as the
server's own lines and can be read against them — which is the point, and
also why the server tab defaults to hiding them. A tail swamped by every
connected player's chatter is not a tail anyone can read.
What is durable here and what is not
The client tab's session list is a database table and survives restarts.
The lines themselves are not stored: they leave through Logger to whatever
the host runs (stdout, the rotating file, an aggregator), and what this page
can show of them is the in-memory ring buffer — recent, and lost on redeploy.
So a session's timeline here is "what is still in the buffer", and the page says so rather than rendering an empty list that reads like "nothing happened". For anything older, the session detail hands over the exact search string to paste into the host's log store, where both halves are already sitting next to each other under the same session id.