Mitigate AI Platform

Changelog

See the latest updates, features, improvements, and bug fixes in the Mitigate AI Platform

September 2, 2026

✨ New Features

  • Per-Organization Session Timeout: How long a signed-in session lasts before it expires used to be a single value for the whole instance. Each organization can now set its own in Settings → General, anywhere from 15 minutes to 7 days — leave the field empty and the instance default applies. A user who belongs to several organizations gets the shortest of their timeouts, so the strictest organization's policy always wins. The expiry dialog also gained the sign-in options the instance actually offers: the SSO buttons now appear there, and the password form is hidden where password sign-in is turned off, so an SSO-only instance can finally re-authenticate from the dialog instead of being stuck at it.

  • Waiting Card and an End Button for Live Chats: After a conversation is handed over to a human specialist, the visitor now sees a card in the transcript — spinner, explanation and a Cancel button — until the specialist's first reply lands. Once they join, the chat header offers End to hand the conversation back to the assistant, with a confirmation step. Cancelling or ending posts a notice into the Zendesk conversation so the specialist knows why it went quiet, and the waiting state is read from the transcript, so it survives a reload.

🔧 Improvements

  • Faster Repeat Crawls of Large Sites: When a site's sitemap reports that a page has not changed since the last crawl, the crawler now builds the document from the copy it already stored instead of fetching the page again. Repeat crawls of large sites finish sooner and put far less load on the site being crawled. A skipped page still contributes its links and stays active, exactly as a fetched one would. Sitemaps themselves are always fetched, a date of today is not trusted because the page can still change later the same day, and a forced crawl fetches everything as before.

  • Dictation Shows What It Is Hearing: While you dictate, the message box turns into a live waveform with a recording dot and an elapsed timer instead of sitting there empty. When you stop, the bars flatten and a shimmering Transcribing label holds the spot until the text arrives.

  • Esc Closes the Embedded Chat: An open chat window could only be closed with its X button unless the focus already sat inside it — a keystroke on the surrounding page never reached the widget. Pressing Esc anywhere on the page now closes the window, and the conversation is kept, so reopening continues where it left off. While the chat is closed the widget stops listening, leaving Esc to your page's own dialogs.

🐛 Fixes

  • The Chat Keeps Working After a Live Conversation Ends: Once a conversation with a human specialist was resolved, every further message the visitor sent in that chat was silently dropped, and the only way forward was to start a new one. The assistant now resumes in the same chat with the full history — the earlier AI turns, the live conversation and everything after it — and the visitor can escalate again later, which reuses the Zendesk thread the specialist already knows. The composer lock and its "Start new conversation" button are gone. A specialist's reply that arrives after the session has ended is no longer inserted into a chat that is already back with the assistant, and the session-ended notice is now shown in the widget's own language.

  • No False "Failed to Send" on a Slow Start: The chat gave up on a message if the server took more than five seconds to start working on it, showing a send failure even though the answer was on its way. It now waits considerably longer before reporting a problem.

  • Crawling Very Large Sites: A site with heavy cross-linking queued the same URL once for every link pointing at it, so the crawl queue could grow far past the number of pages the site actually has and exhaust memory mid-crawl. Each URL now takes a single slot, keeping the queue bounded by the number of distinct pages, and the browser used for rendering no longer holds on to response bodies from failed or redirected page loads for the rest of the crawl.

August 23, 2026

✨ New Features

  • Knowledge Base: Documents and document sources are no longer two separate sidebar entries — they now sit together under Knowledge Base, with a tab switcher between Document Sources (where content comes from) and Documents (a flat list of everything ingested). Every document belongs to a source, including the files you upload: those live in a new Local files source, which you create and drop files into in one step, and can add more files to later. Any source can be given a name of your own — leave it blank and a crawled source is still titled by its host or connector, as before. Access is configured once on the source and applies to every document in it, so there is no longer a separate per-document workspace assignment to keep in sync.

  • Move Documents Between Local Sources: Because access now comes from the source, moving a file is how you change who can retrieve it. Open a document and click Move, or tick several in a local source's Documents tab and click Move Selected — either way a dialog lists the local sources you may edit, each showing the workspace count and owners it would hand the documents. Moving keeps the chunks and embeddings as they are, so nothing is re-processed. Crawled and cloud sources are left out of it on both sides: a document moved out of one would simply reappear there on the next crawl.

  • Manage User and Organization Tool Policies in the Same Place: Your own auto-approve settings used to be reachable only through the Tools button in the chat header, separate from the workspace-wide tool configuration in the admin. Both now live on the workspace Tools page as tabs — My Policies and Organization Policies — and the workspace Tools link lands on your own. The tabs are real links, so your place survives the reload after every toggle. My Policies also lists the built-in platform tools that were previously invisible here, each carrying the same behaviour hints as connector tools, so the hint filter and badges now cover them too, and Organization Policies gains a Workspaces column showing how many workspaces each tool reaches.

🔧 Improvements

  • Document Source Page Split Into Tabs: A source page is now one header and summary over three tabs — Documents, Crawler Runs and Settings — with a count badge on each. The Documents tab is the full documents table, so a source's list gets the same search, filtering, pagination and bulk actions as the knowledge base rather than a truncated first-50 view. Every attribute of the source lives on Settings. Start Crawl, Start Forced Crawl, Upload Files, Edit and Delete are now available from every tab, so a forced crawl no longer means finding the crawler runs page first. Local files sources have no Crawler Runs tab, since they are never crawled.

  • Artifacts in Sidebar: Browsing sandbox artifacts used to mean opening a chat and toggling a panel in its header, and the view had no address of its own. Artifacts is now an entry in the workspace sidebar, with a tab per volume — workspace artifacts and your own — and the volume and folder you are looking at is a real URL, so it survives a reload and can be bookmarked or sent to a colleague.

  • Tool Lists Default to Enabled Connectors: The connector filter on the tools page now starts at All enabled, so tools belonging to a disabled connector stay out of the way until you pick that connector explicitly. Disabled connectors are greyed out in the dropdown.

  • Fewer Redundant Header Links: The "Back to List", "Back to Source" and "Back to Workflow" links and the header-level Cancel buttons are gone from the admin pages that had them. Breadcrumbs already provided that step up. The Cancel button at the bottom of a form stays where it is.

🐛 Fixes

  • Frontend Tool Calls Stop Spinning: When the browser answered a tool call, the assistant's reply streamed in but the tool call row itself kept its loader running and could not be expanded to show what had been returned — only a reload settled it. The result is now sent to the client that produced it, so the row finishes and opens as soon as the answer arrives. Cancelled calls and calls that time out waiting for a reload settle the same way.

  • Feedback Listed Newest First: The feedback list was ordered by the timestamp of the message a piece of feedback was attached to, oldest first, rather than by when the feedback itself was left. It now reads newest-first as intended.

  • Zstandard Compression: A web source pointed at a site that compresses its responses with Zstandard imported nothing at all — the crawler handed the still-compressed bytes to the HTML parser, found no links, and reported an empty crawl rather than an error. Those responses are now decompressed, and a page that arrives corrupted falls back to its raw bytes as it already did for the other compression formats.

August 21, 2026

✨ New Features

  • Sidebar Chats Grouped by Workflow: Chats started by a workflow no longer sit flat among your own. They collapse under the workflow name, which is itself the toggle — click to expand or fold it. Each group keeps the position of its most recent chat, so the list still reads newest-first, and the group holding the chat you have open starts expanded. Once you toggle a group, your choice sticks.

  • Chat Status at a Glance: A coloured dot after the title marks a chat that needs you: blue and pulsing while it is running, amber when it is waiting for your review, red when it failed. A workflow group header shows the most demanding status among its chats, so a folded group still tells you something needs attention. The dot follows a run live, even one you are not watching.

  • Filter and Page Through Workflow Runs: The runs list used to load every run a workflow had ever produced, which stopped being usable for anything that runs often. It is now paginated at 50 runs per page, with filters above the table for status, who triggered the run, and a start date range. Filters combine, and they live in the URL — so a filtered view can be bookmarked and shared, and it survives a reload or the back button. Nonsense input is ignored rather than throwing an error, and Triggered by now reads as a proper label instead of a raw database value.

  • Download a Trace as JSON: A trace page now offers a download — the whole trace as a single JSON file, exactly what the page itself receives: trace metadata plus every span with its attributes and any feedback left on it.

  • Tool Definitions in Span Details: A span now shows the tool definitions it was sent as their own section, alongside input, output and system instructions, and links to it from the raw attributes dump.

