Quoted history now leaves out CSAT emails and anything the contact was not part of. Earlier messages load only when the outgoing template or the reply uses PreviousMessages.
Emails that arrive with no Subject header are stored with an empty subject.
When a reply is sent, some strict SMTP servers reject the message with
"550 Missing subject field". Fall back to the formatted reference number
(e.g. "#CONV-42") so the reply always carries a non-empty subject.
Fixes#701
Preserve existing template fields while sharing conversation data across customer emails and agent alerts. Use the system layout for automation alerts and add regression coverage for notification delivery and conversation switching.
Use shared headings and consistent field widths across the dashboard. Load older messages on scroll and prevent unread badges from flashing after sending messages.
Gemini 3 returns extra_content.google.thought_signature on each tool call
and rejects the next turn with a 400 unless the replayed assistant message
carries it. ToolCall dropped the field when parsing the response, so every
tool-using agent run against Gemini failed on its second turn. Keep it as
raw JSON so it is sent back unchanged.
Fixes#674
Alias replies now put the +conv tag on the main address, because many alias forwarders bounce + addresses. From now follows the last address we sent from, and a failed re-verify no longer blocks an alias that was verified before.
Opening a conversation used to mark it read even when the agent never scrolled to the new messages or the tab was in the background. Reply notifications in the bell also stayed unread after the agent read the reply.
Now the browser tells the server which message the agent saw. It only does this when the end of the thread is on screen and the tab has focus. The server moves the agent's last seen time forward to that message and never back.
A reply notification counts as read when the agent's last seen time is at or after the reply. "Mark as unread" marks the old reply notifications read first, so the bell stays the same.
Reply emails and pushes wait a little before sending. They are skipped if the agent already read the message or can no longer see the conversation.
A verification that finished while an inbox was being saved could get lost. One stuck pending for 10 minutes is now marked failed. Replies to alias emails now come back into the same conversation.