PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.2.25
MxChat – AI Chatbot & Content Generation for WordPress v3.2.25
3.2.25 3.2.24 3.2.23 3.2.22 3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 All 156 releases
← All changes | readme.txt +112 -31 3.2.20 → 3.2.25 View file →
@@ -1,12 +1,12 @@
1 1 === MxChat - AI Chatbot & Content Generation for WordPress ===
2 2 Contributors: mxchat
3 3 Author: [MxChat](https://mxchat.ai)
4 4 Tags: ai chatbot, chatgpt, woocommerce, customer support, content generation
5 -Requires at least: 5.0
6 -Tested up to: 7.0
7 -Requires PHP: 7.2
8 -Stable tag: 3.2.20
5 +Requires at least: 5.3
6 +Tested up to: 7.1
7 +Requires PHP: 7.4
8 +Stable tag: 3.2.25
9 9 License: GPLv2 or later
10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html
11 11
12 12 Free AI chatbot and content generation for WordPress. Train ChatGPT, Claude, Gemini or Grok on your content. WooCommerce ready with RAG.
@@ -71,9 +71,9 @@
71 71 Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5, Claude Sonnet 4.5, Claude Opus 4.1, Claude Haiku 4.5, Claude 4 Opus, Claude 4 Sonnet
72 72 **X.AI**:
73 73 **Grok 4.1 Fast (Reasoning)**, **Grok 4.1 Fast (Non-Reasoning)**, Grok 4, Grok-3, Grok-3 Fast, Grok-3 Mini, Grok-3 Mini Fast
74 74 **Google Gemini**:
75 -Gemini 3.5 Flash, Gemini 3.1 Pro, Gemini 3 Flash, Gemini 3.1 Flash-Lite, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash-Lite
75 +Gemini 3.8 Flash, Gemini 3.7 Flash, Gemini 3.6 Flash, Gemini 3.5 Flash, Gemini 3.1 Pro, Gemini 3 Flash, Gemini 3.5 Flash-Lite, Gemini 3.1 Flash-Lite, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash-Lite
76 76 **DeepSeek**:
77 77 DeepSeek V3
78 78
79 79 ## Lead Management Dashboard — Turn Chat Traffic Into a Real Lead List
@@ -170,9 +170,9 @@
170 170 == Frequently Asked Questions ==
171 171
172 172 = What AI models does MxChat support? =
173 173
174 -MxChat supports 100+ AI models including OpenAI GPT-5.5, GPT-5.1 Chat Latest, GPT-5, Anthropic Claude Opus 4.8, Claude Sonnet 4.6, Claude Haiku 4.5, Google Gemini 3.5 Flash, Gemini 3.1 Pro, xAI Grok 4, Grok 3, DeepSeek V3, and many more. With OpenRouter integration, you get access to models from OpenAI, Anthropic, Google, Meta, Mistral, and other providers with a single API key.
174 +MxChat supports 100+ AI models including OpenAI GPT-5.5, GPT-5.1 Chat Latest, GPT-5, Anthropic Claude Opus 4.8, Claude Sonnet 4.6, Claude Haiku 4.5, Google Gemini 3.8 Flash, Gemini 3.1 Pro, xAI Grok 4, Grok 3, DeepSeek V3, and many more. With OpenRouter integration, you get access to models from OpenAI, Anthropic, Google, Meta, Mistral, and other providers with a single API key.
175 175
176 176 = How do I get API keys for the AI chatbot? =
177 177
178 178 For OpenAI, visit platform.openai.com and create an account. For Anthropic Claude, visit console.anthropic.com. For Google Gemini, visit ai.google.dev. For xAI Grok, visit x.ai. For DeepSeek, visit platform.deepseek.com. For OpenRouter (100+ models), visit openrouter.ai. Each provider offers different pricing tiers and free credits for new users.
@@ -190,9 +190,9 @@
190 190 Yes. MxChat includes full WooCommerce integration. The AI chatbot can be trained on your product catalog including titles, descriptions, pricing, SKUs, categories, and custom fields. Enable auto-sync to automatically update the knowledge base when products change. Your chatbot can answer questions about products, pricing, availability, and help customers find what they need.
191 191
192 192 = Can I customize the AI chatbot appearance? =
193 193
194 -Yes. MxChat offers extensive customization options including custom colors, chatbot icon, AI avatar, chat bubble size, light/dark/system themes, positioning (left/right), custom CSS, greeting messages, placeholder text, and widget layouts. Use the built-in AI Theme Generator to describe your ideal design and let AI create custom styling automatically.
194 +Yes. The free plugin lets you set the widget position (left or right), the greeting and placeholder text, and add your own custom CSS. The MxChat Theme Customizer add-on (Pro) handles the rest of the look: custom colors for around 20 widget elements, your own chatbot icon and avatar image, chat bubble size, light, dark and system themes, widget layouts, and a built-in CSS editor. Its AI Theme Generator lets you describe the design you want and generates the theme for you.
195 195
196 196 = How do I add the chatbot to my WordPress site? =
197 197
198 198 You can add the chatbot using the shortcode `[mxchat_chatbot floating="yes"]` for a floating widget or `[mxchat_chatbot floating="no"]` for an embedded chat. Alternatively, enable "Append to Body" in settings to automatically display the chatbot on all pages without shortcodes.
@@ -267,44 +267,30 @@
267 267 Yes. MxChat's Custom Provider setting accepts any OpenAI-compatible API endpoint, including locally hosted ones like Ollama, LM Studio, vLLM, and LocalAI. Point the Custom Provider base URL at your server, choose your chat model, and optionally enable "Use custom provider for embeddings" with a local embedding model such as nomic-embed-text or mxbai-embed-large to keep the entire pipeline — chat and vector search — on your own hardware with no per-token costs.
268 268
269 269 = Is there a free version of MxChat? =
270 270
271 -Yes. MxChat is available for free on the WordPress plugin repository with full AI chatbot functionality. Premium add-ons are available for advanced features like the AI Theme Generator and priority support.
271 +Yes. MxChat is available for free on the WordPress plugin repository with full AI chatbot functionality. Premium add-ons are available for advanced features such as the Theme Customizer with its AI Theme Generator, and come with priority support.
272 272
273 -== Developer Hooks & Filters ==
273 += Can a license holder turn MxChat Pro off for one of their sites? =
274 274
275 -MxChat provides WordPress filter hooks so developers can extend and customize chatbot behavior without modifying core plugin files. [View full documentation with code examples](https://mxchat.ai/mxchat-developer-hooks-filters/).
275 +Yes. On the Licenses page of their mxchat.ai account, the license holder can turn each site on or off and block new sites from activating the key. A site that is turned off shows its admin a notice and pauses Pro after three days, with settings and knowledge left as they are; turning it back on restores Pro within the hour, or straight away with Check license now on Pro & Extensions. Only the license holder can turn a site back on. Sites on a version older than 3.2.25 do not check in, so turning one off takes effect after it updates.
276 276
277 -= mxchat_before_process_post =
277 +== Developer Hooks & Filters ==
278 278
279 -Runs during knowledge base indexing and lets you modify a post's data before MxChat processes it. Use this to include custom field data (e.g. product specifications or ACF fields), strip internal content you don't want the chatbot to learn, or transform posts based on bot ID. Receives the WP_Post object and the bot ID.
279 +MxChat has filter hooks for developers who want to extend it without editing plugin files, including mxchat_before_process_post (change a post before it is indexed), mxchat_system_instructions (adjust the system prompt for each reply), mxchat_gemini_safety_settings (Gemini safety thresholds) and mxchat_reference_shortcodes (shortcodes whose referenced content is imported). Every hook is documented with code examples at [mxchat.ai](https://mxchat.ai/mxchat-developer-hooks-filters/).
280 280
281 -= mxchat_system_instructions =
281 +== External services ==
282 282
283 -Dynamically modify the system prompt before every AI response. Use this to inject live data such as business hours, inventory status, or user-specific context into the prompt at runtime. Receives the instructions text, bot ID, and session ID. MxChat also supports WordPress shortcodes directly in the system prompt field — any registered shortcodes are automatically expanded before being sent to the AI.
283 +To answer chats and generate content, MxChat sends requests with your own API key to the AI provider you choose: the visitor's message, the recent conversation and the matching knowledge-base text.
284 284
285 -## ✅ Get Started with MxChat AI Chatbot Today
286 -
287 -Installing MxChat for WordPress takes just a few clicks. Get started with our free plan and upgrade anytime to access our complete add-on ecosystem and premium features.
288 -
289 -## 💰 Pricing
290 -
291 -Most powerful features are included in the free plan. Upgrade to Pro for the complete add-on ecosystem and advanced capabilities.
292 -[View all pricing options](https://mxchat.ai/)
293 -
294 -== Use of Third-Party Services ==
295 -
296 -This plugin connects to AI service providers to generate responses:
297 -
298 -**Service Providers:**
299 -- [OpenRouter](https://openrouter.ai/) - [Terms](https://openrouter.ai/terms) | [Privacy](https://openrouter.ai/privacy)
300 285 - [OpenAI](https://openai.com/) - [Terms](https://openai.com/policies/terms-of-use/) | [Privacy](https://openai.com/policies/privacy-policy/)
301 286 - [Anthropic](https://anthropic.com/) - [Terms](https://www.anthropic.com/terms) | [Privacy](https://www.anthropic.com/privacy)
302 287 - [Google](https://ai.google.dev/) - [Terms](https://ai.google.dev/terms) | [Privacy](https://policies.google.com/privacy)
303 -- [X.AI](https://x.ai/) - [Terms](https://x.ai/terms-of-service) | [Privacy](https://x.ai/privacy-policy)
288 +- [xAI](https://x.ai/) - [Terms](https://x.ai/terms-of-service) | [Privacy](https://x.ai/privacy-policy)
304 289 - [DeepSeek](https://deepseek.com/) - [Terms](https://deepseek.com/terms) | [Privacy](https://deepseek.com/privacy)
290 +- [OpenRouter](https://openrouter.ai/) - [Terms](https://openrouter.ai/terms) | [Privacy](https://openrouter.ai/privacy)
305 291
306 -Please ensure compliance with applicable terms and data privacy laws.
292 +Pro license management uses mxchat.ai, the plugin's own website, and only on sites where a Pro license key has been entered. Activate License and Deactivate License send the key, the purchase email and the site's domain when the administrator clicks them; the Pro & Extensions page checks whether the domain is linked; and once a day the site asks whether its domain is still switched on, also sending the plugin version. No visitor data or site content is sent, and a network error or outage never changes anything on the site. mxchat.ai - [Terms](https://mxchat.ai/terms-of-service/) | [Privacy](https://mxchat.ai/privacy-policy/)
307 293
308 294 == Screenshots ==
309 295
310 296 1. **Chat Transcripts Insights** - Review and analyze conversations insights to see engagement rate, peak activity, and user distribution.
@@ -317,12 +303,96 @@
317 303 *(Note: Screenshots will be added in future updates)*
318 304
319 305 == Changelog ==
320 306
307 += 3.2.25 - October 10, 2026 =
308 +* New: License holders can turn MxChat Pro on or off for each of their sites from the Licenses page of their mxchat.ai account. The site checks once a day, warns its admin and pauses Pro after three days unless it is turned back on.
309 +* New: A switch on the Page Cache Compatibility card turns off the automatic page-cache clear that runs when MxChat settings are saved, for large sites that manage their own cache.
310 +* New: Re-import affected entries can also refresh entries whose page was edited after it was imported, for sites that keep auto-sync off.
311 +* Fixed: Gemini chatbots no longer stop with "The response format was unexpected" when Google's safety filter flags an ordinary answer. The filter now blocks only high-risk content.
312 +* Fixed: A visitor message with a web link and a word like "read" or "documentation" is no longer treated as a PDF and answered with a PDF error.
313 +* Fixed: MxChat's chat styles no longer change the rest of your site, such as code blocks on your own pages turning black.
314 +* Fixed: On a page with an embedded chatbot, the floating bubble of the same bot is no longer added. It opened but could not send messages.
315 +* Fixed: Links in the chat widget are correct for a www address at the end of a paragraph and for a web address written in bold.
316 +* Fixed: WordPress Content import and auto-sync now include text from synced patterns and WoodMart HTML Blocks. Save or import a page again to update its entry.
317 +* Fixed: Saving a product no longer removes its Custom Product Tabs text from the chatbot's knowledge.
318 +* Fixed: With a Gemini 3 model, web search and image search use the key words of the visitor's request instead of the whole sentence.
319 +* Fixed: The Knowledge list's PDF filter shows PDF pages again, and uploaded files appear by name instead of a View Source link that led nowhere.
320 +* Fixed: Opening the Leads tab no longer writes a notice to the debug log when WordPress debugging is on.
321 +* Improved: Gemini 2.5 Pro, Flash and Flash-Lite are marked as no longer offered to new Google API users, and the admin is warned by name if Google refuses the selected model.
322 +* Improved: A chatbot still set to a retired AI model now uses that model's current replacement on every request.
323 +* Improved: The Script Loading card explains that a cache plugin's Delay JavaScript setting must leave MxChat's chat script out, or the chatbot stays hidden until the visitor interacts.
321 324
325 += 3.2.24 - October 2, 2026 =
326 +* Fixed: A live-agent message Slack refuses (deleted or archived channel, revoked token) now tells the visitor instead of being reported as sent, ends the handoff so the chatbot takes over again, and shows the error on the Slack tab. Slack messages also no longer begin with stray characters.
327 +* Fixed: The WordPress personal data export now includes visitors who filled in the pre-chat form without chatting (email, name and consent record).
328 +* Fixed: A media file whose knowledge entry was deleted is indexed again the next time it is saved, instead of being skipped as unchanged.
329 +* Fixed: View indexed content now works for entries whose address carries encoded characters (non-Latin pages, addresses with spaces) and for manually added Pinecone entries, and shows a long entry in full.
330 +* Fixed: Links in chatbot replies now open in Safari on iPhone, iPad and Mac when Open Links in New Tab is on. Safari's pop-up blocker was silently blocking them.
331 +* Fixed: The video card for a matching YouTube entry now appears on streamed answers from GPT-5 and GPT-6 models. Before, it needed AI Tools on or streaming off.
332 +* Fixed: A chat message containing a document link no longer fails on chatbots embedded with MxChat Anywhere.
333 +* Fixed: Answers name an uploaded document or PDF in plain text instead of showing its file name as a link, including files uploaded before this update.
334 +* Fixed: A PDF added through PDF Upload keeps its file name. Its pages are listed under the file, answers name the file and page, and uploading the same PDF again replaces its pages instead of adding a second copy. PDFs uploaded earlier are left as they are: upload once more for a clean set, then delete the old pages.
335 +* Fixed: On a Pinecone document index, part numbers and codes that start with digits are found again, such as an order number like 5872EF or 4471AB12 for a part printed 4471-AB-12. Entries written earlier keep their old codes: run Migrate again or re-save the entry to refresh them.
336 +* Fixed: Sites embedding through a Custom Provider can add knowledge through the REST API without an OpenAI key, and a Pinecone document index is sized from the custom model's real dimension. The Knowledge listing, search, action phrases and import notice follow the custom model too.
337 +* New: Document Upload and PDF Upload each have an optional Source URL field. Give the page the file lives on and answers drawn from it link to that page.
338 +* New: WooCommerce product tags are included in each product's knowledge-base text, beside its categories. Re-save or re-import a product to pick them up.
339 +* New: Re-import affected entries, on the Knowledge screen and as the wp mxchat kb-reimport command. It finds entries that earlier versions stored with currency signs or accents missing, HTML character codes left in, or right-to-left PDF text saved backwards. It shows the list first and changes nothing until you confirm. Uploaded files are not kept on the server, so for those only text direction can be repaired.
340 +* Improved: Delete old index now refuses while Multi-Bot bots still use that index, and names them.
341 +* Improved: With Multi-Bot on a site that keeps knowledge in the WordPress database, the Knowledge screen now says the content is shared with all bots. Per-bot separation needs Pinecone or an OpenAI Vector Store.
342 +* Improved: Admin polish. The warning status pill is styled, the importer's selection counter has its spacing, the Pinecone card's status follows the host you typed, and namespace lists keep a stable order.
322 343
344 += 3.2.23 - September 29, 2026 =
345 +* Fixed: Pressing Enter with an empty message no longer locks the chat input. The box stays usable, and only a real message disables it while the reply is generated. A message made only of spaces or blank lines now counts as empty too, so nothing is sent to the model for it.
346 +* Improved: Pages imported from a web address or a sitemap now remember their own page title (from the page's title tag or its social-sharing title, with the site name trimmed off). Add-ons that name a source, such as MxChat AI Search's source cards, can show the real title instead of a guess made from the address.
347 +* Improved: On a Pinecone document index, part numbers typed without their spaces, hyphens or dots now find the right record. R165321320 reaches the records that describe R1653 213 20 or the R1653 family, in any letter case, and an exact match always ranks above a family match. Records copied or added from now on carry the matching tokens; run Migrate again to add them to records copied earlier.
348 +* Improved: Migrate now copies your vector index into the document index while the chatbot keeps answering from the vector index. Nothing switches until you save the Pinecone settings, and saving is held back while a copy into that index is still running unless you tick Switch anyway. An interrupted copy continues from where it stopped, each request copies several batches and retries a dropped connection on its own, the real reason is shown if it does stop, and the progress line reports records remaining, records in other namespaces that are not copied, and the count the document index itself reports when done.
349 +* Fixed: Create index for me no longer fails with an HTTP 409 when the Index Name field still holds your vector index's name. Switching to the document index type suggests a free name ending in -docs, an existing name is refused in plain words with a suggestion filled in, and creating or checking an index no longer moves the chatbot to it before you save.
350 +* New: The GPT-6 models are in the model picker: GPT-6 Astra (recommended), GPT-6 Sol and GPT-6 Luna. They work for chat, the content generator and the editor assistant, and the request settings each one requires are applied automatically.
351 +* Improved: When AI Tools are on, the model is now told how many tool calls it may make for a message, is told how many remain after each round, and is asked for a single call when only one is left. Before, a model could request several lookups at once when only one was allowed, have the rest refused, and answer from partial results.
352 +* Fixed: Delete old index now checks every namespace of the old vector index, not just the one copied last. It refuses, and names the namespace, while any namespace with records has no finished copy whose count matches. Before, a site with several namespaces (one per bot, or a namespace from an earlier setup) could delete records that were never copied.
353 +* New: Migrate can copy every namespace of the vector index in one run. When the source index holds records in other namespaces, the Pinecone card offers a Copy every namespace switch beside Migrate. Each namespace is copied into the same-named namespace of the document index, so every bot keeps reading its own; the progress line shows which namespace is being copied and the counts for each, an interrupted copy continues with the right namespace, and a namespace already copied is kept rather than copied again.
323 354
355 += 3.2.22 - September 20, 2026 =
356 +* New: An opt-in Pinecone Document index with full-text search, so a question carrying a part number, SKU or code finds the record that holds it. Create index for me, Check index and Migrate move an existing index across with no re-embedding, and classic vector indexes are untouched.
357 +* New: The chatbot knows the current date and time in your site's timezone, so it can tell past events from upcoming ones. The line travels with each message and does not affect prompt caching; {current_date} and {current_datetime} also work as placeholders in the instructions.
358 +* New: Knowledge base content can be restricted to any role on your site, including custom ones from User Role Editor, Members or a membership plugin. The built-in Subscribers and Above through Administrators Only choices behave exactly as before.
359 +* New: Every post and page has a Knowledge base access setting in the MxChat box on its edit screen, so content without tags is no longer stuck as public. Where both apply, the stricter of the tag rule and the page setting wins.
360 +* New: PDF, Word, text and Markdown files already in your media library can be imported into the knowledge base, with the text read from the file itself. The Media source now lists only those four types.
361 +* New: Switch on Media under Advanced Custom Post Sync Settings and a supported file adds itself to the knowledge base on upload, updates its entry when replaced and is removed when deleted.
362 +* New: The pre-chat lead form can be shown to signed-in visitors too, pre-filled from their profile, and the email address can be made optional so you can collect a name and consent alone. Leads captured either way appear in the Leads tab and the CSV export.
363 +* New: The API can remove knowledge base entries by source URL, singly or up to 50 at a time, so a document deleted in SharePoint, Drive or your CMS can be taken out of the chatbot by your sync job. Deleting a URL that is not stored is reported as nothing removed, not an error.
364 +* New: Lead capture submissions can be read over the API, with paging and a since filter, so leads can be synced into a CRM or spreadsheet automatically.
365 +* New: Gemini 3.8 Flash, 3.7 Flash and 3.6 Flash join the model picker, with 3.8 Flash as the recommended Gemini default and 3.5 Flash-Lite as the lowest-cost choice. Sites already on 3.5 Flash keep it until they pick something else.
366 +* New for developers: Add-ons can put a button in the chat toolbar with the mxchat_chat_toolbar_items filter, and the mxchat:toolbar-ready and mxchat:opened page events mean no more watching the page or running requests on every view. The WooCommerce cart button is the first to use it.
367 +* New for developers: Add-ons can append to a chat transcript with save_session_message, shape what humans read with mxchat_transcript_user_message and mxchat_ai_conversation_history, and add sections to the Telegram and Slack handoff card with mxchat_handoff_card_sections.
368 +* Security: Hardened how links are written into the chat window and how a visitor's own earlier messages are restored after a page reload. Ordinary links, encoded addresses and file names with brackets look and behave exactly as before.
369 +* Security: Hardened per-visitor rate limiting and its hourly reset. A visitor's allowance is now counted against the address the request really came from, with Cloudflare handled automatically, and daily, weekly and monthly limits hold for the full period; other proxies can use the new mxchat_client_ip filter.
370 +* Fixed: Restricting a knowledge entry to a custom role no longer leaves it readable by every signed-in visitor.
371 +* Fixed: Choosing Media in the WordPress Content importer now lists your files instead of coming back empty on every site.
372 +* Fixed: With Pinecone, the Knowledge Entries heading shows the vector count Pinecone reports instead of 50 for any index over 500 vectors, paging uses Previous and Next and continues where the last page ended, and a bot with its own empty namespace shows 0.
373 +* Fixed: With Contextual Awareness on, sending a message on a page with a video or audio player no longer starts an invisible copy playing or downloads the media again. The page text is read from an inert copy, gathered once per page.
374 +* Fixed: The function-calling loop no longer sends an invalid request when the per-turn tool budget is reached. Every tool call gets a result, the model answers from what it has, and a provider failure after a tool has run is logged even with developer mode off.
375 +* Fixed: Words joined with underscores, such as file names, SKUs and placeholders, no longer lose their underscores and turn italic. A backslash writes an underscore, asterisk, tilde or backtick literally, and anything inside backticks is shown exactly as written.
376 +* Improved: The Hybrid keyword boost now applies to Pinecone document indexes as well as the WordPress database, and the Transcripts and Testing panels label each match Vector, Keyword or Both.
377 +* Improved: With AI Tools active, questions that need no tool are generated once instead of twice, so replies arrive sooner and ordinary turns use roughly half the output tokens. Those replies arrive as one message; the mxchat_fc_keep_first_hop_text filter restores the old behaviour.
378 +* Improved: Gemini 3 series models are asked for a low thinking level on every chat reply, natively and through the OpenAI-compatible provider, so you stop paying for hidden reasoning tokens. A developer can change it with the mxchat_gemini_thinking_level filter.
379 +* Improved: The API Access screen documents every endpoint in one place, with ready-to-run examples for removing a deleted document and syncing new leads.
380 +* Improved: The plugin listing's appearance FAQ now says which customization options are in the free plugin and which come with the Theme Customizer add-on.
381 +* Changed: The plugin now declares WordPress 5.3 and PHP 7.4 as its minimum versions, matching what the code has required for some time. Every MxChat add-on already required PHP 7.4.
324 382
383 += 3.2.21 - September 6, 2026 =
384 +* Fixed: Ending a Telegram live agent conversation, from MxChat or from Telegram itself, now retires its topic and returns the visitor to the AI. The visitor's next request used to post into the closed topic, where agents could not reply.
385 +* Fixed: The conversation history shared with Telegram agents now always arrives, sent in parts within Telegram's message limit as readable text. A long conversation could previously drop the entire handoff card without a trace.
386 +* Fixed: Slack agents who reply in a thread on a handoff message now reach the visitor. Those threaded replies were silently discarded in the default per-conversation mode.
387 +* Fixed: With Chat Persistence on, Start new chat now leaves only your greeting, and a restored conversation keeps the greeting above it. A returning visitor was previously left with one old reply and no greeting.
388 +* Fixed: The Open Telegram settings button on the webhook security notice now opens the Telegram settings tab instead of the onboarding screen.
389 +* Improved: Telegram handoffs share the last 10 messages, labeled with the count, and any Telegram delivery failure is shown on the Telegram settings screen with Telegram's own explanation. Failures used to leave no trace anywhere.
390 +* Improved: When your site rejects Telegram's incoming requests, the Telegram settings screen and a dashboard notice now say how many, when, why, and how to fix it. Sites behind Cloudflare with no webhook secret previously dropped every reply in silence.
391 +* Improved: When a Slack message cannot be relayed to the visitor, such as an edit or a file upload, the agent now sees a short note in the channel explaining how to get it through. Dropped replies are logged when debug mode is on.
392 +* Improved: If your shared Slack handoff channel is private, the Slack settings screen now warns that your Slack app needs the message.groups event subscription. Without it, handoffs post but agent replies never reach the visitor.
393 +* Improved: On the Pro and Extensions page, the button for an add-on you have not installed is now Get the ZIP from My Account and opens your account Downloads page. It used to open the same page as the Documentation button.
394 +
325 395 = 3.2.20 - August 28, 2026 =
326 396 * New: The knowledge base can now populate and maintain your OpenAI Vector Store — every addition, edit and deletion is mirrored automatically, and an Import Existing Knowledge Base button (or the wp mxchat vectorstore-import command) uploads what you already have in resumable batches; role-restricted entries are never uploaded.
327 397 * New: Chat answers can no longer link to pages that do not exist — every finished answer, streaming included, is checked and links to your own site that would 404 are removed while the sentence stays intact.
328 398 * New: A Strip Unapproved Links setting separates link enforcement from Citation Links, so invented links are removed even with citations off; on for new installs, opt-in for existing sites.
@@ -677,11 +747,22 @@
677 747 Older releases are archived in the plugin's full version history on WordPress.org.
678 748
679 749 == Upgrade Notice ==
680 750
751 += 3.2.25 =
752 +Fixes Gemini chatbots stopping with "The response format was unexpected" on ordinary answers, chat links and PDF detection, and chat styles changing the rest of your site. License holders can now turn MxChat Pro on or off for each site from their mxchat.ai account. Also adds a page-cache switch and better imports for synced patterns, WoodMart blocks and product tabs.
681 753
754 += 3.2.24 =
755 +Fixes links in chatbot replies not opening in Safari on iPhone, iPad and Mac, and live-agent messages being reported as sent when Slack refused them. Uploaded documents and PDFs are now named properly in answers, can carry a Source URL, and no longer duplicate when re-uploaded, and part numbers starting with digits work again on a Pinecone document index. Adds Re-import affected entries, which rebuilds knowledge entries that earlier versions stored with missing accents, HTML character codes or reversed right-to-left text.
682 756
757 += 3.2.23 =
758 +Fixes the chat input locking up for good when a visitor pressed Enter on an empty message. On a Pinecone document index, Delete old index now refuses while any namespace is still uncopied, Migrate can copy every namespace in one run and continues where it stopped, part numbers typed without spaces find their records, and Create index for me suggests a free name instead of failing on an existing one. Adds the GPT-6 models (Astra, Sol and Luna) to the model picker, and tells the chatbot its AI Tools call budget so it no longer answers from partial results when only one call is allowed.
683 759
760 += 3.2.22 =
761 +Adds the current date and time to every chat, knowledge restrictions for custom roles and single pages, media library imports with auto-sync, and an optional Pinecone full-text document index. Also hardens chat links and rate limiting, fixes function calling and underscore rendering, and adds Gemini 3.8 Flash. Now requires WordPress 5.3 and PHP 7.4.
762 +
763 += 3.2.21 =
764 +Live agent chat is more reliable on both channels: Telegram conversations can be ended and restarted cleanly, conversation history always arrives, and both Telegram delivery failures and rejected incoming requests now show on the settings screen. Slack agents can reply in thread and are told when a message could not be relayed. Start new chat now works correctly with Chat Persistence on.
684 765
685 766 = 3.2.20 =
686 767 The knowledge base can now populate and maintain your OpenAI Vector Store — every change is mirrored automatically and a resumable import uploads what you already have, where before the store was read-only. Chat answers can no longer link to pages that do not exist, a new Webhook destination routes live-agent handoffs to your own helpdesk or automation flow, and the chatbot is placeable as a Gutenberg block or an Elementor widget. Also adds a consent checkbox for the pre-chat form, completes screen reader support for the conversation, and fixes Pinecone reads on serverless indexes. Re-import Persian, Hindi and other Indic-script content to repair entries indexed earlier.
687 768