🔧 Improvements

  • New Chats Have a Real Title Immediately: A chat had no title until its title generator finished in the background, so it showed up as Chat <id> — on a reload before generation finished, whenever generation failed, and for every chat created by a workflow or through the API. A chat now falls back to its first message, squished and trimmed to fit, both on the chat page and in the sidebar. The bare id is only left for a chat with nothing in it yet.

  • Repeat Turns Read the Cache Again: A tool discovered part-way through a turn was appended to the end of the tool list, but the next request rebuilt that list and put the tool somewhere in the middle. Same tools, same definitions — different bytes, so the cached prefix was thrown away and the whole request re-cached from scratch. Discovered tools now keep their place at the end, so a follow-up turn is byte-identical to the last request before it and reads the cache instead of rewriting it.

🐛 Fixes

  • Search Works on Smaller Embedding Models: An organization configured with a 1536-dimension embedding model — text-embedding-3-small or text-embedding-ada-002 — had every embedding request rejected outright, because the request always asked for 3072 dimensions and the storage column accepted nothing else. Connector tools and document chunks were never vectorized for those organizations, so search over them quietly returned nothing at all. Each model now returns its native size and rows carry their own dimension count.

  • Resending an Invitation Actually Extends It: Resending an invitation to someone who already had an account sent a fresh email, but the invitation stayed expired — the clock ran from when the membership was created, and resending changed nothing about that. The recipient clicked the new link and was told it was no longer valid, with no way out but deleting and re-inviting them. Memberships now stamp the moment each invitation goes out, and both the expiry and the Invited at column in the members list read from it.

  • Workflow Chat Traces Are Visible Again: Chats started by a workflow trigger were filed without a purpose, which left their traces hidden from the trace list.

August 18, 2026

✨ New Features

  • One Answer, One Message: A reply that used tools before answering was streamed as a single message but came back after a reload as several stacked bubbles, each with its own avatar and action bar. A turn is now one message: one avatar and name, the steps in the order they happened, and one action bar at the end — so copy and feedback act on the reply that answered you.

  • Work Log: Once a turn has settled, everything leading up to the answer folds behind a collapsible Work log, so the answer sits where you are looking for it. A turn stays open while it is still running, while it is waiting on your approval, when it presented files, or when it never reached an answer.

  • Tool Calls Say Where They Stand: Each step now leads with its state — a spinner while it runs or waits on an answer, a green check where you approved it, a red cross where you rejected it, and a plain grey check where no approval was asked for. A step waiting for your approval is framed as a card, and the whole line responds to a click.

  • Approve a Tool Inside the Step It Belongs To: Approval used to be asked in a separate card below a duplicate of the call, so a streaming reply listed the same tool twice. The question is now asked in the step itself, and an answered step carries an Approved or Rejected badge.

  • More in Trace Span Details: A span now shows cache read and cache write tokens alongside input and output, plus new System instructions, Tool call arguments and Tool call result sections. Values that are themselves JSON are expanded instead of shown as one long escaped blob, long values in the raw attributes dump link to their own section, and tool call results are no longer cut off at 500 characters.

  • The Embedded Chat Shows Who You Are Talking To: Once a conversation is handed over to a Zendesk agent, the chat header follows them — their name and avatar take the place of the assistant's, so it is clear a person picked up. Their messages are labelled with just their name.

🔧 Improvements

  • Faster Chat Responses: Preparing a workspace's tools before each reply was spending most of its time on internal bookkeeping rather than on the tools themselves. On a workspace with 14 connectors, that step dropped from about 4 seconds to roughly 2 — saving around 2 seconds on a typical chat request and more on the heaviest.

  • More Accurate Trace Costs: Span costs ignored cache read and cache write tokens, so cache-heavy spans were badly undercounted. All four token kinds are now priced.

  • The Composer Stays Usable While a Reply Arrives: A reply in flight — running here, running in another tab, waiting on a browser tool, or sleeping — now offers Stop and accepts your next message while it finishes. Only an open approval blocks a new reply, and pressing Enter past one steers away from it instead of losing the message.

  • Follow a Reply You Did Not Start: Opening a chat that is already answering used to fake the run: it polled and reloaded the whole conversation to catch up. It now follows the real reply and rebuilds the conversation from a snapshot when the reply ends, so a second tab or a fresh page load stays in step.

🐛 Fixes

  • No More Blank Assistant Bubble in Escalated Chats: In a chat escalated to a Zendesk agent, every message you sent left an empty assistant bubble behind with nothing but an action bar. The brief flash of that bubble while the message was on its way to the agent is gone too — no reply is coming, so no placeholder is held.

  • A Reloaded Page No Longer Re-Runs a Browser Tool: Reloading during a frontend tool call re-fired your callback and showed an approval prompt for a call the browser already owed. Both are gone.

  • A Cancelled Reply Is Dropped Whole: Stopping a reply mid-tool-call left a partial record behind, so the next message failed with "Invalid request — please check your input" and the transcript showed a step it could not name. Stopping now also settles any approval the reply was asking about as rejected.

  • Two Approvals in One Turn Work: When a reply asked for two approvals, answering one did nothing. Both answers are now collected and sent together, each step showing your choice as you make it.

  • A Stale Approval Settles: Sending a new message past a pending approval only looked like it rejected the call; it now genuinely does.

  • Chat No Longer Errors When a Sleep Ends a Reply You Never Saw: On a reloaded page, a wake-up finishing a reply the page had not been watching could throw a JavaScript error instead of settling cleanly.

  • Escalating to a Human Now Works in Any Language: Asking to be connected to a person could be refused even after the assistant said it was connecting you. The check only recognized a handful of exact phrases per language, so an informal request — like the Latvian "savieno mani ar cilvēku" instead of the formal "savienojiet mani ar cilvēku" — was missed, and the user was left stuck while the assistant claimed the handover was happening. The assistant's own judgment now decides when to hand off, in any language.

August 10, 2026

✨ New Features

  • Delete All Documents Matching a Filter: Clearing out a large set of documents used to mean selecting them page by page. Ticking the header checkbox now offers to extend the selection to every document matching the active filters, and the bulk bar reports the full matching count. Deletion runs in the background and only ever removes documents you are allowed to delete. Rechunking and workspace editing stay page-scoped, so they are hidden while the full selection is active.

  • Control Who Can Publish Artifacts: Publishing an artifact to a public link can now be turned off for the whole organization under Settings → Sandbox. Turning it off hides the publish action while leaving already-published links revocable.

  • Your Organization Name on Published Artifacts: The disclaimer on a published artifact page now names the organization the content came from — "this content was generated by a user of {Organization} and is unverified" — so readers can tell whose user created it.

  • Refresh Tools Works on JWT Passthrough Connectors: Refresh Tools used to only clear the timestamp and wait for the next chat, which never happened when tool caching was on. It now reuses the most recent chat's token to fetch the tool list immediately. If no valid token is available and caching is on, the connector explains what to do instead of silently doing nothing.

🔧 Improvements

  • Simpler Document Source Form: Rarely-used tuning options — timeouts, headers, proxy URL, ignore selectors, URL include/exclude patterns, JavaScript rendering, canonical URLs and chunk size — now live in a collapsed Advanced settings section, so the form opens showing only what most sources need. Existing values are preserved whether or not you open the section.

  • Filter Documents by Failed: The document status dropdown gained a Failed option covering documents whose processing failed and documents in a format no loader supports. Unsupported files previously sat in Pending forever; they now show up where you would look for them.

  • Assistant Name Shown by Default: New workspaces now display the assistant's name in chat out of the box, for AI Act transparency. Existing workspaces keep whatever they are set to.

  • Workflow Name Comes First: The workflow form now starts with the Name field instead of burying it below Workspace and Trigger, matching the workspace form.

