(msg: ChatMessage)
| 139 | |
| 140 | // Compose all pending updaters into a single transform |
| 141 | const composedUpdater = (msg: ChatMessage): ChatMessage => { |
| 142 | return updaters.reduce((m, fn) => fn(m), msg) |
| 143 | } |
| 144 | |
| 145 | // Apply composed update to the target message |
| 146 | setMessages((prev) => |