Files
buzz/mobile/test
Wes 5ac5984f97 perf(mobile): keep chat rows mounted when a message arrives
scrollable_positioned_list keys every item by index. The chat list is
reversed, so a new message moves every row to a new key and Flutter
remounts every built row: hooks, markdown parses and image listeners.

Add an optional findChildIndexCallback to the vendored package. With it
set, an item keeps its own key and the callback finds its new index, the
way ListView does. Item positions now read the index from the item
wrapper instead of its key. The chat timeline maps each row key to its
index.

Co-authored-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
2026-10-19 10:15:26 -07:00
..