🐛 Fixes

  • Wide Tables and Long Links No Longer Overflow: On narrow screens, markdown tables spilled past the message column with no way to reach the right-hand columns, and long URLs stretched onto a single unbreakable line. Tables now scroll horizontally inside their own container, and long links wrap.

  • Citation Badges Wrap: A run of citation badges was a single unbreakable block that overflowed its container — most visible in OpenUI product cards. Badges now wrap onto multiple lines and keep their shape in narrow columns.

  • Checkbox Answers Read Correctly: Submitting an OpenUI form with a checkbox or switch group sent [object Object] back to the assistant instead of the selected options. Checkboxes, switches, sliders and date pickers now come through as readable values, and fields left empty are omitted.

  • Date Picker Styling and Values: The OpenUI date picker was missing its calendar styles, and picking a date could submit the day before it in some time zones. Both are fixed.

  • Selection Cleared When Filters Change: Selecting documents and then changing page or filters left the new page looking partly selected. Selection now resets when the filters change.

August 7, 2026

🔧 Improvements

  • Crawl Up To 100,000 Pages: The page limit on a web source is no longer capped at 10,000, so large sites can be imported in one source instead of being split up.

  • Usage Totals Include Prompt Caching: Cost reporting previously counted only input and output tokens, so spend on prompt caching was invisible and conversations that reuse cached context looked cheaper than they were. Organization usage, workspace totals, and the per-source cost breakdown now include cache read and cache write costs. New messages get these costs from now on; existing ones keep their current values.

  • Preview a Human Handover: The embedded chat preview gained sample conversations that hand over to a human agent — one that stops at the waiting state right after the handover, and one with the full agent exchange and the session-ended notice — in both Markdown and OpenUI styling.

🐛 Fixes

  • Chat Window State Is Now Per Tab: Whether the embedded chat was open and how large it was used to be shared across every tab, so opening a link in a new tab brought the chat window along with it. Each tab now keeps its own state — new tabs start closed and compact, while the state still survives navigating and reloading within a tab.

August 5, 2026

✨ New Features

  • Dropbox Connector: Connect Dropbox and let the assistant search, read, and manage your files — list folders, read file content, pull transcripts, create shared links, and more.

  • Import Documents From Dropbox: Dropbox also joins Google Drive and SharePoint as a knowledge base source. Pick a Dropbox connector, browse your files in a picker, and select individual files or whole folders — folders are imported recursively, and re-runs only reprocess what changed. Renaming or moving a file in Dropbox no longer creates a duplicate document.

  • All Chats Page: The sidebar now lists your 100 most recent conversations and links to a new All chats page with Active and Archived tabs, search by title, and pagination. Archive and unarchive right from the list. The old "Archived" dropdown is gone; opening an archived chat still shows it at the top of the sidebar so you keep your bearings.

  • Your Page Can Own the Conversation: With data-chat-id-source="host", the embedded chat no longer keeps the conversation in a browser cookie. Your page hands it an id with loadChat(chatId), so histories follow the signed-in user instead of the device — no more shared history on a shared computer.

  • Mount the Chat Where You Want It: data-container-id mounts the chat into an element your page positions itself, and data-compact-width / data-compact-height set the size of the compact window. Both are editable in the Script tab.

  • Language-Specific Welcome Suggestions: Workspace suggestions can now be tied to a language, chosen from a dropdown that defaults to all languages. Suggestions without a language stay visible to everyone.

🔧 Improvements

  • The Chat API Waits for the Widget: Calls like open() made before the chat finished loading used to be dropped silently. They are now queued and delivered in order, and every method returns a promise that resolves once the chat has received the call. A new reset() method starts a fresh conversation from your page.

  • Faster First Message: The embedded chat shows a centered loader while it opens and prepares the message components ahead of time, so the first reply renders without a stutter.

  • Escape Closes the Chat: Pressing Escape in the message box now closes the embedded chat. Escape still only dismisses the /skill menu when that menu is open.

  • Embedded Chat Preview With Sample Conversations: The admin preview can load sample conversations, including one that walks through every OpenUI component, so you can see how rich answers look in your own styling.

  • Embedded Chat Polish: Larger message text, left-aligned welcome suggestions, rich components no longer overlap the message box, and dialogs inside the chat no longer dim or blur the page behind them.

🐛 Fixes

  • Promoting a Member to Owner Works: On a workspace with several owners and members, moving an existing member into Owners silently left them a member.

  • File Sizes Above 1 GB: Large files showed their size as undefined in several places.

August 3, 2026

✨ New Features

  • React to the Conversation From Your Page: The embedded chat now tells your page when the window opens, closes or changes size, and what the assistant just answered. Your page can act on it — dim the content behind the expanded window, or call window.MitigateEmbeddedChat.resize("expanded") to give a product carousel more room as soon as one arrives.

🔧 Improvements

  • Resetting the Chat Keeps You in Place: "Reset chat" used to reload the whole widget, closing the window and asking guests for their name and email again. It now starts the new conversation in place, with the window still open.

  • The Chat Remembers How You Left It: Reloading the page brings the chat back the way it was — open or closed, compact or expanded.

  • Smoother Resizing: Switching between the compact and expanded window animates instead of jumping, and the expanded window can now use the full width and height of the browser window.

  • Assistant Avatar on the Welcome Screen: The assistant's avatar now appears above a larger welcome title.

  • Reminder to Check the Assistant's Answers: Once a conversation starts, "AI assistant can make mistakes. Check important info." sits below the messages, in English, Latvian and Estonian.

  • Preview on Demand in Admin: The embedded chat preview no longer reloads while you type. Adjust the widget options, then hit Preview in the Script tab — or Save & Preview in Settings — to see the result.

🐛 Fixes

  • Message Box No Longer Opens Too Tall: The embedded chat's message box could open at double height until you typed in it.

  • Clicks Reach Your Own Chat Button: With the default launcher hidden, an invisible strip below the open chat window swallowed clicks meant for your page — including your own button for opening the chat.

July 31, 2026

✨ New Features

  • Embedded Chat Admin Page: Grab the embed script, configure widget options, and preview the embeddable chat widget live — right from the workspace, in both a Settings tab and a Script tab — without needing a real customer integration to test with.

  • Customizable Embedded Chat Header and Welcome Screen: New data-header-title, data-welcome-title, and data-welcome-description widget attributes let you customize the embedded chat's header text (shown alongside the assistant's avatar) and the welcome screen shown before a conversation starts.

  • Expanded Embedded Chat Theming: New CSS custom properties let you fully theme the embedded chat's composer, header, message bubbles, and background to match your site.

  • AddToCartForm OpenUI Component: A new built-in component for letting the assistant add products to a shopping cart directly in the conversation, with an editable quantity input.

🔧 Improvements

  • Redesigned Embedded Chat Header: The embedded chat header now has larger, rounder buttons and a "..." menu for resetting the conversation.

🐛 Fixes

  • Widget No Longer Pushed Off-Screen: The embedded chat could be pushed partially off-screen on small windows when a custom position offset was combined with the widget's expanded size. It now stays fully visible.

July 30, 2026

✨ New Features

  • Per-Workflow LLM Model: Workflows can now be configured with their own model, reasoning effort, and thinking budget instead of always inheriting the workspace default. This makes it easy to run cheaper workflows on a lighter model while keeping heavier ones on a reasoning model, without changing the workspace-wide setting. Model choices are limited to providers the workspace already has configured.

  • Configurable Sandbox Network Access: Admins can now restrict what a sandbox is allowed to reach on the internet through a new Sandbox settings tab, using an allow/deny policy evaluated per request.

  • Reliable Results from Frontend Tools That Navigate: Frontend tools embedded in the chat widget can now send their result back immediately, before running follow-up actions like navigating to a new page. Previously, a tool that navigated away lost its result and left the conversation stuck.

🐛 Fixes

  • Web-Crawled Pages No Longer Silently Skipped: Some crawled pages were being saved with the wrong content type and were never indexed for search, with no visible error. Crawled pages now keep their detected content type so they're processed correctly.

  • Chat Reliability During Cancel and Resend: Fixed several race conditions where cancelling a response and quickly sending a new message could leave the chat with a stuck spinner, a spurious error, or a tool result that never resolved.

  • Chat Titles No Longer Show Markdown: Auto-generated chat titles could contain stray markdown formatting characters; titles are now plain text.

  • Document Source Page Layout: Action buttons on document source pages no longer get pushed off-screen when the source has a long URL.

  • Redmine Connector Search: Fixed a missing permission scope that caused Redmine issue search to fail with an access denied error.

July 16, 2026

✨ New Features

  • Sitemap Support for Website Crawling: Website sources can now discover pages through XML sitemaps. Point a source at a sitemap.xml (or a sitemap index) and the crawler will follow every listed URL, making it much easier to fully index sites whose pages aren't all reachable through links.

