mirror of
https://github.com/getpaseo/paseo.git
synced 2026-11-02 22:52:58 +00:00
The chat virtualizer caches measured row sizes by key, and the key was the row id. When two history rows had the same id, both rows wrote the same cache entry. Each measurement pass set the size to the other row's height, so the layout effect re-rendered without end and React aborted with "Maximum update depth exceeded" (minified error #185). Give each virtualized row a unique key. A repeated id gets a numeric suffix, and the first occurrence keeps its plain id so the reading anchor still matches it.