chat: fade out old messages and stop serving yesterday's backlog master
Chat is a conversation, not an archive, so old messages stop piling up in front of the viewer: - In the live view a message holds full strength for an hour, fades over the next hour, and leaves the live view once the fade finishes. Nothing is dropped from the store: a viewer who scrolls back into history sees everything still held, at full strength. Reading history is not the live view. - A node serves at most --chat-message-retention (default 24h) of history to a newly connected viewer, so arriving the next day lands on an empty chat. That is a read filter on the websocket backlog, not a delete: the rows stay indexed for pins and replies, and 0 serves the whole backlog. The fade arithmetic lives in @streamplace/core so the native chat and the web chat agree on what "old" means.