🔧 Improvements

  • CSS Selector Validation for Document Sources: The "ignore selectors" field on document sources now validates each CSS selector when you save. Malformed selectors are rejected with a clear error naming the offending selector, instead of silently failing during ingestion. Selectors with stray whitespace are also handled correctly now.

  • Email Buttons Visible in Dark Mode: Action buttons in notification emails are now blue, so they stay clearly visible in email clients using dark mode.

🐛 Fixes

  • Voice Input in Embedded Chat: Fixed voice input failing in the embedded chat widget — recordings were rejected before transcription could start. Dictation now works for both anonymous and token-protected embedded chats, using the same secure authentication as file attachments.

  • Filters Preserved After Bulk Document Actions: Deleting or re-chunking documents from a filtered list no longer resets the view — you're returned to the same filtered list you were working in.

  • Long Chat Titles: Very long chat titles are now truncated so they no longer overflow the chat header.

  • Cleaned Web Content No Longer Corrupted: Fixed an issue where stripping ignored elements from an ingested web page could leave leftover content from the original page at the end of the cleaned document.

July 9, 2026

✨ New Features

  • Built-in Observability — Traces & Feedbacks: A new observability surface lets you inspect exactly how each chat was answered. Traces render as a span tree showing document and tool retrievals, the model used, tokens, cost, duration, and status — with error badges on anything that failed. A companion Feedbacks view rolls up positive and negative ratings and links each one back to its trace. Traces are scoped to you, embedded chats, or API usage, and older traces are cleaned up automatically after three months.

🔧 Improvements

  • Consistent Assistant Behavior Across Chat, API, and Workflows: The chatbot, the Chat API, and workflows now share the same system prompt. API and workflow responses gain the language rules, tool guidance, and Agent Skills that were previously only available in the main chatbot, and the API is no longer overly strict about forcing a knowledge-base search on every answer.

🐛 Fixes

  • Voice Input in Embedded Chat: Fixed a permission issue that prevented voice input from working in the embedded chat widget.

  • Wide Tables Stay in the Thread: When "Show assistant name in chat" was enabled, wide tables could overflow horizontally past the message area. Tables now stay within the thread width in both layouts.

  • Code Blocks in Generated UI: Fixed broken code blocks in the OpenUI markdown renderer so fenced code now displays correctly.

July 7, 2026

✨ New Features

  • Per-Source Crawl Schedules: Each website document source can now run on its own schedule instead of a single site-wide daily crawl. Set a cron expression to control exactly how often a source is re-crawled, or leave it blank to crawl manually only.

  • Remove Deleted Pages on Re-Crawl: Web sources have a new "delete old pages" option. When enabled, pages that no longer exist on the site are automatically pruned from your documents on the next crawl, keeping your knowledge base in sync with the live site.

🔧 Improvements

  • Larger Document Uploads: Documents can now be uploaded at up to 200 MB. The upload page shows the maximum size, and the previous 30 MB ceiling no longer blocks larger files.

  • Configurable Crawl Timeout: Web document sources now have an adjustable fetch timeout (1–300 seconds, default 30). Slower sites that previously failed to ingest can be given more time to respond.

  • Simpler Embedded Chat Setup: The three separate toggles for the public chat widget are replaced by a single mode selector — Disabled, Token, Guest Signup, or Anonymous — each with a short description. The privacy policy field now appears only when it's relevant.

  • Roles & Permissions Documentation: A new Roles & Permissions page lays out exactly what each role can see and do across organizations, workspaces, and resources.

July 2, 2026

🐛 Fixes

  • Embedded Chat No Longer Conflicts with Host Site Scripts: Some websites run scripts that scan every frame on the page, and the embedded chat widget could make those scripts crash — potentially breaking the host site. The widget is now isolated from such scans, so it coexists cleanly with whatever else the page is running.

  • Custom Themes Render Exactly as Written: Quoted values in custom CSS themes — like font-family: "My Font" — used to come out mangled, so custom fonts silently failed to apply. Themes are now delivered as real stylesheets, preserving your CSS character-for-character while also hardening theme handling against injection. Repeat visits load themes from cache, and theme edits still show up immediately.

July 1, 2026

✨ New Features

  • Redmine as a Knowledge Source: Import Redmine issues and their attachments into your knowledge base. Paste a filtered Redmine Issues page URL and the same filters decide what gets imported; later crawls only re-fetch issues that actually changed.

  • Attach Any File to a Chat: Office documents (.docx, .xlsx, .pptx), PDFs, text files, and images can now all be attached and read by the assistant. Files that providers used to reject no longer break the conversation — the assistant opens and reasons about them directly.

  • Names and Avatars from Google Sign-In: Your real name and profile photo are now pulled in when you sign in with Google and shown throughout the app instead of your raw email address, with initials as a fallback when no photo is available.

  • One-Click "Always Approve" for Tools: When the assistant asks to run a connector tool that needs approval, you can now click Yes, always to approve it and skip the prompt for that tool from then on (available when an admin has enabled it for the tool).

  • Background Reply Notifications: When a chat finishes responding or needs your input while you're on another tab, the browser tab title now flags it — so you notice without watching the window.

🔧 Improvements

  • Consistent OpenUI Theming: OpenUI chat components now pick up their colors from the app's theme, so your organization's custom theme overrides apply to them consistently. Typography is cleaner with the Inter font, and markdown link styling and spacing between text blocks have been fixed.

  • More Personalized Answers: The assistant now knows the signed-in user's email address, so it can reference who it's talking to and handle identity-aware requests correctly.

🐛 Fixes

  • Clean Copy Without Citations: Copying an assistant reply now puts just the readable text on your clipboard, without the inline citation markup that used to come along with it.

  • Reliable Knowledge Base Crawls: Website and YouTube imports now start processing each document as it's downloaded, and a nightly pass re-processes anything left unfinished. Large crawls that were interrupted no longer leave documents stuck unprocessed.

  • Stable Chats When Sandboxes Fail: If a sandbox failed to start, the chat could crash. Sandbox startup failures are now handled gracefully and the chat keeps working.

June 22, 2026

🔧 Improvements

  • Responsive Admin Dashboard: The admin dashboard now adapts cleanly to smaller screens. Wide tables (connector tools, tool settings, artifacts) scroll horizontally instead of pushing the page wider, headers and filters wrap instead of overflowing, settings and usage tabs scroll rather than overlap, and the sidebar stays in place when scrolling wide tables.

  • Cleaner Model Selection: Models that a provider no longer offers are automatically removed from the model picker, so deprecated and retired models no longer show up as selectable options. If a provider brings a model back, it reappears on its own.

🐛 Fixes

  • Workspace Suggestions Layout: Welcome suggestions on the workspace screen now show their full text and arrange into a responsive grid, so they no longer get truncated or overflow off the side on narrow screens.

  • Approving Auto-Approved Tools: Switching a connector tool to auto-approve while an approval was still pending could crash the chat when you clicked Approve. Approving now works correctly in that case.

  • OpenUI Copy Button: Copying an OpenUI response now puts the rendered plain text on your clipboard instead of the underlying markup.

June 18, 2026

✨ New Features

  • Per-Model Reasoning Settings: Thinking and reasoning effort is now configured per model in workspace and organization settings. The available effort levels (none, minimal, low, medium, high, xhigh, max) adapt to the model you pick, so you only see options it actually supports.

  • Downloadable File Cards: When the assistant presents files, they now appear as clickable download cards instead of a raw debug block. Any attachment in a message can be downloaded with a single click, and files that failed to load show a clear error with the reason.

🔧 Improvements

  • Streamlined Navigation: Organization-level links (Dashboard, Users, Usage, Organization Settings, Audit Trail) are now grouped together in the account menu, and the Settings item was renamed to Organization Settings for clarity.

  • Copy in Embedded Chat: You can now copy assistant messages to your clipboard directly from the embedded chat.

  • Smarter Web Fetch Handling: Content fetched from the web is now only sent to an AI model when that model's provider can actually process the file type, avoiding failed requests with unsupported formats.

