@mastra/core (confirmed present in both 1.4.0 and 1.12.0)data-tool-call-suspended parts containing the runId, toolCallId, suspendPayload, and resumeSchema needed to render HITL (human-in-the-loop) UI and resume the workflow. These parts are correctly persisted to the database. However, after a page refresh, they are stripped during the recall path and never reach the frontend.AIV4Adapter.toUIMessage() calls filterDataParts() which removes ALL parts whose type starts with "data-":AIV5Adapter.fromUIMessage() preserves data-* parts when writing to DBAIV4Adapter.toUIMessage() strips them via filterDataParts()AIV5Adapter.toUIMessage() does NOT strip these parts (it has a fallback else that passes unknown types through). However, the V4 adapter is still used in several internal code paths including get.all.aiV4.ui(), and depending on which adapter processes the message during recall, the parts may or may not survive.suspend() (e.g., a content processing workflow with a date confirmation step)data-tool-call-suspended part with runId, suspendPayload, etc.data-tool-call-suspended part is gone. Only the tool-workflow-* part with state: "input-available" remains.