Tool parts overwrite each other in the UI

A repeated tool call id collapses two calls into one card.

Symptom

Two separate tool calls render as one, or a finished tool card is replaced by a running one.

Why it happens

The UI-message reducer keys tool parts by call id. When a provider reuses an id across calls, or a transport replays one, the second call lands on the first one's part.

The SDK starts a new UI tool part when it sees a reused id rather than overwriting the finished one, so if you are still seeing collapsing the ids are being rewritten somewhere in your own transport.

Fix

Check that your transport passes tool call ids through unchanged. If you mint ids yourself, use generateId or createIdGenerator so they match the format the loop produces and stay unique.

See also