🐛 Fixes

  • Stale Tool Approval Cards: Sending a new message while a tool approval prompt was waiting could leave the chat in a broken state with an "Invalid request" error. Stale approval prompts are now cleared automatically.

  • OpenUI Button Double-Run: Clicking an OpenUI action button could occasionally dispatch the same message twice. Buttons now stay disabled while a run is in progress.

  • Concurrent Runs on One Chat: Having the same chat open in two browser tabs could start two responses at once and crash the run. A chat now only ever runs one response at a time.

  • Reconnect Prompt on Empty Chats: The "continue after reconnect" prompt no longer appears on empty conversations that have no messages yet.

  • Intermittent Chat Failures: Chats with large attachments could occasionally fail with an internal error. Sending large files no longer trips up a request.

  • Embedded Chat Links: Links in embedded chats no longer open a blank page and now navigate to the correct destination.

June 12, 2026

🔧 Improvements

  • Masked Secret Fields: API keys, secrets, and passwords across workspace settings, organization settings, connectors, and document sources are now hidden by default, with an eye toggle to reveal them when needed.

  • Faster Platform Performance: Database housekeeping now runs automatically, keeping the platform responsive and roughly halving the work needed for semantic search queries.

  • Consistent Page Headers: All admin pages now share the same header layout and height, so navigating between pages no longer causes the content to shift.

🐛 Fixes

  • Clear Errors When Refreshing Connector Tools: If a connector's MCP server returns an error while refreshing tools, you now see the actual error message as a notification instead of a generic error page.

  • Connector Recovery After Failed Connections: A connector whose server connection failed once could keep erroring on every subsequent use. Failed connections are now retried correctly on the next attempt.

  • Workflow Runs with Expired Connector Authorization: Workflow runs that fail because a connector needs to be re-authorized are now marked as failed immediately with a clear error message, instead of retrying without effect.

June 11, 2026

🔧 Improvements

  • Faster Admin Dashboard and Usage Pages: The admin dashboard and usage pages now open instantly — analytics, counts, and usage data load in the background while the page is already on screen. Usage tabs load their data on first open, so switching between them feels snappier.

  • Streamlined Chat Page: The floating assistant button has been removed from the main dashboard chat page. The assistant popup remains available in embedded chats.

🐛 Fixes

  • Chat Creation with Workspace API Keys: Creating a new chat could fail with an error when AI provider API keys were configured only at the workspace or organization level. Chats now correctly use your workspace's configuration, including the workspace → organization default model fallback.

  • OpenUI Validation Speed and Reliability: Validating OpenUI components was slow and could fail due to unexpected output corrupting the validation result. Validation now runs fast and returns clean results every time.

June 10, 2026

✨ New Features

  • Create Skills Without a Zip Archive: You can now author a skill by simply writing or pasting SKILL.md content directly in the skill form — or loading it from a local .md file — no zip packaging required. The zip upload flow is still available as an alternative.

  • Manage Skill Files Individually: The skill page now lets you add, edit, and delete individual files inside an existing skill. Text files can be edited inline, and SKILL.md is protected from accidental deletion.

🐛 Fixes

  • Large File Attachments: Sending large file attachments through the chat could fail with a 502 error or make the service temporarily unresponsive. Large attachments now upload reliably, including from slower connections.

  • Artifacts Panel Showing Sandbox Files: The artifacts panel could miss files the AI had written to its sandbox, and deleting them didn't always work. The panel now shows the AI's files correctly and lets you manage them as expected.

June 8, 2026

✨ New Features

  • Artifacts Panel: A new panel in the chat header lets you browse, download, and manage files the AI writes to its sandbox volumes — both your private files and files shared across the workspace. Publish any file to a permanent public URL with one click; the link always reflects the latest version of the file so you never need to re-publish after edits.

  • Multimodal Web Fetch: The AI can now read images, HEIC photos, videos, and other media directly when browsing the web, not just text. A configurable web fetch model can be set at the organization or workspace level so you choose which vision-capable model handles media content.

🔧 Improvements

  • Anthropic Adaptive Thinking: When using Claude Opus 4.6+ or Sonnet 4.6+, you must now set a thinking effort level (low, medium, high) instead of a fixed token budget, giving the model flexibility to think as much as the task requires.

  • Citations Toggle: A new per-workspace setting lets you turn off source citations entirely. Also fixes a bug where citations got stuck on "Gathering citations…" indefinitely in OpenUI workspaces.

  • Embeddable Chat Master Switch: Disabling the "Embeddable chat" toggle on a workspace now fully deactivates the widget — the embed endpoints return 404, making the toggle the single source of truth for whether the chat widget is reachable.

  • Faster Usage Reporting: Token usage and cost breakdowns per chat now load noticeably faster, especially for conversations with long histories.

🐛 Fixes

  • Repeat Citations: The AI was sometimes dropping citations when a question restated something covered earlier in the conversation. Citations are now included consistently on every answer that draws from your documents.

  • Context Compaction: Auto-compaction was not firing on long conversations because cached tokens weren't counted toward the context total. Long chats no longer hit the context window limit with an error.

  • Web Crawler Errors: Crawl runs that fail immediately because the entry URL is unreachable now report a clear error message instead of silently completing with no documents ingested.

May 26, 2026

✨ New Features

  • Skills Autocomplete: Type / in the chat composer to pick a workspace skill for an individual message. Selected skills appear as chips above the composer, support keyboard and mouse navigation, and stay visible on the message in history so you can see which skills were applied. Works in both the dashboard and embedded chat.

  • Sleep Tool: The assistant can now pause mid-task and resume on its own, so longer multi-step requests no longer have to complete in a single uninterrupted run. Sending a new message during a pause interrupts it cleanly.

🔧 Improvements

  • Richer Search Citations: Semantic search results now include the source document's filename and URL, so the assistant can cite exactly where an answer came from.

  • Simpler Connector Reconnection: When a connector needs to be re-authorized, the chat now shows a Connect card inline right where it's needed, and asks "Should we continue?" after you reconnect instead of silently retrying. Reconnecting mid-conversation is smoother and clearer.

  • Self-Healing Rich Responses: When the assistant produces a malformed rich (OpenUI) message, it's now automatically detected and repaired before you see it, so broken markup no longer shows up in chat.

🐛 Fixes

  • Auto-Approve in Embedded Chat: Tool calls in embedded chats now respect the connector's "Allow auto approve" setting, so visitors are no longer prompted to approve every tool call when auto-approval is enabled.

  • Workspace Avatar Preview: Uploaded workspace avatars now show up in the workspace form even when embedded chat is disabled.

  • Dark Mode Readability: Fixed the login "remember me" checkbox, audit log diffs, and connector badges so they're legible in dark mode.

May 21, 2026

✨ New Features

  • Personal Workspaces & Per-Resource Owners: Connectors, document sources, documents, and skills now have explicit owners and an Organization shared toggle, so individuals can keep private resources alongside org-wide ones. Workspace memberships gained owner and member roles, the sidebar splits cleanly into org-level and workspace-level navigation, and the workspace switcher preserves the current section when jumping between workspaces.

  • Persistent Assistant Memory: A new memory tool lets the assistant remember facts across conversations. Memories can be viewed, edited, and deleted from a dedicated admin page, and the tool can be toggled per organization like other connector tools.

  • Estonian Locale for Embedded Chat: Added Estonian (et) translations for the embedded chat UI.

  • Outlook Sent Email Trigger: Workflows can now react to messages sent from a connected Outlook mailbox, alongside the existing Outlook/Gmail/IMAP received triggers. The Outlook client also stopped relying on the localized "Inbox" folder name and now uses Microsoft Graph well-known folder IDs directly, so non-English mailboxes work out of the box.

  • Stop Running Crawlers: Operators can cancel an in-flight Document Crawler run from the admin index or show page. The job exits cleanly at the next scraper iteration, and the index polls every few seconds so the status transition is visible without refreshing.

  • More Redmine Tools: Added a Redmine manage_document tool (list / get / create / update) backed by the DSMF documents plugin. The connector now also auto-reconciles tool definitions when the upstream Redmine MCP renames or removes tools, so stale tools no longer linger after an upgrade.

