v0.9.0
Widget file upload with plan-gated attachment picker.
- Widget can attach images, audio, and documents via a three-step presigned upload flow (init → PUT to storage → finalize). Files land as inbound channel_messages under the widget's
conversation_idso the AI reads their transcription / description / extracted text on the next turn. - SDK:
uploadFile()anddeleteUpload()on the CloudTrain client;Agent.capabilitieswithallowed_media_typesderived from the agent's plan. - Widgets (Stencil + React Native): paperclip button, attachment chips with progress state, rendering gated on the plan's allowed media types. Ready attachments snapshot into the user's chat bubble so there's a visual receipt of what was sent.
getAgent()now always runs on mount to fetch capabilities.