Split out of #4643 (fixed by #4647, which removed the ~10 s token-stats stall). What remains on 1M+ row chats is pre-existing and not an event-loop freeze of that size.
Observed
Evidence: #4643 root-cause comment and the #4647 UAT chat.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high • Cost: $9.90
Split out of #4643 (fixed by #4647, which removed the ~10 s token-stats stall). What remains on 1M+ row chats is pre-existing and not an event-loop freeze of that size.
Observed
activityandterminal activitysubscriptions logstalled (no events for ~10-12 s)during the load phase of a 1.24M-row chat, on base and on 🤖 perf: yield while counting tokens so 1M-row chats don't stall the server #4647 (remote UAT: ~11 s, ~32 s after the click, while the server answered pings within 370 ms). Likely cause: the replayed-row flood on the shared WebSocket delays their heartbeats (unproven).computePriorHistoryFingerprintat the end of a replay (1.4–2.7 s at 1.24M rows) andreadTail'sbuffer.toString().split("\n")over the whole tail (~0.5 s).Evidence: #4643 root-cause comment and the #4647 UAT chat.
Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:high• Cost:$9.90