🔧 Improvements

  • Anthropic Prompt Caching: System instructions, tool definitions, and prior conversation turns now hit Anthropic's prompt cache instead of being re-billed every turn. Multi-turn conversations against Anthropic models are noticeably cheaper and faster after the first message, while OpenAI and other providers are unaffected.

  • Document Processing Errors Are Visible: When a document fails during basic, premium, or enrichment ingestion, the admin index now shows a "Processing failed" badge and the show page surfaces the full error message and timestamp. Re-chunking a failed document clears the error immediately, and transient provider failures (overloaded, service unavailable, connection/timeout) are now retried instead of bubbling up as permanent failures.

  • Usage Filtered by Month: The organization usage page defaults to the current month with < Month YYYY > navigation. The month filter applies to the totals card and every per-row cost across the Workflows, Workspaces, Users, and Document Sources tabs, keeping the page fast as history grows.

  • Document Ingestion Cost Breakdown: The Document Sources usage tab now splits the single "Tokens Cost" column into per-purpose columns — embeddings, contextual chunk, metadata, translation — plus a row total, so you can see which ingestion stage is driving spend. Costs survive document deletion (ingestion chats stay attached to the source).

  • RSA-OAEP-256 JWE Tokens: The embeddable chat token service now accepts RSA-OAEP-256 (and other modern JWE key-wrap algorithms) in addition to RSA-OAEP, and each workspace can configure its own iat replay window via Embeddable chat token max age (seconds) for issuers that mint longer-lived tokens.

  • Embedded Chat Assistant Avatars: Embedded chat widgets now have a public avatar endpoint so assistant avatars render correctly outside the authenticated app. Avatars are only exposed when embedded chat is enabled for the workspace, and the URL is timestamped to prevent stale-cached images after an avatar change.

  • Unsupported Document Tooltip: Hovering the "Not supported" warning on the Chunks column now lists the actual supported file formats, sourced from the same allowlist the upload page uses.

  • Navigate to Show After Create/Update: Creating or updating a connector, document source, or organization membership now lands on the resource's show page instead of the index list.

🐛 Fixes

  • 404 After Logging In As a Different User: Fixed a case where logging out of one account and signing back in as a different user (via SSO) could land on the previous user's chat URL and 404. Logout now navigates to the sign-in page directly so Devise doesn't stash the old URL for the next session.

  • Pending Documents Dashboard Link: Fixed a broken URL on the admin dashboard's pending documents card that was returning an error.

May 7, 2026

✨ New Features

  • Embedded Chat File Uploads: Embedded chat widgets can now upload files alongside messages. Anonymous workspaces upload directly; token-protected workspaces validate the JWE session token. A client-side size check shows a clear toast before any bytes leave the browser.

  • Reconnect Connectors From Chat: When an MCP connector hits an authentication error mid-conversation (expired token, 401/403), the assistant now renders a Connect/Reconnect card directly in the thread so users can re-authorize without leaving the chat.

  • Organization Invitations & Password Reset: Replaced the old "create user with password" admin flow with a proper invitation lifecycle. Admins now invite users by email only; invitees accept on a dedicated page or via SSO. New self-serve password reset flow is included, and password endpoints are automatically disabled on SSO-only deployments. Pending invitees can no longer see workspace data before they accept.

  • User-Level Tool Auto-Approve + Admin Tools Page: Tool auto-approval is now a two-layer model — admins set a per-tool gate, and each user opts in for themselves from a new Tools button in the chat header. Admins also get a new cross-connector Tools page for managing every tool in the organization from one filterable table.

  • IMAP Email Workflow Trigger: Workflows can now be triggered by inbound mail on any IMAP-backed mailbox, alongside the existing Gmail and Outlook triggers.

  • More Redmine Tools: The Redmine connector gained wiki, products, gantt, and contacts tools.

🔧 Improvements

  • Resume Chat After Page Reload: Reloading the page while the assistant is still answering no longer leaves the thread frozen. The chat now shows a typing indicator while the run continues on the backend, and the full response appears once it finishes.

  • Citation Reminders: User messages now include a citation reminder so the assistant is more consistent about citing sources in its replies.

  • Configurable Video Loader Model: The model used for video ingestion is now configurable per organization from the admin Provider settings tab, replacing the hardcoded default.

  • Google Workspace Memory Leak Fix: Upgraded the Google Workspace MCP connector to fix a Sheets API memory leak — container memory now stays steady under sustained read_sheet_values use.

🐛 Fixes

  • Stop Button Works Before First Token: Clicking stop while the assistant was still "thinking" (before any text appeared) used to do nothing. Cancellation now interrupts the request immediately, even before the first chunk arrives, and mid-tool-call cancels no longer leave the next message stuck.

  • Embedded Chat Vertical Fill: Fixed the height of the embedded fullscreen chat so it fills its container correctly.

April 28, 2026

✨ New Features

  • Canonical URL for Web Document Sources: Web document sources now have a Use canonical URL toggle. When enabled, the website scraper stores the page's <link rel="canonical"> URL as the document's source URL, so citations point to the canonical address instead of whichever URL was crawled. Falls back to the visited URL when no canonical link is present.

  • Mail (IMAP/SMTP) Connector: New hosted Mail connector lets the assistant read and send email through any standard IMAP/SMTP account — not just Microsoft 365 or Gmail.

  • SharePoint File Downloads: The SharePoint connector can now list folder contents, search files, and download document library files directly. Previously the connector could only browse metadata.

🔧 Improvements

  • Multi-Page PDF Web Fetch: The web_fetch tool now paginates through every page of a PDF instead of stopping after the first couple. Fetching a long PDF URL returns the full document content to the assistant.

  • Faster MCP Connector Cold Starts: MCP servers (mail, etc.) now stay alive between conversation turns instead of restarting on every message. First-turn cold start drops from ~15s to ~1s on warm sandboxes, and subsequent turns are effectively instant. Sandbox sessions are also tracked and renewed automatically to avoid mid-conversation timeouts.

  • Wider Chat Thread: The chat thread column is now wider (48rem, up from 42rem), giving assistant messages — especially tables and OpenUI output — more room to render comfortably.

  • OpenUI Component Updates: Bumped OpenUI to 0.11.3 with refreshed Action steps, column-oriented Tables with sorting and filtering, label/value chart arrays, and a new Modal component.

  • Mixed-Content Zip Ingestion: Uploading a zip file with mixed content (DOCX, HTML, Markdown) now routes each entry to the correct loader instead of forcing everything through the PDF/docling pipeline.

April 23, 2026

✨ New Features

  • Conversation Compaction: Long chats can now be automatically summarized to stay within the model's context window. Admins configure compaction thresholds at the system and workspace level; the assistant condenses older turns into a summary message and carries on without losing thread.

  • Bulk Document Actions: On the admin Documents page, multi-selected documents now support two new bulk actions alongside delete:

    • Edit Workspaces — reassign workspace membership for many documents at once. Connector-synced documents are blocked with a tooltip since the connector would overwrite manual edits.
    • Rechunk Selected — re-runs chunking and embeddings for each selected document via background jobs.
  • Connector Connection Status: OAuth connectors now show a Connected / Disconnected / Expired badge on both the admin connectors index and show pages, so admins can see at a glance which connectors need to be re-authenticated.

  • Embeddable Chat Expand Button: The embeddable chat widget gains an expand button that resizes it to larger dimensions. The default width and height are configurable per workspace in the embeddable chat settings.

  • Empty-State Page for Users Without Workspaces: Users who aren't assigned to any workspace now land on a dedicated empty-state page explaining the situation instead of a broken dashboard.

🔧 Improvements

  • OpenUI Tool Narration: Every tool invocation in an OpenUI response is now preceded by a rendered MarkDownRenderer block that tells the user what the assistant is about to do, so you get context before the tool runs instead of a silent tool call. OpenUI validation errors are also now surfaced to the browser console for easier debugging.

  • YouTube Summarization Uses Your API Key: Video ingestion and the web fetch tool now route Gemini calls through the organization's own LLM configuration instead of a shared default key. Token usage for YouTube summaries is now tracked against the organization like any other assistant message.

  • Per-Organization Model Refresh: The admin model list refresh now iterates through each organization's configured OpenAI / Anthropic / Gemini keys, so provider models that require authentication actually appear. Previously the refresh relied on a global config that only resolved ElevenLabs.

  • Cleaner Contact Form Emails: Contact form submission emails no longer include an auto-generated chat summary — just the contact details the user entered.

