During streaming, content updates now flow through a StateFlow (liveStream) instead of mutating the SnapshotStateList on every chunk. Only the single MessageRow with id == streamingMessageId subscribes to the flow via collectAsState(). All other items in the LazyColumn stay completely static during streaming. Before: every chunk mutated messages[idx] → entire LazyColumn evaluated After: only the live bubble recomposes, list mutation happens once at stream end Auto-scroll split into two LaunchedEffects: one for list size changes, one for liveStream emissions. |
||
|---|---|---|
| .. | ||
| androidTest/java/dev/kaizen/app | ||
| main | ||
| test/java/dev/kaizen/app | ||