| @@ -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.1 | |
| 7 | -Requires PHP: 7.2 | |
| 8 | -Stable tag: 3.2.16 | |
| 5 | +Requires at least: 5.3 | |
| 6 | +Tested up to: 7.1 | |
| 7 | +Requires PHP: 7.4 | |
| 8 | +Stable tag: 3.2.24 | |
| 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. |
| @@ -259,13 +259,17 @@ | ||
| 259 | 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. |
| 260 | 260 | |
| 261 | 261 | = What embedding models does MxChat support? = |
| 262 | 262 | |
| 263 | -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. | |
| 264 | 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 | + | |
| 265 | 269 | = Is there a free version of MxChat? = |
| 266 | 270 | |
| 267 | -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. | |
| 268 | 272 | |
| 269 | 273 | == Developer Hooks & Filters == |
| 270 | 274 | |
| 271 | 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/). |
| @@ -277,8 +281,12 @@ | ||
| 277 | 281 | = mxchat_system_instructions = |
| 278 | 282 | |
| 279 | 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. |
| 280 | 284 | |
| 285 | += Added in 3.2.22 = | |
| 286 | + | |
| 287 | +mxchat_client_ip (the visitor address behind a trusted proxy), mxchat_current_datetime_line (the date and time line sent with each message), mxchat_transcript_user_message and mxchat_ai_conversation_history (what humans and the model each see of a transcript), mxchat_chat_toolbar_items with the mxchat:toolbar-ready and mxchat:opened browser events (toolbar buttons from an add-on), mxchat_handoff_card_sections (extra sections on the Telegram and Slack handoff card), and the MxChat_Utils::save_session_message helper for writing to a transcript. Each is documented with examples on the page linked above. | |
| 288 | + | |
| 281 | 289 | ## ✅ Get Started with MxChat AI Chatbot Today |
| 282 | 290 | |
| 283 | 291 | 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. |
| 284 | 292 | |
| @@ -313,9 +321,173 @@ | ||
| 313 | 321 | *(Note: Screenshots will be added in future updates)* |
| 314 | 322 | |
| 315 | 323 | == Changelog == |
| 316 | 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. | |
| 317 | 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 | + | |
| 356 | += 3.2.22 - September 20, 2026 = | |
| 357 | +* 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. | |
| 358 | +* 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. | |
| 359 | +* 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. | |
| 360 | +* 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. | |
| 361 | +* 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. | |
| 362 | +* 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. | |
| 363 | +* 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. | |
| 364 | +* 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. | |
| 365 | +* 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. | |
| 366 | +* 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. | |
| 367 | +* 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. | |
| 368 | +* 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. | |
| 369 | +* 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. | |
| 370 | +* 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. | |
| 371 | +* Fixed: Restricting a knowledge entry to a custom role no longer leaves it readable by every signed-in visitor. | |
| 372 | +* Fixed: Choosing Media in the WordPress Content importer now lists your files instead of coming back empty on every site. | |
| 373 | +* 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. | |
| 374 | +* 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. | |
| 375 | +* 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. | |
| 376 | +* 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. | |
| 377 | +* 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. | |
| 378 | +* 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. | |
| 379 | +* 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. | |
| 380 | +* 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. | |
| 381 | +* 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. | |
| 382 | +* 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. | |
| 383 | + | |
| 384 | += 3.2.21 - September 6, 2026 = | |
| 385 | +* 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. | |
| 386 | +* 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. | |
| 387 | +* 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. | |
| 388 | +* 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. | |
| 389 | +* Fixed: The Open Telegram settings button on the webhook security notice now opens the Telegram settings tab instead of the onboarding screen. | |
| 390 | +* 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. | |
| 391 | +* 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. | |
| 392 | +* 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. | |
| 393 | +* 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. | |
| 394 | +* 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. | |
| 395 | + | |
| 396 | += 3.2.20 - August 28, 2026 = | |
| 397 | +* 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. | |
| 398 | +* 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. | |
| 399 | +* 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. | |
| 400 | +* 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. | |
| 401 | +* 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. | |
| 402 | +* 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. | |
| 403 | +* 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. | |
| 404 | +* 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. | |
| 405 | +* 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. | |
| 406 | +* 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. | |
| 407 | +* 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. | |
| 408 | +* 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. | |
| 409 | +* New: The mxchat_final_response_text filter runs on the complete answer on every response path, streaming included, before it is shown and saved. | |
| 410 | +* 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. | |
| 411 | +* 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. | |
| 412 | +* 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. | |
| 413 | +* 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. | |
| 414 | +* 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. | |
| 415 | +* 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. | |
| 416 | +* 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. | |
| 417 | +* 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. | |
| 418 | +* 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. | |
| 419 | +* 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. | |
| 420 | +* 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. | |
| 421 | +* 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. | |
| 422 | +* 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. | |
| 423 | +* Fixed: The "Translation loading for the mxchat domain was triggered too early" notice on WordPress 6.7 and newer is resolved. | |
| 424 | +* Fixed: A custom retention value set by hand or by code is no longer reset to zero when other transcript settings are saved. | |
| 425 | +* Fixed: Status pills on admin screens outside API Access now render with their intended styling instead of as plain text. | |
| 426 | +* Fixed: The chat message input has a real accessible name for screen readers, rather than relying on placeholder text that disappears on typing. | |
| 427 | +* 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. | |
| 428 | +* 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. | |
| 429 | +* 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. | |
| 430 | +* Improved: Saving a WooCommerce product no longer generates two knowledge-base embeddings for the same product, halving embedding API usage on product saves. | |
| 431 | +* 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. | |
| 432 | +* 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. | |
| 433 | +* 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. | |
| 434 | +* 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. | |
| 435 | +* Improved: The admin Testing panel reports how many links the guard checked and which it removed, which was previously silent. | |
| 436 | +* Improved: On non-English sites, the chat widget's default texts are saved in the site language on a fresh install. | |
| 437 | +* Improved: A Pinecone listing call that genuinely fails now logs that the fallback fired instead of masking it. | |
| 438 | + | |
| 439 | += 3.2.19 - August 15, 2026 = | |
| 440 | +* 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. | |
| 441 | +* 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. | |
| 442 | +* 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. | |
| 443 | +* 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. | |
| 444 | +* 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. | |
| 445 | +* 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. | |
| 446 | +* 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. | |
| 447 | +* 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. | |
| 448 | +* Improved: Leftover HTML character codes are converted to readable text before indexing; re-import affected entries to clean up existing ones. | |
| 449 | +* Fixed: Draft posts published by import tools or scripts are no longer indexed under your homepage address. | |
| 450 | +* 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. | |
| 451 | +* 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. | |
| 452 | +* 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. | |
| 453 | +* Improved: Link-click records are covered by WordPress's privacy export and erasure tools, and old records anonymize and delete themselves over time. | |
| 454 | +* 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. | |
| 455 | +* 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. | |
| 456 | +* 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. | |
| 457 | +* Fixed: Inspecting a Pinecone knowledge entry works, and deletes on Pinecone setups using a namespace remove the right copy. | |
| 458 | +* Improved: Conversations are stored once instead of duplicated into the options table, and leftover duplicates clean themselves up in the background. | |
| 459 | +* 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. | |
| 460 | + | |
| 461 | += 3.2.18 - August 8, 2026 = | |
| 462 | +* 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. | |
| 463 | +* Fixed: The knowledge base status readout now correctly shows how many vector stores are configured instead of always reporting none. | |
| 464 | +* 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. | |
| 465 | +* 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. | |
| 466 | +* 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. | |
| 467 | +* 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. | |
| 468 | +* 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. | |
| 469 | +* 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. | |
| 470 | +* Improved: Custom field names containing hyphens now read as words in the indexed text on both import routes, instead of only one of them. | |
| 471 | +* 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. | |
| 472 | +* 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. | |
| 473 | +* 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. | |
| 474 | +* 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. | |
| 475 | +* Improved: Chat-side embedding failures are now recorded in the Debug Mode log with the provider's real reason, matching knowledge base imports. | |
| 476 | +* 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. | |
| 477 | + | |
| 478 | += 3.2.17 - August 5, 2026 = | |
| 479 | +* Fixed: Japanese, Chinese and Thai content is no longer erased, split into oversized chunks, or stripped of rare characters during knowledge base imports. | |
| 480 | +* 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. | |
| 481 | +* 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. | |
| 482 | +* Fixed: The WordPress content import window now fits phone screens, so its buttons are always reachable. | |
| 483 | +* Fixed: The hybrid keyword boost and smart asset loading toggles now show the saved confirmation like every other setting. | |
| 484 | +* New: Every settings tab has its own shareable link that opens directly on that tab, including nested and add-on tabs. | |
| 485 | +* 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. | |
| 486 | +* Improved: The Editor Assistant toggle moved to the Content page's Settings tab, next to the other content tools. | |
| 487 | +* Improved: The FAQ now documents custom and local embedding providers such as Ollama and LM Studio. | |
| 488 | +* Improved: Settings holding a Pinecone API key are no longer loaded into memory on every page view. | |
| 489 | + | |
| 318 | 490 | = 3.2.16 - August 2, 2026 = |
| 319 | 491 | * 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. |
| 320 | 492 | * 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. |
| 321 | 493 | * 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. |
| @@ -576,8 +748,32 @@ | ||
| 576 | 748 | Older releases are archived in the plugin's full version history on WordPress.org. |
| 577 | 749 | |
| 578 | 750 | == Upgrade Notice == |
| 579 | 751 | |
| 752 | += 3.2.24 = | |
| 753 | +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. | |
| 754 | + | |
| 755 | += 3.2.23 = | |
| 756 | +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. | |
| 757 | + | |
| 758 | + | |
| 759 | += 3.2.22 = | |
| 760 | +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. | |
| 761 | + | |
| 762 | += 3.2.21 = | |
| 763 | +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. | |
| 764 | + | |
| 765 | += 3.2.20 = | |
| 766 | +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. | |
| 767 | + | |
| 768 | += 3.2.19 = | |
| 769 | +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. | |
| 770 | + | |
| 771 | += 3.2.18 = | |
| 772 | +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. | |
| 773 | + | |
| 774 | += 3.2.17 = | |
| 775 | +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. | |
| 580 | 776 | |
| 581 | 777 | = 3.2.16 = |
| 582 | 778 | 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. |
| 583 | 779 | |