🐛 Fixes

  • mailto / tel Buttons in Chat: Clicking an email or phone button in an OpenUI chat response used to open a blank about:blank tab (or silently do nothing, depending on browser). The button now copies the address or phone number to your clipboard and confirms with a toast, so it works reliably across browsers, devices, and embedded iframes.

  • Tool Approvals Re-Prompt Correctly: Approving an MCP or connector tool used to leave the "approved" flag stuck on the shared tool instance, so the assistant could silently reuse that approval for later calls to the same tool within the same turn. Approvals are now scoped to a single execution — each invocation prompts again.

  • Feedback from Anonymous Embedded Chats: Submitting thumbs-up / thumbs-down feedback in an anonymous embedded chat session returned a 422 CSRF error in production. Feedback now posts successfully for anonymous users while still enforcing the existing authorization rules.

April 21, 2026

✨ New Features

  • Code Execution Sandbox: Chats can now run shell commands and generate files in an isolated, gVisor-hardened sandbox. The assistant gets a bash tool for running commands and a present_files tool for attaching generated files back into the conversation. Available upon request — contact sales at ai@mitigate.dev to enable it for your organization.

  • Persisted Sandbox Files: Sandboxes now mount /mnt/user-data and /mnt/workspace-data, so files written in one chat remain available across sessions — per-user and per-workspace. Anything you save in those directories is durable and shared between sandboxes on the same chat.

  • Agent Skills: Admins can upload Agent Skills archives on the new /admin/skills page and assign them to workspaces. The assistant discovers and activates the right skill mid-chat via a new view tool. Prose-only skills work without a sandbox; script-backed skills run automatically when the sandbox is enabled. Includes a download button so admins can edit and re-upload skills without losing content.

  • Stdio MCP Connectors: Configure admin MCP servers that run inside the sandbox using a Claude-Desktop-shaped {command, args, env} config. Opens up the full npx/uvx MCP ecosystem (e.g. @modelcontextprotocol/server-everything, mcp-server-time). Requires the sandbox to be enabled.

  • Embeddable Chat Controls: The embeddable chat widget now exposes open, close, and toggle controls so you can drive it from your own page UI.

  • Web Scraper Proxy: Admins can configure a proxy URL on web document sources to route crawler requests through a proxy — useful for scraping sites that geo-restrict or block our egress IPs. Works for both JavaScript-disabled (Ethon) and JavaScript-enabled (Ferrum) crawls, including authenticated proxies.

  • SharePoint Picker Without Browser Login: The SharePoint file picker now authenticates using the connector's OAuth credentials instead of the user's browser session. Users no longer need to be signed into Microsoft in their browser to open the picker.

  • Google Calendar Invitations: When the assistant creates, updates, or deletes calendar events, it can now send notifications to attendees via Google Calendar's native flow.

  • Redmine Connector Expanded: The Redmine MCP connector gains 33 new tools, broadening what the assistant can do with issues, projects, time entries, and more.

  • More Chat File Formats: Extended the allowlist of file formats you can attach in chat.

🐛 Fixes

  • Archived Chats: Sending a message in an archived chat no longer makes it disappear from both lists. The chat now moves back to the active list in real-time when you send a message, without needing a page refresh.

  • Chrome Autofill: Fixed Chrome silently autofilling admin forms with saved credentials — "Assistant name" filled with your email, API key fields filled with saved passwords, and the "Save password?" prompt appearing on every save. Affected forms across Workspaces, Connectors, Settings, Document Sources, and more.

  • Web Scraping Hangs: Pages with analytics beacons or keep-alive trackers could stall scraping indefinitely. The idle check now tolerates persistent background requests and caps the total wait at 10 seconds.

April 16, 2026

✨ New Features

  • Per-User Timezone: Choose your timezone from the profile dropdown. Timestamps across the admin UI, the chat assistant, and scheduled workflows now reflect your local time. Relative expressions like "today" or "5 PM" are interpreted in your timezone when the assistant calls tools such as Google Calendar, Harvest, and Forecast. Scheduled workflows fire at the creator's local time.

🐛 Fixes

  • GitHub Connector: Resolved 403 errors when connecting the GitHub MCP connector. The connector now authenticates reliably and its tools are available in chat.

April 13, 2026

✨ New Features

  • SharePoint Document Source: Connect your SharePoint account and browse drives and folders to select files for ingestion. Supports the same file types as other document sources, with automatic re-sync on subsequent runs.

  • Contact Form in Chat: When the chatbot cannot resolve a user's question, it can now offer to send a contact form email to a predefined recipient. Configure the recipient email per workspace in admin settings.

  • Web Fetch Tool: The chatbot can now read documents shared via URL during a conversation. Supports PDF, DOCX, XLSX, PPTX, HTML, CSV, Markdown, and plain text. Works seamlessly with Google Drive links.

  • Audit Trail: Track changes to records across the platform. A new audit trail view in the admin dashboard shows who changed what and when.

  • Assistant Name & Avatar in Chat: Display a custom assistant name and avatar in chat messages. Enable per workspace and upload a custom avatar image in admin settings.

🔧 Improvements

  • Workflow Task Navigation: Tasks now link directly to their chat conversation instead of opening a separate detail page. Added user filter to workflows and tasks index pages.

  • Paginated PDF Processing: Large PDF documents are now processed page-by-page, enabling incremental and resumable ingestion. Pages already processed are skipped on re-runs, significantly reducing processing time for large files.

  • Chrome Autofill Prevention: Admin form fields are no longer incorrectly filled by Chrome's password manager. Login and signup forms continue to support autofill as expected.

🐛 Fixes

  • Fixed an error when processing documents that returned empty content from the document converter

April 9, 2026

✨ New Features

  • Login with Google & Microsoft: Users can now sign in with their Google or Microsoft account.

🔧 Improvements

  • Unified Admin & Chat Navigation: The admin dashboard and chat are now a single application. Switching between them uses instant SPA navigation instead of full page reloads, making the experience noticeably faster.

  • OpenUI Citations: OpenUI responses now render inline citations the same way as regular markdown responses, giving users consistent source links regardless of the response format.

  • Lazy-Loaded Components: Markdown and OpenUI renderers are now lazy-loaded, reducing the initial bundle size for faster page loads.

April 8, 2026

✨ New Features

  • Exclude URL Patterns in Crawler: Document sources now support exclude URL patterns alongside include patterns. Skip entire sections of a site during crawling — exclude rules take precedence, so overlapping URLs are always excluded.

  • Unsupported File Handling: Documents with unrecognized formats are now clearly marked as "Not supported" in the admin dashboard instead of silently failing or showing empty chunk counts. Google Drive ingestion checks format support before downloading, so unsupported files no longer count as failures.

🐛 Fixes

  • OpenUI Rendering When Switching Chats: Fixed an issue where switching between OpenUI chats in the sidebar would fall back to plain markdown rendering until a full page reload. The correct renderer is now used every time you switch chats.

  • Redmine MCP Connector: Resolved a production error where the Redmine connector crashed on instances that return dates as strings instead of datetime objects.

  • Docling Memory: Increased Docling worker memory to prevent out-of-memory crashes during document processing.

April 7, 2026

✨ New Features

  • Archive Chats: Tidy up your chat list by archiving conversations you no longer need front and center. Archived chats are tucked away but remain accessible whenever you want to revisit them.

  • Remember Last Workspace: The app now remembers which workspace you were last working in. Logging back in or jumping between admin and chat takes you straight to where you left off, per organization.

  • Costs by Document Source: A new breakdown in the admin dashboard shows AI usage costs grouped by document source, making it easier to understand which knowledge bases are driving spend.

🔧 Improvements

  • Cancel Agent Responses Reliably: Stopping the AI mid-response now works consistently, cleanly halting the agent without leaving the composer in a stuck state.

  • Clearer Error Messages in Chat: When something goes wrong during a chat run, you'll now see a toast notification explaining the issue instead of the conversation silently freezing. Organization users see the underlying error details, while embedded and guest chats see a friendly generic message.

🐛 Fixes

  • Google Drive Workspace Assignment: Fixed an issue where Google Drive documents could be assigned to the wrong workspace during ingestion.

  • Chat Connection Stability: Resolved a class of background errors that occurred when sending messages or switching between chats too quickly. Switching threads is now noticeably smoother, and any underlying connection issues surface as visible errors instead of leaving the chat hanging.

April 2, 2026

✨ New Features

  • Google Drive Document Source: Connect your Google Drive as a document source to ingest files directly into your knowledge base. Select specific files or entire folders using Google's built-in file picker, with support for Google Docs, Sheets, and Slides. Incremental updates automatically skip unchanged files and clean up removed ones.

  • Frontend Tool Calls: The AI assistant can now trigger interactive actions directly within the embedded chat widget — such as displaying product cards, navigating pages, or performing custom UI actions — enabling richer, more dynamic conversations.

