| @@ -1,20 +1,20 @@ | ||
| 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.12 | |
| 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 | -MxChat is the best free AI chatbot and content generation plugin for WordPress in 2026. Train ChatGPT, Claude, Gemini, or Grok on your website content. Generate full blog posts and landing pages with AI. WooCommerce ready with RAG knowledge base, live chat handoff, and 100+ AI models. | |
| 12 | +Free AI chatbot and content generation for WordPress. Train ChatGPT, Claude, Gemini or Grok on your content. WooCommerce ready with RAG. | |
| 13 | 13 | |
| 14 | 14 | == Description == |
| 15 | 15 | |
| 16 | -**MxChat is the most powerful free AI chatbot and content generation plugin for WordPress** — connecting your website to ChatGPT, Claude, Gemini, Grok, DeepSeek, and 100+ AI models through a single, easy-to-use interface. Train your AI chatbot on your website content, WooCommerce products, PDFs, and more using advanced RAG (Retrieval-Augmented Generation) technology. Now with a built-in AI Content Generator to create full blog posts and landing pages complete with images, SEO metadata, and inline AI editing. | |
| 16 | +**MxChat is the most powerful free AI chatbot and content generation plugin for WordPress** — connecting your website to ChatGPT, Claude, Gemini, Grok, DeepSeek, and 100+ AI models through a single, easy-to-use interface. Train your AI chatbot on your website content, WooCommerce products, PDFs, YouTube videos, and more using advanced RAG (Retrieval-Augmented Generation) technology. Now with a built-in AI Content Generator to create full blog posts and landing pages complete with images, SEO metadata, and inline AI editing. | |
| 17 | 17 | |
| 18 | 18 | [Documentation](https://mxchat.ai/documentation/) | [Demo Videos](https://www.youtube.com/@MxChat/videos) |
| 19 | 19 | |
| 20 | 20 | ## Why Choose MxChat as Your WordPress AI Chatbot? |
| @@ -19,9 +19,9 @@ | ||
| 19 | 19 | |
| 20 | 20 | ## Why Choose MxChat as Your WordPress AI Chatbot? |
| 21 | 21 | |
| 22 | 22 | ✅ **6 Major AI Providers in One Plugin**: OpenRouter, OpenAI GPT, Claude, Gemini, xAI Grok, and DeepSeek - switch between 100+ models instantly |
| 23 | -✅ **Train on Your Website Data**: Advanced RAG technology learns from sitemaps, PDFs, URLs, or manual input for ultra-relevant responses | |
| 23 | +✅ **Train on Your Website Data**: Advanced RAG technology learns from sitemaps, PDFs, URLs, YouTube videos, or manual input for ultra-relevant responses | |
| 24 | 24 | ✅ **Live Agent Handoff via Slack**: Seamlessly escalate from AI to human support when customers need personal assistance |
| 25 | 25 | ✅ **Real-Time Debug Panel**: See exactly what your chatbot retrieves and triggers with our admin testing interface |
| 26 | 26 | ✅ **Boost Sales with WooCommerce**: Product cards, cart management, and AI-powered shopping assistance |
| 27 | 27 | ✅ **AI Content Generator**: Create full blog posts and landing pages with AI-generated images, SEO metadata, and real-time preview editing |
| @@ -42,17 +42,8 @@ | ||
| 42 | 42 | - [Image Analysis Add-On](https://mxchat.ai/add-ons/mxchat-vision/) – Enable AI-powered image analysis and OCR inside chats |
| 43 | 43 | |
| 44 | 44 | 👉 [Visit our website to view all add-ons](https://mxchat.ai) |
| 45 | 45 | |
| 46 | -## 🔥 What's New in Version 3.2.9 | |
| 47 | - | |
| 48 | -- **NEW: Stop Button for Streaming Responses** — visitors can halt a streaming answer mid-reply; the send button becomes a Stop control while the bot is typing, keeping the text already written | |
| 49 | -- **NEW: "Images per Article" Slider** — choose how many images (1–5) the Content Generator places in each article, instead of the AI deciding for you | |
| 50 | -- **NEW: Download Transcript Toggle** — show or hide the chat menu's "Download Transcript" item from settings (on by default) | |
| 51 | -- **FIXED: Google Search Snippets** — the chat widget's greeting and quick-question text no longer leak into your pages' search-result snippets | |
| 52 | -- **FIXED: In-Chat Document Upload** — PDF and Word uploads from the chat toolbar work again, whether or not you're signed in | |
| 53 | -- **Plus:** right-to-left admin-navigation fix, a rebuilt translation template so translators stop losing work on updates, satisfaction-prompt and message-loss fixes, and PHP 8.2 cleanup | |
| 54 | - | |
| 55 | 46 | ## Core Features That Set MxChat Apart |
| 56 | 47 | |
| 57 | 48 | 🟢 **100+ AI Models** – Access ChatGPT, Claude, Gemini, Grok, DeepSeek, and 100+ models from OpenRouter with a single plugin |
| 58 | 49 | 🟢 **Lead Management Dashboard** – Dedicated Leads tab inside Transcripts shows every captured email and name deduplicated by lead, with filters, bulk delete, CSV export, and one-click jump to each lead's latest conversation |
| @@ -80,9 +71,9 @@ | ||
| 80 | 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 |
| 81 | 72 | **X.AI**: |
| 82 | 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 |
| 83 | 74 | **Google Gemini**: |
| 84 | -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 | |
| 85 | 76 | **DeepSeek**: |
| 86 | 77 | DeepSeek V3 |
| 87 | 78 | |
| 88 | 79 | ## Lead Management Dashboard — Turn Chat Traffic Into a Real Lead List |
| @@ -139,23 +130,8 @@ | ||
| 139 | 130 | - Lightweight vanilla JS widget with zero dependencies — no jQuery needed on the target site |
| 140 | 131 | |
| 141 | 132 | **Ideal for** SaaS products with a WordPress blog but a separate web app, e-commerce brands on Shopify, documentation sites, or any business that needs their chatbot beyond WordPress. |
| 142 | 133 | |
| 143 | -## Powerful Add-On Ecosystem | |
| 144 | - | |
| 145 | -**Pro Add-Ons:** | |
| 146 | -🟢 **MCP Server** – Expose your MxChat install as a Model Context Protocol server so Claude, ChatGPT, and Claude Code can list transcripts, push knowledge, and inspect bots through a JSON-RPC 2.0 endpoint with OAuth + bearer auth — no per-message fees, no middleman API. Includes a WooCommerce extension for product, order, and customer lookups. | |
| 147 | -🟢 **Advanced Content Editor** – Google Search Console integration with per-page impressions, clicks, and search queries. Smart internal linking, AI readability optimization, image ALT text generation, and advanced SEO checks | |
| 148 | -🟢 **Multi-Bot Manager** – Create and manage multiple specialized chatbots with dedicated knowledge databases for different purposes (support, sales, technical, etc.) | |
| 149 | -🟢 **Video Generation** – Generate stunning AI videos using Google's Veo 2 and Veo 3 models with audio support and multiple aspect ratios | |
| 150 | -🟢 **Admin Assistant** – ChatGPT-like interface in WordPress admin with thread management and image generation | |
| 151 | -🟢 **Chat Themes** – Visual design editor with AI-powered chatbot theme generation from natural language | |
| 152 | -🟢 **MxChat Forms** – Create chatbot-triggered forms for lead capture and support tickets | |
| 153 | -🟢 **Chat Moderation** – Advanced security with email/IP banning and content filtering | |
| 154 | -🟢 **MxChat Anywhere** – Deploy your chatbot on any website with one script tag — Shopify, Squarespace, Wix, static HTML, and custom web apps with Shadow DOM style isolation | |
| 155 | -🟢 **Perplexity Integration** – Real-time web search with authoritative, well-sourced responses | |
| 156 | -🟢 **MxChat Trigger** – Turn any element into a conversation starter — chat trigger buttons and links that open MxChat and send predefined messages, perfect for CTAs and guided experiences | |
| 157 | - | |
| 158 | 134 | ## 📱 Mobile-Friendly & Fully Customizable |
| 159 | 135 | |
| 160 | 136 | MxChat’s chatbot widget adapts seamlessly to all devices — desktop, tablet, or mobile. Customize colors, greetings, and placement to match your brand and provide a smooth experience across your entire website. |
| 161 | 137 | |
| @@ -184,43 +160,8 @@ | ||
| 184 | 160 | - RAG support & contextual awareness |
| 185 | 161 | |
| 186 | 162 | Whether you're running a small business or launching a new online store, MxChat’s free plan gives you the tools to offer intelligent customer support and grow your business — without paying a cent. |
| 187 | 163 | |
| 188 | -== Developer Hooks & Filters == | |
| 189 | - | |
| 190 | -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/). | |
| 191 | - | |
| 192 | -= mxchat_before_process_post = | |
| 193 | - | |
| 194 | -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. | |
| 195 | - | |
| 196 | -= mxchat_system_instructions = | |
| 197 | - | |
| 198 | -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. | |
| 199 | - | |
| 200 | -## ✅ Get Started with MxChat AI Chatbot Today | |
| 201 | - | |
| 202 | -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. | |
| 203 | - | |
| 204 | -## 💰 Pricing | |
| 205 | - | |
| 206 | -Most powerful features are included in the free plan. Upgrade to Pro for the complete add-on ecosystem and advanced capabilities. | |
| 207 | -[View all pricing options](https://mxchat.ai/) | |
| 208 | - | |
| 209 | -== Use of Third-Party Services == | |
| 210 | - | |
| 211 | -This plugin connects to AI service providers to generate responses: | |
| 212 | - | |
| 213 | -**Service Providers:** | |
| 214 | -- [OpenRouter](https://openrouter.ai/) - [Terms](https://openrouter.ai/terms) | [Privacy](https://openrouter.ai/privacy) | |
| 215 | -- [OpenAI](https://openai.com/) - [Terms](https://openai.com/policies/terms-of-use/) | [Privacy](https://openai.com/policies/privacy-policy/) | |
| 216 | -- [Anthropic](https://anthropic.com/) - [Terms](https://www.anthropic.com/terms) | [Privacy](https://www.anthropic.com/privacy) | |
| 217 | -- [Google](https://ai.google.dev/) - [Terms](https://ai.google.dev/terms) | [Privacy](https://policies.google.com/privacy) | |
| 218 | -- [X.AI](https://x.ai/) - [Terms](https://x.ai/terms-of-service) | [Privacy](https://x.ai/privacy-policy) | |
| 219 | -- [DeepSeek](https://deepseek.com/) - [Terms](https://deepseek.com/terms) | [Privacy](https://deepseek.com/privacy) | |
| 220 | - | |
| 221 | -Please ensure compliance with applicable terms and data privacy laws. | |
| 222 | - | |
| 223 | 164 | == Installation == |
| 224 | 165 | |
| 225 | 166 | 1. Upload the `mxchat-basic` folder to the `/wp-content/plugins/` directory. |
| 226 | 167 | 2. Activate the plugin through the 'Plugins' menu in WordPress. |
| @@ -229,9 +170,9 @@ | ||
| 229 | 170 | == Frequently Asked Questions == |
| 230 | 171 | |
| 231 | 172 | = What AI models does MxChat support? = |
| 232 | 173 | |
| 233 | -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. | |
| 234 | 175 | |
| 235 | 176 | = How do I get API keys for the AI chatbot? = |
| 236 | 177 | |
| 237 | 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. |
| @@ -249,9 +190,9 @@ | ||
| 249 | 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. |
| 250 | 191 | |
| 251 | 192 | = Can I customize the AI chatbot appearance? = |
| 252 | 193 | |
| 253 | -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. | |
| 254 | 195 | |
| 255 | 196 | = How do I add the chatbot to my WordPress site? = |
| 256 | 197 | |
| 257 | 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. |
| @@ -318,14 +259,39 @@ | ||
| 318 | 259 | Yes. MxChat fully supports Advanced Custom Fields. ACF field data is automatically included when importing content. Use the ACF Field Settings to control which custom fields are included or excluded from the knowledge base—perfect for hiding private notes or internal data from the chatbot. |
| 319 | 260 | |
| 320 | 261 | = What embedding models does MxChat support? = |
| 321 | 262 | |
| 322 | -MxChat supports multiple embedding models for vector search including OpenAI text-embedding-ada-002, text-embedding-3-small, text-embedding-3-large, Google Gemini embedding, and Voyage AI embeddings. Choose the model that best fits your accuracy and cost requirements. | |
| 263 | +Built in: OpenAI (text-embedding-ada-002, text-embedding-3-small, text-embedding-3-large), Google Gemini embedding, and Voyage AI. You can also use any OpenAI-compatible embeddings endpoint — Ollama, LM Studio, vLLM, LocalAI, or Azure OpenAI — by configuring the Custom Provider under Settings, then enabling "Use custom provider for embeddings" and naming your embedding model (for example nomic-embed-text) in the Custom Embedding Model field. Both knowledge base indexing and live queries then use that endpoint. Re-index your knowledge base after changing embedding models so stored vectors match query vectors. | |
| 323 | 264 | |
| 265 | += Can I use a local model such as Ollama or LM Studio? = | |
| 266 | + | |
| 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 | + | |
| 324 | 269 | = Is there a free version of MxChat? = |
| 325 | 270 | |
| 326 | -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. | |
| 327 | 272 | |
| 273 | += Can a license holder turn MxChat Pro off for one of their sites? = | |
| 274 | + | |
| 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 | + | |
| 277 | +== Developer Hooks & Filters == | |
| 278 | + | |
| 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 | + | |
| 281 | +== External services == | |
| 282 | + | |
| 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 | + | |
| 285 | +- [OpenAI](https://openai.com/) - [Terms](https://openai.com/policies/terms-of-use/) | [Privacy](https://openai.com/policies/privacy-policy/) | |
| 286 | +- [Anthropic](https://anthropic.com/) - [Terms](https://www.anthropic.com/terms) | [Privacy](https://www.anthropic.com/privacy) | |
| 287 | +- [Google](https://ai.google.dev/) - [Terms](https://ai.google.dev/terms) | [Privacy](https://policies.google.com/privacy) | |
| 288 | +- [xAI](https://x.ai/) - [Terms](https://x.ai/terms-of-service) | [Privacy](https://x.ai/privacy-policy) | |
| 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) | |
| 291 | + | |
| 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/) | |
| 293 | + | |
| 328 | 294 | == Screenshots == |
| 329 | 295 | |
| 330 | 296 | 1. **Chat Transcripts Insights** - Review and analyze conversations insights to see engagement rate, peak activity, and user distribution. |
| 331 | 297 | 2. **Chat Transcripts Insights** - View 7 day activity trend graph. |
| @@ -337,8 +303,249 @@ | ||
| 337 | 303 | *(Note: Screenshots will be added in future updates)* |
| 338 | 304 | |
| 339 | 305 | == Changelog == |
| 340 | 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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 | + | |
| 395 | += 3.2.20 - August 28, 2026 = | |
| 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. | |
| 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. | |
| 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. | |
| 399 | +* New: A third live-agent handoff destination, Webhook — send handoffs to your helpdesk, CRM or automation flow as a signed JSON POST, with its own availability schedule and delivery errors shown on the settings screen. | |
| 400 | +* New: The pre-chat email form can show a consent checkbox with your own label and Privacy Policy link, optionally required, enforced on the server — and each capture records whether it was ticked, when, and the exact label shown, visible in Leads, the CSV export and privacy exports. | |
| 401 | +* New: The chatbot can be placed with a Gutenberg block, or an Elementor widget on Elementor 3.5+ — inline or floating, with a bot picker when Multi-Bot is active, and a neutral placeholder in the editor instead of a live chat. | |
| 402 | +* New: A Document Upload import method takes .docx, .txt and .md files straight into the knowledge base; the file itself is never stored and re-uploading the same name replaces rather than duplicates. | |
| 403 | +* New: A Custom Retention (Days) field on Transcripts lets you delete transcripts after any number of days instead of only the weekly and monthly presets. | |
| 404 | +* New: Pinecone knowledge entries can now be edited in the admin — saving re-chunks and re-embeds in place, so fixing a typo no longer means delete and re-import. | |
| 405 | +* New: Each ACF field group gains a group-level toggle that includes or excludes every field in it at once, with a distinct half-way state when only some are included. | |
| 406 | +* New: Add-on AI tools now receive the model's full tool-call arguments, so a tool declaring typed parameters gets them delivered instead of everything but the query being discarded. | |
| 407 | +* New: Three developer hooks for custom retrieval — mxchat_retrieval_query rewrites the lookup text without touching the transcript, mxchat_pinecone_query_body tunes Pinecone queries, and mxchat_session_ended fires on both deletion and retention expiry. | |
| 408 | +* New: The mxchat_final_response_text filter runs on the complete answer on every response path, streaming included, before it is shown and saved. | |
| 409 | +* Security: With Contextual Awareness on, page text captured from the visitor's browser is now fenced as untrusted reference material, capped at 8,000 characters and required to belong to your own site, so instructions hidden in comments or reviews are far less likely to be followed. | |
| 410 | +* Fixed: ACF field toggles now identify each field precisely, so same-named fields in different groups no longer share one toggle or switch each other back off; existing exclusions are migrated on the safe side with a one-time notice. | |
| 411 | +* Fixed: All remaining Pinecone reads use the correct call shape and respect a configured namespace, so listings, chunked answers and already-indexed detection work on serverless indexes instead of silently returning nothing. | |
| 412 | +* Fixed: Long manually pasted entries each keep their own identity — previously a second long pasted document silently deleted the first one's content, in Pinecone and the local database alike. | |
| 413 | +* Fixed: Shortening an entry below the chunking threshold now removes its old chunk records, so answers can no longer draw on stale text alongside the new version. | |
| 414 | +* Fixed: Knowledge entries whose address contains percent-encoded characters, such as non-English permalinks, no longer go missing or save a duplicate under a different identity. | |
| 415 | +* Fixed: Importing Persian, Hindi and other Indic-script content no longer splits words at invisible joiner characters; re-import content added earlier to repair it. | |
| 416 | +* Fixed: The pre-chat email form now scrolls when taller than the chat window, so the submit button stays reachable — especially on phones with the keyboard open. | |
| 417 | +* Fixed: Product cards from filtered WooCommerce searches display correctly after a refresh instead of showing raw markup, and history replay now recognizes every MxChat card type automatically. | |
| 418 | +* Fixed: Cards from an AI tool answer keep their position below the answer text when the chat is refreshed or reopened, matching the order the visitor originally saw. | |
| 419 | +* Fixed: A floating chatbot placed by shortcode or block on a page that also auto-displays one no longer renders two overlapping bubbles with duplicate element ids. | |
| 420 | +* Fixed: With citation links on, real published pages on your own site and web-search source links are no longer stripped from answers as unknown. | |
| 421 | +* Fixed: The Sources tab in Message Context now lists the documents behind tool-answered replies, and tells apart a search that found nothing from a reply with no recorded retrieval. | |
| 422 | +* Fixed: The "Translation loading for the mxchat domain was triggered too early" notice on WordPress 6.7 and newer is resolved. | |
| 423 | +* Fixed: A custom retention value set by hand or by code is no longer reset to zero when other transcript settings are saved. | |
| 424 | +* Fixed: Status pills on admin screens outside API Access now render with their intended styling instead of as plain text. | |
| 425 | +* Fixed: The chat message input has a real accessible name for screen readers, rather than relying on placeholder text that disappears on typing. | |
| 426 | +* Fixed: Sites that saved the AI Tools screen on earlier versions now receive the recommended usage guidance for the handoff tools; hints you wrote yourself are never changed. | |
| 427 | +* Improved: Screen reader support for the conversation is complete — a streamed answer is announced once when it finishes rather than continuously as it types, the waiting state and error notices are read out, and restored history stays silent. | |
| 428 | +* Improved: On phones and tablets the chat input no longer takes focus after each reply, so the keyboard stays closed while the visitor reads; desktop is unchanged and the mxchat_autofocus_after_reply filter forces either behavior. | |
| 429 | +* Improved: Saving a WooCommerce product no longer generates two knowledge-base embeddings for the same product, halving embedding API usage on product saves. | |
| 430 | +* Improved: The daily model health check now watches every model in use, including per-bot models from Multi-Bot, via the new mxchat_models_in_use filter. | |
| 431 | +* Improved: Replacements for retired AI models live in one shared mapping used across the plugin and its add-ons, and content generation is now rescued from any retired model. | |
| 432 | +* Improved: The Content Generation model picker derives from the central model catalog, so new models appear automatically and a saved model that is no longer offered stays selected and labeled. | |
| 433 | +* Improved: The Video Card Match Threshold is now a slider with a live value readout, matching the other threshold controls; its range and limits are unchanged. | |
| 434 | +* Improved: The admin Testing panel reports how many links the guard checked and which it removed, which was previously silent. | |
| 435 | +* Improved: On non-English sites, the chat widget's default texts are saved in the site language on a fresh install. | |
| 436 | +* Improved: A Pinecone listing call that genuinely fails now logs that the fallback fired instead of masking it. | |
| 437 | + | |
| 438 | += 3.2.19 - August 15, 2026 = | |
| 439 | +* Fixed: Hebrew, Arabic and other right-to-left PDFs no longer import with reversed text, and a new WP-CLI repair command fixes entries imported before this update in place. | |
| 440 | +* Fixed: Sites still set to the retired Claude Opus 4.1, or to older retired Claude models, are automatically moved to the current Claude generation of the same tier and shown a notice. | |
| 441 | +* New: MxChat checks once a day that your selected AI model still exists and warns you on the AI Models screen and dashboard before a retired model can silence your chatbot. | |
| 442 | +* Improved: Claude API costs drop on most sites — Anthropic prompt caching now runs automatically, ahead of Anthropic's September 1 Claude Sonnet 5 price change. | |
| 443 | +* Fixed: Content generation no longer fails with an Unsupported value error on GPT-5.4 Mini and GPT-5.4 Nano, and any model that rejects a reasoning setting is retried once without it. | |
| 444 | +* Improved: The xAI Grok lineup is current again — Grok 4.6 and the rest of the new generation are offered first, and existing selections keep working. | |
| 445 | +* New: Settings edits are protected — changed fields show an Unsaved marker, leaving mid-edit asks for confirmation, and edits are handed to the browser for saving if you leave anyway. | |
| 446 | +* Fixed: Imported content keeps its currency symbols, and Arabic, Hebrew, Hindi and Thai text keeps the marks its script requires; re-import content added through the bulk website, URL or PDF import tools to repair entries indexed earlier. | |
| 447 | +* Improved: Leftover HTML character codes are converted to readable text before indexing; re-import affected entries to clean up existing ones. | |
| 448 | +* Fixed: Draft posts published by import tools or scripts are no longer indexed under your homepage address. | |
| 449 | +* Fixed: WooCommerce prices are indexed in your store's base currency with the currency code, and on multi-currency stores the chatbot no longer mixes two currencies in one reply; re-import products to update older entries. | |
| 450 | +* New: The Notification Email field accepts up to five comma-separated addresses, and an invalid address is refused with a message naming it instead of silently breaking notifications. | |
| 451 | +* Improved: Visitor names and emails from the pre-chat form move into MxChat's sessions storage automatically — the Leads tab and live-agent greetings work exactly as before. | |
| 452 | +* Improved: Link-click records are covered by WordPress's privacy export and erasure tools, and old records anonymize and delete themselves over time. | |
| 453 | +* Fixed: A YouTube video card now appears only when the video actually matches the question, with a new match threshold setting — and video cards can be switched off entirely. | |
| 454 | +* New: Transcripts show which AI Tools ran on each message, with timings and errors; tools handling money, customer records or handoffs log only that they ran. | |
| 455 | +* Improved: The Slack and Telegram handoff tools arrive with their usage note prefilled, so automatic handoff works without extra setup; you can reword or clear it. | |
| 456 | +* Fixed: Inspecting a Pinecone knowledge entry works, and deletes on Pinecone setups using a namespace remove the right copy. | |
| 457 | +* Improved: Conversations are stored once instead of duplicated into the options table, and leftover duplicates clean themselves up in the background. | |
| 458 | +* Fixed: Shared admin features work again on the Transcripts and License pages, and two pieces of admin text no longer point at settings that do not exist. | |
| 459 | + | |
| 460 | += 3.2.18 - August 8, 2026 = | |
| 461 | +* Fixed: OpenAI Vector Store knowledge base search works again — an outdated request parameter caused every search to fail silently, so the chatbot answered without your knowledge base content. | |
| 462 | +* Fixed: The knowledge base status readout now correctly shows how many vector stores are configured instead of always reporting none. | |
| 463 | +* Fixed: Content updates made outside the editor are no longer skipped. When a post was published by an import tool, a scheduled post going live, or a script, the first edit after it was silently left out of the knowledge base, so the chatbot kept answering from the original version. | |
| 464 | +* Fixed: PDFs shared in chat no longer store unreadable pages when an embedding request fails part-way through. Failed pages are skipped and recorded in the Debug Mode log, and if no page can be read the chatbot now gives the real reason instead of calling the file empty or unsupported. | |
| 465 | +* Fixed: Clearing a conversation, deleting a transcript, or erasing a visitor's data through WordPress's privacy tools now removes every trace of that session's stored state. Some of it was previously left behind forever. | |
| 466 | +* Fixed: Job listings imported from the content selector now include their location, job type and company name, matching listings saved in the editor. Listings imported earlier keep their old text until you import them again. | |
| 467 | +* Fixed: Post titles are now added to the knowledge base exactly as written. Curly quotes, apostrophes and long dashes were stored as raw character codes, and protected or private posts gained a Protected prefix — all of which could surface in answers. Entries indexed earlier keep their old titles until you import them again. | |
| 468 | +* Fixed: A short description made up only of page-builder shortcodes or spaces no longer adds an empty Short Description heading to the indexed text. | |
| 469 | +* Improved: Custom field names containing hyphens now read as words in the indexed text on both import routes, instead of only one of them. | |
| 470 | +* Improved: Chat sessions no longer bloat your site's options table. Per-session details were saved as settings rows that were never cleaned up, so busy sites accumulated thousands, some loading on every page view. Sessions now live in their own table, and existing rows are moved across automatically in the background after you update. | |
| 471 | +* New: Old chat sessions are tidied up on their own. Sessions untouched for 30 days are removed automatically — the window is adjustable with a developer filter — and the cleanup runs even on sites with WordPress scheduled tasks disabled. | |
| 472 | +* Fixed: Sitemap imports now tell you why they failed instead of pointing at an empty status area — for example, an API key missing the required permission is now named as the reason. | |
| 473 | +* Improved: Knowledge base import errors from OpenAI, Gemini and Voyage now pass along the provider's own explanation instead of a generic invalid key message. | |
| 474 | +* Improved: Chat-side embedding failures are now recorded in the Debug Mode log with the provider's real reason, matching knowledge base imports. | |
| 475 | +* Fixed: In the content selector, a selected item's tick mark was white on a white box and effectively invisible. Selected items now show a clearly filled checkbox. | |
| 476 | + | |
| 477 | += 3.2.17 - August 5, 2026 = | |
| 478 | +* Fixed: Japanese, Chinese and Thai content is no longer erased, split into oversized chunks, or stripped of rare characters during knowledge base imports. | |
| 479 | +* Fixed: Custom embedding providers such as Ollama, LM Studio and Azure now work end to end — the permanent mismatch banner is gone, and no cloud API key is needed for imports or automatic post syncing. | |
| 480 | +* Fixed: Scheduled posts now enter the knowledge base the moment they go live, and the developer hook for customizing indexed content also runs during automatic post syncing. | |
| 481 | +* Fixed: The WordPress content import window now fits phone screens, so its buttons are always reachable. | |
| 482 | +* Fixed: The hybrid keyword boost and smart asset loading toggles now show the saved confirmation like every other setting. | |
| 483 | +* New: Every settings tab has its own shareable link that opens directly on that tab, including nested and add-on tabs. | |
| 484 | +* Improved: Knowledge settings are centralized under Knowledge — ACF PDF extraction is now a persistent setting on the ACF Fields tab, and the hybrid keyword boost lives on the new Chunking and Retrieval tab. Saved choices carry over. | |
| 485 | +* Improved: The Editor Assistant toggle moved to the Content page's Settings tab, next to the other content tools. | |
| 486 | +* Improved: The FAQ now documents custom and local embedding providers such as Ollama and LM Studio. | |
| 487 | +* Improved: Settings holding a Pinecone API key are no longer loaded into memory on every page view. | |
| 488 | + | |
| 489 | += 3.2.16 - August 2, 2026 = | |
| 490 | +* New: Chat conversations are now covered by WordPress's built-in privacy tools — export requests return readable transcripts, and erasure requests delete conversations, captured emails, saved history and document traces, for both logged-in and anonymous visitors. | |
| 491 | +* New: Optional hybrid keyword boost for the WordPress-database knowledge base, off by default. It combines keyword matching with the existing similarity search so exact tokens such as product codes, SKUs and error codes find the right document, and Transcripts labels each match Vector, Keyword or Both. | |
| 492 | +* New: If your AI provider starts rejecting the configured model, MxChat now shows a persistent admin notice naming the model and linking to Settings. Previously only visitors saw the error. | |
| 493 | +* Fixed: Security — hardened validation of chat session identifiers throughout the plugin. Sites using automatic transcript emails should update. | |
| 494 | +* Fixed: Security — tightened the permission checks around MxChat's admin scripts and admin-only actions, so they load and run only for users who can manage plugin options. | |
| 495 | +* Fixed: Security — removed an unused block of stored settings data that was no longer needed. | |
| 496 | +* Fixed: OpenAI retires the GPT-5.1 Chat Latest and GPT-5.3 Chat models on August 10, 2026. Both are removed from the picker and affected sites switch to GPT-5.6 Sol automatically, with an admin notice explaining the change. | |
| 497 | +* Fixed: Unpublishing, trashing or making a post private now always removes it from the knowledge base, including status changes made by scheduled-expiry plugins that bypass the save screen. A new command, wp mxchat prune-unpublished, clears entries left by earlier unpublishes. | |
| 498 | +* Fixed: Streaming replies arrive word by word again on hosts behind a proxy such as nginx, instead of all at once after a pause. Four PHP warnings per affected chat are gone with it. | |
| 499 | +* Fixed: Quick Question buttons render at their normal size again. In 3.2.15 the new theme-protection styles let the list compress its buttons to fit the box, so the scrollbar never appeared. | |
| 500 | +* Fixed: The Loops email-capture messages no longer send you looking for a field that is not on that screen. Both now name the API Keys tab and link straight to it. | |
| 501 | +* Fixed: Removed a duplicate save-action registration on the knowledge-bot selector that pointed at code which does not exist. It would have crashed the admin screen if load ordering ever changed. | |
| 502 | +* Improved: Knowledge base import errors now carry the embedding provider's real reason, such as an invalid API key or exhausted credit, name the model, and say whether embedding or storage failed. | |
| 503 | +* Improved: Models with an announced retirement date now show that date in the picker and disappear once it passes. A model you already have selected stays visible in Settings. | |
| 504 | +* Improved: When the knowledge base has nothing relevant, the chatbot is now told so directly instead of receiving a no-information note dressed up as knowledge base content, so it simply says it does not know. | |
| 505 | + | |
| 506 | += 3.2.15 - July 28, 2026 = | |
| 507 | +* Fixed: DeepSeek chat works again. DeepSeek retired its older API model names on July 24, 2026, which broke every DeepSeek-powered chat; the model picker now offers DeepSeek V4 Flash and V4 Pro, and sites still set to an older DeepSeek model switch to V4 Flash automatically on update. | |
| 508 | +* New: Claude Opus 5 is available in the model picker — Anthropic's newest Opus model, the same price as Claude Opus 4.8, working across chat, streaming and the AI content tools. | |
| 509 | +* New: Optional performance setting to load chatbot files only on pages where the chatbot actually appears. Off by default, and helpful for reduce-unused-CSS-and-JS findings in performance audits. | |
| 510 | +* New: Slack live agent handoff can route every conversation into one shared channel your team already monitors, one thread per visitor, instead of creating a channel per visitor. Leave the new field blank and nothing changes. | |
| 511 | +* New: Optional setting to archive a conversation's Slack channel when an agent ends the chat, so channels stop piling up. Off by default. | |
| 512 | +* New: Place your knowledge base content anywhere in your AI instructions using the context placeholder. Leave it out and MxChat works exactly as before. | |
| 513 | +* New: The SEO content table now shows an average search position column from the last 28 days, available with the Advanced Content add-on connected to Search Console. | |
| 514 | +* Improved: When Search Console is not connected yet, the SEO content table now explains that connecting it fills the clicks, impressions and position columns, with a link to the Settings tab, instead of showing unexplained dashes. | |
| 515 | +* Improved: SEO content table sorting now keeps every post in the list on every filter, with posts that have no data grouped at the end. | |
| 516 | +* Improved: X.AI errors now include the provider's specific reason, such as the exact model name it could not find, alongside the general explanation. | |
| 517 | +* Improved: Sites using a delayed or on-interaction script loading strategy no longer perform an unnecessary database write on every page view. | |
| 518 | +* Fixed: The chat widget now defends itself against website themes whose styles bleed into it, including the header menu. Your own custom widget CSS keeps working unchanged. | |
| 519 | +* Fixed: When an AI provider returns a successful but empty reply, the chatbot now shows a clear message asking the visitor to try again instead of an empty chat bubble. Streaming chats close out the same way. | |
| 520 | +* Fixed: Provider errors now pass along the provider's actual explanation instead of a generic Unknown error, across image providers, embeddings, knowledge base search, web search, streamed replies and OpenRouter. | |
| 521 | +* Fixed: Conversations handled by a human now show as Live Agent in the Transcripts viewer and in emailed transcripts, instead of everything being labeled AI Assistant. | |
| 522 | +* Fixed: The streaming test button on the settings page now works with the newest Claude models, which previously returned an error even though chat itself worked. | |
| 523 | +* Fixed: Turning on developer mode no longer re-runs the plugin's activation and database migration routine on every page load. | |
| 524 | +* Fixed: The hourly rate-limit reset now re-creates itself if the scheduled task ever goes missing, so visitors are never left rate-limited longer than intended. | |
| 525 | +* Fixed: On sites where WordPress scheduled tasks are disabled, the hourly fallback check no longer loads a duplicate copy of the plugin's internals mid-request. | |
| 526 | + | |
| 527 | += 3.2.14 - July 18, 2026 = | |
| 528 | +* New: Editor Assistant — optional AI writing actions right inside the WordPress block editor. Select a paragraph, heading, list, or quote block and rewrite it (concise, expanded, formal, or casual), summarize it, translate it to another language, continue writing, or fix grammar and spelling, then Accept or Discard. It is off by default and uses the AI model you already configured. | |
| 529 | +* New: You can now add YouTube videos to your knowledge base. A new YouTube option on the Import screen takes a video link and, per video, either auto-fetches its title, channel, and captions or lets you write your own description. When a visitor's question matches a video, the answer includes it as a playable embed right inside the chat that loads no YouTube player or Google cookies until the visitor taps play. | |
| 530 | +* New: Live agent handoff can now follow an availability schedule, so visitors are only offered a human during the days and hours your team is actually reachable, and the chatbot simply keeps answering outside them. Slack and Telegram each get their own independent schedule on their own settings tab, so a channel staffed at different hours keeps its own calendar. It is off by default and uses your site timezone. | |
| 531 | +* New: Added the latest OpenAI GPT-5.6 models — Sol, Terra, and Luna — for both your chatbot and content generation. | |
| 532 | +* New: MxChat AI Search now appears on the Pro and Extensions page alongside the other add-ons, so you can discover it from inside your dashboard. | |
| 533 | +* New: Developers can now add their own trusted links to the chatbot's allowed-links list with the new mxchat_valid_urls filter, so links returned by custom function-calling tools stay clickable in replies. | |
| 534 | +* Fixed: Editing a Knowledge Base entry no longer throws away your work. Clicking outside the edit box, or selecting text and releasing the mouse just past its edge, used to close it and discard everything you had typed. The box now closes only when you ask it to — the close or cancel button, the Escape key, or a successful save — and confirms first if you have unsaved changes. The same fix applies to the Add Tool and Edit Tool dialog on the Actions screen. | |
| 535 | +* Fixed: Product and image search now correctly refine your search terms when a GPT-5 model is selected. Previously the refinement step silently stopped working and fell back to the raw text, weakening results. | |
| 536 | +* Fixed: The Telegram live-agent webhook is no longer accepted without verification when a secret token has not been set; requests are now validated by origin and a reminder is shown to configure a secret. | |
| 537 | +* Fixed: The Testing page's chatbot replica now uses the exact same knowledge base as your live chatbot. On sites running Pinecone with the Multi-Bot add-on active, the testing chat was quietly searching the WordPress database instead. | |
| 538 | +* Fixed: Automatic transcript deletion now repairs its own schedule if the scheduled cleanup task is ever lost, so old transcripts no longer stop being deleted while your settings still say retention is on. The Transcripts settings also now show when the next cleanup will run. | |
| 539 | + | |
| 540 | += 3.2.13 - July 10, 2026 = | |
| 541 | +* New: Claude Sonnet 5 is now selectable as both a chat model and a content generation model. | |
| 542 | +* New: The Knowledge Base Custom Post Meta section can scan your content and suggest custom meta keys as clickable options, so you can add non-ACF meta to the embedding whitelist without knowing the exact key names. | |
| 543 | +* Fixed: Knowledge Base imports of PDFs and web pages no longer fail with a 403 error on firewall-protected hosts (SiteGround, Wordfence, Cloudflare) — MXChat now identifies itself with an honest, versioned MXChatBot user agent you can allowlist if needed. | |
| 544 | +* Fixed: PDFs a visitor links in a live chat now use the same MXChatBot identity, so a firewall that allowlists MXChatBot lets them through too. | |
| 545 | +* Fixed: The close button on the pre-chat greeting bubble now works on chatbots with a custom bot ID, including Multi-Bot setups, not just the default chatbot. | |
| 546 | +* Improved: The Custom Post Meta help text now points to the built-in key scanner and notes that array and repeater values are flattened during embedding. | |
| 547 | + | |
| 341 | 548 | = 3.2.12 - June 30, 2026 = |
| 342 | 549 | * Fixed: Resolved a WordPress.org packaging issue from the previous release that could cause the update to fail to download or appear to hang in the WordPress dashboard on some sites. This maintenance release republishes the plugin so every site can update normally and receive the recent improvements from 3.2.11 — including the per-provider Test API key buttons, built-in WPML and Polylang translation for the chat widget, Google Gemini web search, the optional Max Input Length character counter, cleaner Slack live-agent links, the Knowledge View indexed content panel, and the security and Pinecone matching fixes. No functional changes from 3.2.11; no settings or data are affected. |
| 343 | 550 | |
| 344 | 551 | = 3.2.11 - June 29, 2026 = |
| @@ -540,16 +747,43 @@ | ||
| 540 | 747 | Older releases are archived in the plugin's full version history on WordPress.org. |
| 541 | 748 | |
| 542 | 749 | == Upgrade Notice == |
| 543 | 750 | |
| 544 | -= 3.2.12 = | |
| 545 | -This maintenance release fixes a WordPress.org packaging problem that could make the previous update fail to install from the WordPress dashboard. Updating ensures you receive the latest improvements and security fixes from the recent releases. No settings or data are affected. | |
| 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. | |
| 546 | 753 | |
| 547 | -== License & Warranty == | |
| 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. | |
| 548 | 756 | |
| 549 | -This plugin is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. | |
| 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. | |
| 550 | 759 | |
| 551 | -This plugin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |
| 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. | |
| 765 | + | |
| 766 | += 3.2.20 = | |
| 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. | |
| 768 | + | |
| 769 | += 3.2.19 = | |
| 770 | +Big maintenance release. Retired AI models are now handled automatically — stranded sites are moved to a current model and a new daily check warns you before a retired model can silence your chatbot — and Claude prompt caching cuts API costs ahead of Anthropic's September 1 price change. Re-import content added through the bulk, URL or PDF import tools, plus WooCommerce products, to repair older entries; if you use the Forms or Anywhere add-ons, update them alongside core. | |
| 771 | + | |
| 772 | += 3.2.18 = | |
| 773 | +Critical for OpenAI Vector Store users: knowledge base search was failing silently, leaving the chatbot to answer without your content. Per-conversation data also moves out of the options table into its own table, migrated automatically in the background after you update. Plus clearer import errors and several knowledge base indexing fixes. | |
| 774 | + | |
| 775 | += 3.2.17 = | |
| 776 | +Big knowledge base update: Japanese, Chinese and Thai imports are no longer damaged, scheduled posts sync the moment they go live, and custom embedding providers such as Ollama work end to end without a cloud API key. Settings gain shareable per-tab links and centralized knowledge options, and the import window now fits phone screens. Recommended for all sites. | |
| 777 | + | |
| 778 | += 3.2.16 = | |
| 779 | +Security hardening, plus chat conversations now work with WordPress's built-in privacy tools. The GPT-5.1 Chat Latest and GPT-5.3 models that OpenAI retires on August 10, 2026 are removed, and affected sites switch over automatically. Also fixes knowledge base cleanup on unpublish, streaming behind proxies, and Quick Question sizing. | |
| 780 | + | |
| 781 | += 3.2.15 = | |
| 782 | +Restores DeepSeek chat after DeepSeek retired its older API model names on July 24, 2026, automatically switching affected sites to DeepSeek V4 Flash. Adds Claude Opus 5, a shared-channel mode for Slack live agent handoff, a context placeholder for positioning knowledge base content in your AI instructions, and an optional setting to load chatbot files only on pages where the chatbot appears. Also hardens the chat widget against theme style bleed and fixes empty AI replies, provider error messages, live agent transcript labels and several scheduled-task issues. | |
| 783 | + | |
| 784 | += 3.2.14 = | |
| 785 | +Adds the Editor Assistant, YouTube videos in the knowledge base with consent-safe in-chat embeds, independent Slack and Telegram live agent availability schedules, and the latest GPT-5.6 models. Also fixes a Knowledge Base edit data-loss bug, GPT-5 product and image search, and self-healing automatic transcript deletion — existing sites are unaffected until you turn the new features on. | |
| 552 | 786 | |
| 553 | 787 | == Credits == |
| 554 | 788 | |
| 555 | 789 | This plugin incorporates the following third-party library: |