12.1.1 - 2026-10-12
Improvements
- AIChat
QueueMessagesaccepts messages sent while an answer streams instead of ignoring them: the message shows right away marked as queued, is sent when the answer completes, andStopreturns its text to the box. A service can take such a message mid-response throughIAIChatService.TryQueueMessageAsyncor anIChatMessageQueueits chat client exposes viaGetService; a user-roleChatResponseUpdatewith the message id tells the chat the model read it, which moves the message under the answer so far and starts a new assistant message. The send button stays next to the stop button while streaming. - AIChat
HeaderTemplate,InputHeaderTemplateandInputFooterTemplateslots for a conversation switcher, status line, model picker or action buttons around the conversation and the input. - AIChat
@bind-Inputreads and sets the text in the box,FocusAsyncfocuses it. - AIChat Text and tool calls of an answer keep the order the model produced them;
ChatToolCall.TextPositionandChatMessage.GetParts()expose it for custom templates. - AIChat
ChatMessage.KindwithStatus,ProgressandErrorentries rendered as a centered note, a spinner line and an alert;AddMessage(ChatMessage),RemoveMessageandRefreshmanage them.RenderMessagerenders a message the default way from insideMessageTemplate. - AIChat
ShowAvatars,SendButtonText,SendButtonIcon,StopButtonTextandStopButtonIcon. - AIChat
AttachmentAddingreceives every picked file and can cancel or replace it, for example with a scaled down image;MaxTotalAttachmentSizelimits the attachments of a message as a whole. - AIChat
UsageTemplateandMessageFooterTemplaterender usage and extra content per message;ChatMessage.AdditionalPropertiescollects theAdditionalPropertiesof the streamed updates, for example credits or changed files. - AIChat The conversation store saves messages a service takes mid-response in the order the chat showed them, under the same ids.
Fixes
- AIChat The streaming placeholder rendered as a finished message until the first token arrived.
- AIChat In right-to-left layouts the whole send button was mirrored instead of only its icon.