* Fix: Filenames with underscores (e.g. `Some_File_2026.pdf`) were getting partially italicized by the chatbot's markdown renderer.
* Fix: ReferenceError (`data is not defined`) in the chatbot response handler that masked the real error message when a host returned a non-JSON body.
* Fix: The Push All button showed "(null)" when a post type had zero matching posts.
* Fix: The `wp_update_option` MCP tool schema no longer logs a "problematic union type" warning on every `list_tools` call.
* Fix: The Meow Apps menu icon now shows correctly in both the expanded and collapsed sidebar states.
* Fix: Hotfix for the MCP endpoint URL being hidden until a bearer token was generated, even though OAuth doesn't need one. It now appears as soon as the MCP Server is enabled.
* Add: Claude Opus 4.8 to the Anthropic model list, with the `latest` tag moved to it.
* Add: AI Forms multi-upload fields now stack new file selections on top of previous ones, with a staged list and per-file remove buttons.
* Add: `mwai-bouncing-loader` and `mwai-bouncing-dot` CSS classes to the chatbot loading dots for custom styling.
* Add: MCP Logs view in Insights with per-tool-call capture, status, duration, and a top tools widget.
* Add: MCP Connection Test in MCP Server settings that detects host-level WAF blocks (e.g. WP Engine's default) before they surface in claude.ai.
* Update: Aligned Forms and Playground markdown rendering with the chatbot so single newlines now produce visible line breaks.
* Update: Extended CORS headers on MCP endpoints with Mcp-Protocol-Version, Mcp-Session-Id, Accept, and Last-Event-ID for browser-context MCP clients.
* Update: Claude Sonnet 4 and Opus 4 (2025/05/14) marked as deprecated ahead of Anthropic's 2026-06-15 retirement date.
* Update: The chatbot Functions empty state now tells Free users that function calling is Pro-only.
* Update: Polished the plugin readme description with cleaner punctuation and brand consistency.
* Add: Setup Assistant on the Dashboard that walks through essential configuration with a progress bar and per-step actions.
* Add: Direct file upload to OpenAI Vector Store via a new Documents tab, with async status polling, Sync from OpenAI action, and clearer PHP upload-limit errors.
* Add: `setField` and `prefill` methods to the AI Forms JS API for setting values programmatically without manual `dispatchEvent` workarounds.
* Update: Redesigned the Dashboard Usage panel into an analytics card with headline, week-over-week delta, daily bar chart, and provider/peak/average/per-query tiles.
* Update: Reorganized the Modules tab into clearer sections with short intros, concise descriptions, renamed Utilities to AI Copilot, and surfaced MCP and Public API as proper modules.
* Update: Renamed the user-facing "Units" metric to "Tokens" across the dashboard, queries explorer, insights, and `[mwai_stats]` shortcode, with full back-compat on REST output and legacy settings.
* Update: Aligned the Discussions, Insights, and Knowledge layouts by standardizing column ratios and removing custom margin and header overrides.
* Update: Added a Refresh button to the Usage panel header, widened the Tokens column in Queries Explorer, and showed "N/A" for queries with no scope.
* Update: MCP tool-registration warnings are now always written to the PHP error log instead of requiring the debug logging flag.
* Fix: Stripped inline citation markers from OpenAI's file_search Responses API text that were surfacing as gibberish in chatbot replies.
* Fix: Stopped embedding the sessionId in chatbot and forms HTML for logged-out visitors, so page caches no longer share one sessionId across all visitors.
* Fix: Guarded REST AI endpoints so they no longer overwrite the cookie-derived session with an empty client-sent sessionId.
* Fix: Gemini embedding queries no longer report bogus token counts by correctly reading promptTokenCount from the response.
* Fix: Dynamic MCP REST tool schemas no longer serialize the meta arg on media/posts/pages as an array, which Claude's MCP validator was rejecting.
* Fix: Translate Post now translates list items inside modern Gutenberg lists, which were silently skipped since WP 6.1+.
* Add: OAuth 2.1 with Dynamic Client Registration for the MCP server, allowing Claude Desktop and other browser-driven clients to connect without a shared bearer token.
* Add: Per-quality image generation (auto/low/medium/high) for GPT Image models, available in the Image Generator UI and as a global default in Settings → Images.
* Fix: Pulling a remote OpenAI vector store no longer creates entries containing raw JSON error bodies for files uploaded with purpose=assistants.
* Fix: The `mwai_allow_setup` filter now properly grants menu and REST API access to non-admin roles, instead of being overridden by a hardcoded `manage_options` check.
* Fix: Tiktoken vocab cache is now scoped per WordPress install, preventing permission conflicts on multi-tenant hosts.
* Update: Migrated OpenAI Realtime integration from the deprecated Beta endpoint to the GA API, enabling support for gpt-realtime-2 and new voice models.
* Update: Reorganized MCP settings panel with a dedicated section for Bearer Token and Access Level, and a new Connected Apps section to review and revoke OAuth grants.
* Update: Generalized the `manage_options` gate in shared code so each Meow Apps plugin gets its own `{prefix}_allow_setup` filter instead of hardcoding `mwai_allow_setup`.
* Update: Removed gpt-4o-realtime-preview, gpt-4o-mini-realtime-preview, and gpt-realtime-translate from the model list.
* Update: SSE transport for MCP is scheduled for removal in July 2026 and is now hidden from the UI for new users.
* Add: GPT-5.5, GPT Image 2, and Claude Opus 4.7 to the model lists.
* Update: Refreshed default fallback models to GPT-5.4 and GPT-5-mini, and marked several upcoming OpenAI shutdowns as deprecated (gpt-5-chat-latest, gpt-4.1-nano, o3-mini, gpt-realtime-mini, gpt-image-1, sora-2, sora-2-pro).
* Update: Major UI/UX updates! I hope you'll enjoy them, otherwise... let me know! 😊
* Add: New Environments panel on the Dashboard with brand-colored rows, smart setup messages, and warnings for missing or deprecated default models.
* Fix: MCP write helpers (wp_alter_post, wp_update_post) were silently stripping backslashes from Unicode escapes.
* Add: Live timer on the Image Generator "Generating..." row so progress is visible.
* Fix: Auto-open is now skipped on mobile so a fullscreen chatbot no longer hijacks the screen on page load.
* Fix: AI Forms not rendering with their theme CSS when embedded via a synced Pattern.
* Add: Split print-to-PDF into its own toggle, moved behind a new "More options..." modal in Appearance settings.
* Update: Redesigned the Usage and Activity widgets with compact CSS-only stacked bars grouped by provider.
* Fix: Oversized embedding inputs are now caught before they hit OpenAI's 8192-token limit.
* Add: System-prompt hint for Anthropic's code_execution tool so Claude uses the sandbox instead of refusing.
* Update: Switched chatbot and form shortcode displays to the NekoShortcode component.
* Update: Functions section now appears as soon as the model supports it.
* Add: Print-to-PDF button next to the copy icon on the last AI message, allowing export of the full conversation via the browser's Save as PDF dialog.
* Add: Retention setting for discussions cleanup under Settings > Chatbot > Discussions, with a `mwai_discussions_retention_days` filter for overrides.
* Fix: Chatbot auto-scroll no longer fights users who scroll up during streaming.
* Fix: AI Form and Chatbot blocks no longer save as "Unsupported" placeholders when used in patterns created via Appearance > Editor.
* Fix: Hardened chatbot parameter processing so non-string values no longer crash the frontend with "trim is not a function".
* Fix: (Hotfix) Two mobile chatbot issues — keyboard pushing header and messages off-screen, and ChatGPT theme's submit button stretching into an oval below the input pill.
* Fix: Blocks with line breaks breaking after save in the Forms editor.
* Fix: REST MCP tools failing schema validation by forwarding nested JSON Schema fields (items, enum, default, etc.) from WordPress REST arg definitions.
* Fix: NekoUI dropdowns rendering broken inside Gutenberg block iframes.
* Fix: Temperature settings missing for Anthropic models in chatbot params.
* Fix: `ai.formReply` filter firing on every stream chunk instead of only once when the reply is complete.
* Update: Removed DALL-E and migrated existing defaults to gpt-image-1.
* Update: Bumped the discussions messages column from TEXT to MEDIUMTEXT.
* Update: Persisted the Query Mode and Expert Mode toggles in the Knowledge tab via localStorage.
* Update: Simplified `estimate_tokens` to a single-argument signature and added multi-file support to assistant queries.
* Update: Opus 4.6 and Sonnet 4.6 context window updated to 1M tokens.
* 🎵 Discuss with others about Ai Engine on [the Discord](https://discord.gg/bHDGh38).
* 🌴 Keep us motivated with [a little review here](https://wordpress.org/support/plugin/ai-engine/reviews/). Thank you!
* 🥰 If you want to help us, check our [Patreon](https://www.patreon.com/meowapps). Thank you!
* 🚀 [Click here](https://trello.com/b/8U9SdiMy/ai-engine-feature-requests) to vote for the features you want the most.
* Fix: Ensure additional CSS classes set in the block inspector.
* Fix: Stop mapping tool categories to annotation titles so MCP tools display their correct names.
* Add: Support for GPT-5.4 Pro, Mini, Nano, and GPT-5.3 Chat models.
* Fix: Resolve an MCP dispatch type mismatch that caused some MCP tools to fail.
* Update: Add new getStatus(), hasAI(), and hasMCP() API helpers (deprecated the older checkStatus() method).
* Fix: Hotfix resolves MCP server connection failures with clients using protocol version 2024-11-05 by adding automatic version negotiation.
* Add: Display shortcut prompts and names in the Discussions tab.
* Add: Introduce image embeddings support (Gemini Embedding 2) with multimodal embedding: bulk media push, and an AI-powered Library Search that replaces the native Media Library Search.
* Fix: Resolve a broken access control issue in the AI Forms shortcode to ensure only authorized users can access protected content (Private Page/Post).
* Fix: Prevent crashes when working with multi‑modal messages.
* Fix: Prevent the Embeddings screen from crashing when closing a modal.
* Update: Preserve links and inline HTML formatting in both the Editor Assistant and Magic Wand tools.
* Update: Refactor Magic Wand actions to use system messages.
* Update: Clean up old, deprecated options and legacy migration code.
* Update: Fixed Quick Test for Anthropic to use the models endpoint.
* Update: Chatbot Max Height moved to the Appearance section.
* Update: Rename Assistant Mode to Chatbot Mode in AI Forms, you can now use any chatbot to handle your AI Forms.
* Fix: Improve the discussions shortcode by falling back to customId to avoid invalid class names.
* Fix: Styles for the AI Chatbot Block are back.
* Add: Display shortcut prompts and names in the Discussions tab.
* Add: Introduce image embeddings support (Gemini Embedding 2) with multimodal embedding: bulk media push, and an AI-powered Library Search that replaces the native Media Library Search.
* Fix: Resolve a broken access control issue in the AI Forms shortcode to ensure only authorized users can access protected content (Private Page/Post).
* Fix: Prevent crashes when working with multi‑modal messages.
* Fix: Prevent the Embeddings screen from crashing when closing a modal.
* Update: Preserve links and inline HTML formatting in both the Editor Assistant and Magic Wand tools.
* Update: Refactor Magic Wand actions to use system messages.
* Update: Clean up old, deprecated options and legacy migration code.
* Update: Fixed Quick Test for Anthropic to use the models endpoint.
* Update: Chatbot Max Height moved to the Appearance section.
* Update: Rename Assistant Mode to Chatbot Mode in AI Forms, you can now use any chatbot to handle your AI Forms.
* Fix: Improve the discussions shortcode by falling back to customId to avoid invalid class names.
* Fix: Styles for the AI Chatbot Block are back.
* Update: Hide the Editor Assistant functions from the chatbot settings to simplify the interface.
* Add: Support for the new GPT-5.4 model for improved AI responses.
* Add: Introduce a fully featured Editor Assistant sidebar (with a client-side feedback loop for chained AI actions). It's called Assistant in the Admin Modules.
* Add: Introduce new dev filters (`mwai_mcp_server` and `mwai_function_call_params`) for customizing MCP servers and function call parameters.
* Add: Allow ignoring posts during embeddings sync, with a “hide” icon for linked posts, a “Show Ignored” modal, and a `mwai_embeddings_sync_post` filter for developers.
* Fix: Hotfix chat sessions so the chat ID resets correctly when needed.
* Fix: Restore the missing scope for AI Search.
* Update: Remove outdated internal TODOs, deprecated fields, legacy crons, and old migration code.