🔧 Improvements

  • Dark Mode for OpenUI Components: OpenUI components on the documentation page and in the embedded chat now correctly follow the selected theme, including when a theme is passed via URL parameter.

🐛 Fixes

  • Fixed an issue where internal title-generation chats were incorrectly counted in admin dashboard metrics, inflating chat and message counts.

March 31, 2026

✨ New Features

  • Language Switcher: Change your preferred language directly from the user menu in both the chat and admin interfaces. Your selection is saved to your profile and persists across sessions.

🔧 Improvements

  • Unified User Menu: The user dropdown is now consistent across the chat and admin sidebars, with quick access to theme and language settings in one place.

  • File Attachments in Tools: Files you upload in chat are now accessible to connected tools and integrations, enabling AI-powered workflows that can read and process your attachments.

March 27, 2026

✨ New Features

  • Harvest & Forecast Connectors: Connect your Harvest time tracking and Forecast resource planning accounts to the AI assistant. Ask questions about your time entries, projects, and team schedules directly in chat.

  • JavaScript-Enabled Web Crawling: Document sources can now scrape JavaScript-heavy websites using a headless Chrome browser. Enable the "JavaScript enabled" toggle on any web document source to render dynamic content that was previously invisible to the crawler.

  • Browser-Impersonated HTTP Crawling: Web crawling now uses browser-level TLS fingerprinting to access websites that block traditional scrapers, significantly improving ingestion success rates.

🔧 Improvements

  • Observability Upgrade: Replaced the Langfuse SDK with OpenTelemetry for LLM observability. Each organization can now configure its own Langfuse credentials, enabling multi-tenant trace routing. Feedback scores are reported asynchronously.

  • Workflow Turn Limits: Workflows now have a configurable "Max Turns" setting (default 50) that prevents infinite loops by capping the number of LLM calls per conversation.

  • Custom Headers for OAuth Connectors: MCP connectors using OAuth can now send custom HTTP headers with each request.

🐛 Fixes

  • Fixed a visible rectangle appearing around the embedded chat bubble in dark mode. The bubble now blends seamlessly with any page background.

March 26, 2026

✨ New Features

  • Connector Settings in Chat: Access and manage your MCP connector settings directly from the chat page. A new settings icon in the chat header shows connection status at a glance, with green/red indicators for each connector. Connect or disconnect OAuth connectors without leaving the conversation.

  • Terms of Service Agreement: Users are now required to accept the terms of service and privacy policy before logging in. Login buttons remain disabled until the agreement checkbox is checked.

🔧 Improvements

  • Faster Document Processing: Markdown, HTML, and plain text documents are now processed concurrently instead of waiting in a sequential queue, significantly reducing processing times for these file types.

  • API Error Responses: API endpoints now return proper JSON 404 responses instead of HTML error pages when a resource is not found.

🐛 Fixes

  • Fixed document processing jobs failing permanently when encountering temporary LLM rate limits or pending processing tasks. Jobs now automatically retry instead of giving up.

March 25, 2026

✨ New Features

  • Microsoft Teams Connector: Connect your Microsoft Teams workspace to access teams, channels, chats, and messages directly from the AI assistant.

  • Microsoft OneDrive Connector: Access and manage your OneDrive drives, files, and folders through the AI assistant.

  • Gmail Workflow Trigger: Automate workflows based on incoming Gmail messages. The new "Email Received" trigger polls your inbox on a schedule and runs your workflow prompt against each new email.

  • Workspace Chat Suggestions: Each workspace can now have its own set of suggestion buttons on the chat welcome screen, managed through the admin panel. Replaces the previous global environment variable approach.

🔧 Improvements

  • Collapsible Tool Groups: Consecutive tool calls in chat are now grouped into a collapsible container. The group auto-expands while tools are running and collapses after completion, keeping conversations tidy.

  • OpenUI Documentation: Added an interactive OpenUI component reference page with live previews, syntax-highlighted markup tabs, and example applications including an e-commerce carousel and Kanban board.

  • Workflow Manual Trigger: Manual workflow triggers now include timestamp data for more precise execution tracking.

🐛 Fixes

  • Fixed embedded chat dark mode — the chat widget now correctly inherits the host page's theme, including dynamic light/dark mode switches.
  • Fixed OpenUI components using a hardcoded font instead of inheriting the application's font family.
  • Fixed orphaned chat records being created when starting a conversation with a voice message.
  • Fixed workflow tasks not correctly resolving tool search and output format settings.

March 24, 2026

✨ New Features

  • OpenUI Rich Responses: Chat responses can now render interactive UI components using the OpenUI DSL. Workspaces support an output_format setting to choose between Markdown and OpenUI rendering, with automatic fallback for older chats. Includes streaming support, dark/light theme integration, and form interaction handling.

  • Transcription Indicator: Users now see a visual indicator while voice input is being transcribed, providing feedback during longer transcription processing.

🔧 Improvements

  • Smarter Tool Search: Tool search now supports namespace filtering scoped to MCP connectors and configurable max_results. A new McpClientTool wrapper defers MCP client startup until execution and surfaces errors as tool results instead of crashing.

  • Accurate Admin Dashboard Metrics: Document ingestion chats (automated internal LLM calls for metadata generation) are now excluded from all admin dashboard charts and counts, ensuring metrics reflect only real user conversations.

  • "Cached" Badge on Connectors: The admin connectors index now shows a "Cached" badge for connectors with tools cache enabled.

🐛 Fixes

  • Fixed ElevenLabs voice transcription failing when the API key is configured at organization level instead of globally.
  • Fixed transcription model resolution chain so workspace and organization defaults are properly inherited.
  • Fixed ElevenLabs pricing structure to correctly use audio token pricing for cost tracking.

March 23, 2026

✨ New Features

  • Voice Transcription Support: Added speech-to-text capabilities with ElevenLabs support, workspace-level API key management, and organization-level model defaults.
  • Approval Flow for Tool Calls: Introduced a full approval experience for MCP tool calls, including consent prompts, persisted approval state, and clearer task handling when approvals are required.
  • Deferred Tool Discovery: Added semantic tool_search for deferred MCP tools with pgvector-backed discovery to make large tool catalogs more scalable.

🔧 Improvements

  • Connector Tool Caching and Management: Added connector tool caching, refresh controls, bulk toggles, and persistence for static token and JWT passthrough connectors.
  • Embedded Chat and AG-UI Stability: Improved AG-UI compatibility, preserved tool call rendering in embedded chat, and fixed streaming newline handling.
  • Smarter Tooling and Search Performance: Added memoization to avoid duplicate MCP requests, increased MCP client timeout, and improved semantic search filtering.
  • Workspace and Provider Settings UX: Renamed LLM settings to Providers and expanded workspace/provider configuration for voice and media-related keys.

🐛 Fixes

  • Fixed Zendesk messaging compatibility with AG-UI protocol.
  • Fixed credential rotation behavior and schema issues affecting settings updates.
  • Fixed translation and workspace API key edit issues.
  • Fixed temperature conflicts when thinking mode is enabled.
  • Fixed UUID validation for embedded chat cookie identifiers.

📚 Documentation

  • Added connector documentation for Exa.
  • Added documentation for crawling authenticated websites.

March 16, 2026

✨ New Features

  • Transcription Usage Tracking: Added transcription tracking with configurable speech-to-text model selection and duration-based cost estimation.
  • Expanded Connector Coverage: Added documentation and setup support for Atlassian, GitHub, Slack, and Sentry connectors, plus new Google Mail and Google Drive connector executables.

🔧 Improvements

  • Usage Cost Architecture: Refactored usage cost handling to better support transcription and model-based billing scenarios.
  • Connector OAuth Defaults: Standardized OAuth scope defaults and aligned connector scope behavior with documentation.
  • Documentation Structure: Restructured connector documentation and added tool sections for clearer setup and capability guidance.

🐛 Fixes

  • Fixed inconsistent OAuth naming by standardizing references to OAuth 2.1.
  • Fixed default CSS selectors for document source forms.
  • Fixed Outlook Calendar default scope coverage for shared calendar read access.

🚀 Infrastructure

  • Improved redundancy by deploying two general-purpose nodes.

On this page