{"id":294594,"date":"2026-04-11T20:14:31","date_gmt":"2026-04-11T20:14:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/boost-content\/"},"modified":"2026-04-11T23:43:14","modified_gmt":"2026-04-11T23:43:14","slug":"boostmedia-ai-content-generator","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/boostmedia-ai-content-generator\/","author":23412344,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.12","stable_tag":"2.1.12","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"BoostMedia AI Content Generator","header_author":"BoostMedia","header_description":"AI-powered content generation with research, smart linking, and multilingual support","assets_banners_color":"2d5d62","last_updated":"2026-04-11 23:43:14","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/boostmedia.co.il\/","header_plugin_uri":"https:\/\/boostcontent.boostmedia.co.il","header_author_uri":"https:\/\/boostmedia.co.il","rating":0,"author_block_rating":0,"active_installs":0,"downloads":64,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1.10":{"tag":"2.1.10","author":"boostmedia","date":"2026-04-11 21:47:48"},"2.1.11":{"tag":"2.1.11","author":"boostmedia","date":"2026-04-11 22:13:30"},"2.1.12":{"tag":"2.1.12","author":"boostmedia","date":"2026-04-11 23:43:14"},"2.1.8":{"tag":"2.1.8","author":"boostmedia","date":"2026-04-11 20:14:14"},"2.1.9":{"tag":"2.1.9","author":"boostmedia","date":"2026-04-11 20:51:23"}},"upgrade_notice":{"2.1.6":"<p>Feature release: External links bulk select checkboxes, expandable summary component, bulk delete endpoint, and deploy path consistency fix.<\/p>","2.1.5":"<p>Feature release: External links AI enrichment, Polylang\/WPML language auto-assignment, reporter gender enforcement, multilingual pipeline fixes (9 items), per-page link selector, premature ready guardrail, and 10+ bug fixes across links, settings, and build system.<\/p>","2.1.4":"<p>Bug fix release: Reporter refetch spam, filter and builder fixes, logs route\/limit\/ENUM guards, cross-cutting error handling (18 files), content plan safety, settings validation, timer\/confetti\/date\/poll\/toast stability, preview URL and nonce refresh improvements.<\/p>","2.1.3":"<p>Bug fix release: Onboarding banner field fix, dashboard error states, cursor-based Jobs pagination, content plan timing, technical save guard, settings double-click protection, TypeScript defaults alignment, and updates badge sync.<\/p>","2.1.2":"<p>Bug fix release: Generated Content pagination and orphan cleanup, Jobs ghost job and pagination fixes, Links language cache and race condition fixes.<\/p>","2.1.1":"<p>Bug fix release: Dashboard real data instead of mocks, Content Types correct API response shapes, Usage accurate credit display, Create Content wizard safety guards, Settings double-submit protection.<\/p>","2.1.0":"<p>Security hardening: API key masking, changelog XSS prevention, HTTPS-only downloads, weak encryption warnings. Bug fixes for internal link keywords, Content Plan Runner null safety, and settings save guard.<\/p>","2.0.9":"<p>Complete onboarding experience: guided 4-step setup flow with pulsing indicators, per-page setup banners, dashboard progress card, settings pings, help button ping, per-user state tracking, and 35 new Hebrew translations.<\/p>","2.0.8":"<p>Sprint fix (400 error resolved), play button direct sprint submit, prerequisites guard, sidebar reorder, auto language detection, and default setting changes.<\/p>","2.0.7":"<p>Registration overhaul: Self-healing Registration Monitor with exponential backoff, management key for API key recovery, deferred cron-based registration, publishing gates, and backend registration fixes (no more 409s, transactional site+credit creation).<\/p>","2.0.6":"<p>Patch release: Sprint quality enforcement (high-confidence exit gates, server-side validation), save button fix, publishing gates for Copyscape\/images, Hebrew grammar fixes, and link analysis debug logging.<\/p>","2.0.4":"<p>Feature release: Autonomous recurring plans with publishing settings, 15-minute cron precision, consecutive failure protection, 102 Hebrew verb form corrections, and multiple bug fixes.<\/p>","2.0.3":"<p>Feature release: Plan-based article filtering with deep links from Jobs tab, plan origin badges, and 6 bug fixes covering accordion behavior, JSON parsing, i18n, and React rendering.<\/p>","2.0.2":"<p>Feature release: Jobs dashboard for tracking active and historical generation jobs, merged wizard settings step, and persistent plan save bar across all wizard steps.<\/p>","2.0.1":"<p>Patch release: Async sprint architecture with background processing, real-time progress polling, contextual question card options, and sprint resume on page refresh.<\/p>","2.0.0":"<p>Major release: Research-first content generation with Research Sprint engine, Research Maps, Article Formation, Intent Collection, and Sprint Progress steps. All existing v1.x plans continue to work unchanged.<\/p>","1.10.2":"<p>Patch release: Credit refund on generation failure, batch error resilience with retry, recurring plan title dedup, plan ID tracking.<\/p>","1.10.1":"<p>Patch release: Fixes technical QA phase getting stuck, article angle display in topic trees, conditional category prompts, subscription text contradiction, and RTL chevron positioning.<\/p>","1.10.0":"<p>Major feature milestone: Session persistence, dynamic year injection, Copyscape by default, JetEngine scan fix, recovery cards for malformed AI responses, automatic category\/author handling, and many UI improvements.<\/p>","1.9.9":"<p>Major update: Image regeneration with AI notes, correct credit pricing, tag cloud link rules, and content plan flow improvements.<\/p>","1.9.8":"<p>Switched to Google Imagen for image generation. Subscription credit rollover. Multiple bug fixes for slugs, topic interpretation, and credit consumption.<\/p>","1.8.0":"<p>Fixes stale planning question cards in the admin UI and reinforces structured follow-up question cards for content planning rounds.<\/p>","1.0.0":"<p>Initial release of Boost Content.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3504140,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3504140,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3504140,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3504140,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.1.10","2.1.11","2.1.12","2.1.8","2.1.9"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard \u2014 Overview of your generated content","2":"Content Generation \u2014 AI-powered article creation wizard","3":"Internal Links \u2014 Smart link inventory with keyword tag clouds","4":"Settings \u2014 Configure Copyscape, image generation, and more","5":"Image Regeneration \u2014 Regenerate images with AI-interpreted feedback"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[195933,8494,20443,19933,186],"plugin_category":[55],"plugin_contributors":[259996],"plugin_business_model":[],"class_list":["post-294594","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-content","plugin_tags-content-generation","plugin_tags-copyscape","plugin_tags-internal-linking","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-boostmedia","plugin_committers-boostmedia"],"banners":{"banner":"https:\/\/ps.w.org\/boostmedia-ai-content-generator\/assets\/banner-772x250.png?rev=3504140","banner_2x":"https:\/\/ps.w.org\/boostmedia-ai-content-generator\/assets\/banner-1544x500.png?rev=3504140","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/boostmedia-ai-content-generator\/assets\/icon-128x128.png?rev=3504140","icon_2x":"https:\/\/ps.w.org\/boostmedia-ai-content-generator\/assets\/icon-256x256.png?rev=3504140","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Boost Content<\/strong> is a WordPress plugin that generates high-quality articles and featured images that match your website's existing style, structure, and voice. It is a <strong>SaaS-based plugin<\/strong> \u2014 content generation is performed by the BoostContent backend service, which requires an active account and BoostCoins (credits).<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Smart Scanning<\/strong> \u2014 Automatically scans your post types (native, JetEngine, ACF), meta fields, and taxonomies<\/li>\n<li><strong>Style Learning<\/strong> \u2014 Analyzes your existing content to understand your writing style, tone, and structure<\/li>\n<li><strong>AI Article Generation<\/strong> \u2014 Creates new articles that match your site's voice, powered by Google Gemini<\/li>\n<li><strong>AI Image Generation<\/strong> \u2014 Generates featured images for articles, powered by Google Imagen<\/li>\n<li><strong>Plagiarism Checking<\/strong> \u2014 Verifies content originality using Copyscape before saving<\/li>\n<li><strong>Internal Linking<\/strong> \u2014 Deterministic shortcode-based linking system that inserts contextual internal links<\/li>\n<li><strong>Full Meta Support<\/strong> \u2014 Generates all meta field values, not just body content<\/li>\n<li><strong>Scheduling<\/strong> \u2014 Schedule generated posts for future publication<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li><strong>Scan<\/strong> \u2014 The plugin scans your post types and their complete field structure<\/li>\n<li><strong>Analyze<\/strong> \u2014 AI analyzes sample posts to learn your writing style and content patterns<\/li>\n<li><strong>Plan<\/strong> \u2014 Create a content plan with topics, keywords, and structure preferences<\/li>\n<li><strong>Generate<\/strong> \u2014 Articles and images are generated via the BoostContent backend service<\/li>\n<li><strong>Review &amp; Publish<\/strong> \u2014 Review generated content, then publish or schedule<\/li>\n<\/ol>\n\n<h4>Account &amp; Credits<\/h4>\n\n<p>Boost Content is a SaaS plugin. Content generation features require:<\/p>\n\n<ul>\n<li>A registered account (free registration includes starter credits)<\/li>\n<li>BoostCoins (credits) \u2014 consumed per 100 words of generated content<\/li>\n<li>Credits can be purchased or obtained via subscription<\/li>\n<\/ul>\n\n<p>The plugin's WordPress admin interface, link management, and scanning features work without credits.<\/p>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li>Content-heavy websites with custom post types<\/li>\n<li>Sites using JetEngine or ACF for content structure<\/li>\n<li>Agencies managing multiple content sites<\/li>\n<li>Publishers looking to scale content production while maintaining quality<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external third-party services to provide its functionality. By using these features, you agree to the respective terms of each service.<\/p>\n\n<h4>BoostContent Backend Service<\/h4>\n\n<p>The plugin connects to the BoostContent backend API (boostcontent.boostmedia.co.il) for AI-powered content generation. This is required for the plugin to function.<\/p>\n\n<p><strong>Site Registration<\/strong> (on activation):\nData sent: Site domain, WordPress site URL, management key.\nWhen: Once, automatically via WordPress cron after plugin activation.<\/p>\n\n<p><strong>Content Generation:<\/strong>\nData sent: Post type structure, sample post content (truncated to 2000 chars), reporter configuration, technical rules.\nWhen: When the user initiates content generation.<\/p>\n\n<p><strong>Link Analysis:<\/strong>\nData sent: Page titles, URLs, page content (truncated to 3000 chars).\nWhen: When the user clicks \"Complete with AI\" on internal or external links.<\/p>\n\n<p><strong>Credit Management:<\/strong>\nData sent: Site ID, API key.\nWhen: When checking credit balance or initiating purchases.<\/p>\n\n<p><strong>AI Chat:<\/strong>\nData sent: Conversation messages, content structure context.\nWhen: During Technical QA and Content Planning conversations.<\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/boostcontent.boostmedia.co.il\">https:\/\/boostcontent.boostmedia.co.il<\/a><\/li>\n<li>Terms of Service: <a href=\"https:\/\/boostcontent.boostmedia.co.il\/terms\">https:\/\/boostcontent.boostmedia.co.il\/terms<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/boostcontent.boostmedia.co.il\/privacy\">https:\/\/boostcontent.boostmedia.co.il\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>Google Gemini API<\/h4>\n\n<p>Article text generation and research grounding are powered by Google's Gemini API. Article topics, keywords, and content parameters are sent to Google's servers for processing.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/ai.google.dev\">https:\/\/ai.google.dev<\/a><\/li>\n<li>Terms of Service: <a href=\"https:\/\/policies.google.com\/terms\">https:\/\/policies.google.com\/terms<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/policies.google.com\/privacy\">https:\/\/policies.google.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>Google Imagen API<\/h4>\n\n<p>Featured image generation is powered by Google's Imagen API. Image prompts derived from article content are sent to Google's servers.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/ai.google.dev\">https:\/\/ai.google.dev<\/a><\/li>\n<li>Terms of Service: <a href=\"https:\/\/policies.google.com\/terms\">https:\/\/policies.google.com\/terms<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/policies.google.com\/privacy\">https:\/\/policies.google.com\/privacy<\/a><\/li>\n<\/ul>\n\n<h4>Image Generation &amp; Download<\/h4>\n\n<p>Generated article images are created via Google Imagen through the backend and temporarily hosted on the backend's CDN. The plugin downloads these images into the WordPress media library.<\/p>\n\n<ul>\n<li>Data sent: None \u2014 images are downloaded from the backend, not uploaded.<\/li>\n<li>When: After content generation completes, if image generation was enabled.<\/li>\n<\/ul>\n\n<h4>Copyscape API<\/h4>\n\n<p>When enabled, generated article content is sent to Copyscape's plagiarism detection service to verify originality before saving.<\/p>\n\n<ul>\n<li>Service: <a href=\"https:\/\/www.copyscape.com\">https:\/\/www.copyscape.com<\/a><\/li>\n<li>Terms of Service: <a href=\"https:\/\/www.copyscape.com\/terms.php\">https:\/\/www.copyscape.com\/terms.php<\/a><\/li>\n<\/ul>\n\n<h4>PayPal Payment Processing<\/h4>\n\n<p>When purchasing BoostCoins (the plugin's credit currency), the plugin redirects to PayPal through the BoostContent backend API. PayPal processes the payment \u2014 the plugin never handles payment card details directly.<\/p>\n\n<ul>\n<li>Data sent: Package selection, return URLs.<\/li>\n<li>When: Only when the user initiates a purchase from the Usage &amp; Costs page.<\/li>\n<li>PayPal Terms of Service: <a href=\"https:\/\/www.paypal.com\/us\/legalhub\/useragreement-full\">https:\/\/www.paypal.com\/us\/legalhub\/useragreement-full<\/a><\/li>\n<li>PayPal Privacy Policy: <a href=\"https:\/\/www.paypal.com\/us\/legalhub\/privacy-full\">https:\/\/www.paypal.com\/us\/legalhub\/privacy-full<\/a><\/li>\n<\/ul>\n\n<h3>Development<\/h3>\n\n<p>The admin interface is built with React and TypeScript, compiled using Vite.<\/p>\n\n<p>To build from source:<\/p>\n\n<ol>\n<li>Navigate to the <code>admin\/<\/code> directory<\/li>\n<li>Run <code>npm install<\/code> to install dependencies<\/li>\n<li>Run <code>npm run build<\/code> to compile the production bundle<\/li>\n<\/ol>\n\n<p>The compiled output is placed in <code>assets\/dist\/admin\/<\/code>.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>BoostMedia AI Content Generator connects to the BoostContent backend service for content generation. Content data (topics, keywords, content plans, sample posts) is sent to the backend, which uses Google Gemini for text generation, Google Imagen for image generation, and Copyscape for plagiarism checking. Payment processing is handled by PayPal when purchasing credits. Generated content is stored locally in your WordPress database. No personal visitor data is collected or transmitted.<\/p>\n\n<p>For full details, see our <a href=\"https:\/\/boostcontent.boostmedia.co.il\/privacy\">Privacy Policy<\/a> and <a href=\"https:\/\/boostcontent.boostmedia.co.il\/terms\">Terms of Service<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>boost-content<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to the Boost Content menu in the WordPress admin sidebar.<\/li>\n<li>Configure your settings and connect to the BoostContent service.<\/li>\n<li>Start generating AI-powered content!<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>An active BoostContent account (register at the plugin's settings page)<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20boostcontent%3F\"><h3>What is BoostContent?<\/h3><\/dt>\n<dd><p>BoostContent is an AI-powered content generation plugin that creates research-backed, SEO-optimized articles with internal linking, featured images, and plagiarism checking \u2014 all from within your WordPress admin.<\/p><\/dd>\n<dt id=\"how%20much%20does%20it%20cost%3F\"><h3>How much does it cost?<\/h3><\/dt>\n<dd><p>The plugin itself is free. Content generation uses BoostCoins (1 BoostCoin = \u20aa1 ILS). A typical article with research, image, and plagiarism checking costs approximately 4-5 BoostCoins. You can purchase BoostCoins through the plugin's Usage &amp; Costs page.<\/p><\/dd>\n<dt id=\"what%20ai%20services%20does%20boostcontent%20use%3F\"><h3>What AI services does BoostContent use?<\/h3><\/dt>\n<dd><p>BoostContent uses Google Gemini for article generation and research, Google Imagen for featured image creation, and Copyscape for plagiarism verification. All services are documented in the External Services section of this readme.<\/p><\/dd>\n<dt id=\"does%20boostcontent%20support%20hebrew%3F\"><h3>Does BoostContent support Hebrew?<\/h3><\/dt>\n<dd><p>Yes! BoostContent has full Hebrew and English bilingual support, including RTL layout. The AI reporter can generate content in Hebrew with research from Hebrew and English sources.<\/p><\/dd>\n<dt id=\"can%20i%20regenerate%20images%3F\"><h3>Can I regenerate images?<\/h3><\/dt>\n<dd><p>Yes. Each generated article's image can be regenerated with custom notes. The AI interprets your feedback and generates an improved image that stays relevant to the article's topic.<\/p><\/dd>\n<dt id=\"how%20does%20internal%20linking%20work%3F\"><h3>How does internal linking work?<\/h3><\/dt>\n<dd><p>BoostContent includes a deterministic post-generation linker. After content is generated, the system automatically inserts contextually relevant internal links using your site's link inventory. Links are inserted as shortcodes that resolve to real HTML links on the frontend.<\/p><\/dd>\n<dt id=\"is%20the%20generated%20content%20original%3F\"><h3>Is the generated content original?<\/h3><\/dt>\n<dd><p>BoostContent integrates Copyscape plagiarism checking. Each article is checked against the web and a private index (to prevent self-plagiarism across your own articles). Articles that exceed the similarity threshold are automatically rewritten.<\/p><\/dd>\n<dt id=\"do%20i%20need%20jetengine%3F\"><h3>Do I need JetEngine?<\/h3><\/dt>\n<dd><p>No. Boost Content works with native WordPress post types, JetEngine custom post types, and ACF fields. JetEngine integration provides the deepest field scanning.<\/p><\/dd>\n<dt id=\"can%20i%20schedule%20generated%20posts%3F\"><h3>Can I schedule generated posts?<\/h3><\/dt>\n<dd><p>Yes. You can publish immediately, save as draft, or schedule for a future date.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.12<\/h4>\n\n<ul>\n<li>Fix: Job poller extended execution time (30s \u2192 5min) with batch processing \u2014 processes up to 10 completed articles per cycle instead of timing out after 1-2<\/li>\n<li>Fix: Sprint generation logging now shows correct job ID and status (was logging non-existent keys)<\/li>\n<li>Fix: Content plan runner logs sprint job ID after successful submission<\/li>\n<\/ul>\n\n<h4>2.1.11<\/h4>\n\n<ul>\n<li>Fix: LiteSpeed Cache deep compatibility \u2014 uses official LiteSpeed PHP API (litespeed_control_set_nocache) to prevent private cache from serving stale REST responses<\/li>\n<\/ul>\n\n<h4>2.1.10<\/h4>\n\n<ul>\n<li>Fix: REST API responses now include no-cache headers to prevent LiteSpeed Cache and other caching plugins from serving stale data<\/li>\n<\/ul>\n\n<h4>2.1.9<\/h4>\n\n<ul>\n<li>Fix: PHP timeout on shared hosting during AI link analysis and image generation (set_time_limit extended for long-running backend calls)<\/li>\n<li>Fix: Link analysis batch size reduced from 10 to 3 to stay within web server connection timeouts (LiteSpeed, Nginx, etc.)<\/li>\n<\/ul>\n\n<h4>2.1.8<\/h4>\n\n<ul>\n<li>Fix: Content analysis table migration \u2014 added missing created_at column for existing installs<\/li>\n<li>Fix: Field pattern analyzer handles nested array meta values without warnings<\/li>\n<li>Fix: Content Types analysis display renders field objects correctly (was showing React error #31)<\/li>\n<li>Fix: Gemini output token limit increased for Technical QAs (8K \u2192 32K) \u2014 sites with 46+ meta fields no longer hit truncation<\/li>\n<li>Fix: Smart retry on token limit \u2014 automatically doubles token budget on retry instead of repeating with same limit<\/li>\n<li>Fix: Specific error message when AI response is too large (instead of generic \"format issue\")<\/li>\n<\/ul>\n\n<h4>2.1.6<\/h4>\n\n<ul>\n<li>New: External links bulk select checkboxes (matching internal links UX)<\/li>\n<li>New: Expandable summary component \u2014 click to expand\/collapse long summaries<\/li>\n<li>New: Bulk delete endpoint for external links<\/li>\n<li>Fix: External links table shows title, summary, keywords, AI status columns<\/li>\n<li>Fix: Deploy path consistency across sites<\/li>\n<\/ul>\n\n<h4>2.1.5<\/h4>\n\n<ul>\n<li>New: External links AI enrichment \u2014 paste a URL, AI scrapes and generates title, summary, keywords<\/li>\n<li>New: External links table redesigned to match internal links (title, summary, keywords, AI status)<\/li>\n<li>New: \"Complete with AI\" button for external links with progress bar<\/li>\n<li>New: Polylang\/WPML language auto-assigned on generated posts (no manual assignment needed)<\/li>\n<li>New: Internal plugin fields (Polylang, WPML, Wordfence, etc.) excluded from Technical QA scanning<\/li>\n<li>New: Links table per-page selector (50\/100\/200\/500) with Select All checkbox<\/li>\n<li>New: Premature ready guardrail \u2014 AI must show confirmation card before completing Technical QA<\/li>\n<li>Fix: Reporter gender enforced in article generation (masculine\/feminine Hebrew grammar)<\/li>\n<li>Fix: Question card answers use gendered singular (not plural) matching reporter gender<\/li>\n<li>Fix: Multilingual prompt pipeline \u2014 9 fixes: grammar instruction scoped to Hebrew only, binary language normalization replaced with proper map, single language source of truth, topic examples scoped, sprint\/rewrite language aligned<\/li>\n<li>Fix: Shared language utility (bc-backend) \u2014 normalizeLanguageCode, getLanguageLabel, isHebrewLanguage<\/li>\n<li>Fix: Link collection rules displayed correctly (dirty ref bug from Wave 3)<\/li>\n<li>Fix: Empty link rules blocked from collecting (was silently collecting everything)<\/li>\n<li>Fix: Content Language setting saves correctly (was resetting to Auto)<\/li>\n<li>Fix: term_scope column expanded VARCHAR(200) \u2192 TEXT (Hebrew category slugs overflow)<\/li>\n<li>Fix: App icon loads via Vite import (no more 404)<\/li>\n<li>Fix: Production build uses type=\"module\" for ES module syntax<\/li>\n<li>Fix: bcSettings injected via wp_add_inline_script (no more &amp; encoding issues)<\/li>\n<li>Fix: Copyscape rewrite language uses reporter writing language (not site language)<\/li>\n<li>Fix: generation.worker copyscape language uses shared helper<\/li>\n<li>Fix: PHP normalize_data_language expanded to support ar\/fr\/ru codes<\/li>\n<\/ul>\n\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Fix: Reporters page no longer refetches list on every row click<\/li>\n<li>Fix: \"All\" reporter filter now shows archived reporters with badge<\/li>\n<li>Fix: AI reporter builder \u2014 save button always visible, close warns about unsaved progress<\/li>\n<li>Fix: Reporter builder session null safety after failed create<\/li>\n<li>Fix: Removed unused set_default method (cross-language risk)<\/li>\n<li>Fix: Cancel while creating reporter always exits create mode<\/li>\n<li>Fix: Specialization tag keys no longer collide<\/li>\n<li>Fix: Logs route hidden when debug mode is off (redirect to dashboard)<\/li>\n<li>Fix: Logs query limit capped at 500 rows<\/li>\n<li>Fix: Log status 'submitted' mapped to valid ENUM 'success'<\/li>\n<li>Fix: Clear logs shows error on failure (was silent)<\/li>\n<li>Fix: Dashboard recent activity handles unknown action types gracefully<\/li>\n<li>Fix: API error messages shown correctly across all pages (was \"Unknown error\")<\/li>\n<li>Fix: Content plan delete checks database result<\/li>\n<li>Fix: Content plan post_length guarded against null<\/li>\n<li>Fix: Update install requires explicit target version<\/li>\n<li>Fix: Download URL allowlist tightened to \/downloads\/ path prefix<\/li>\n<li>Fix: Settings validation whitelist for language fields<\/li>\n<li>Fix: Purchase overlay timer no longer resets on re-render<\/li>\n<li>Fix: Confetti animation positions stable (memoized)<\/li>\n<li>Fix: Content Types date display guards against invalid dates<\/li>\n<li>Fix: Chat poll aborts on page navigation (no stale requests)<\/li>\n<li>Fix: Save toast timer cleaned up on unmount<\/li>\n<li>Fix: Preview URL works on subdirectory WordPress installs<\/li>\n<li>Fix: API nonce refreshed on each request (prevents stale nonce after long sessions)<\/li>\n<li>Fix: Dashboard help text no longer mentions credit balance<\/li>\n<li>Verified: Copyscape cost ~2 BoostCoins is accurate for typical articles<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Fix: Onboarding banner now checks correct API field (was showing on sites with generated content)<\/li>\n<li>Fix: Onboarding banner no longer appears on API errors<\/li>\n<li>Fix: Dashboard stat cards show \"\u2014\" on error instead of misleading zeros<\/li>\n<li>Fix: Generated Content \u2014 status counts updated after delete<\/li>\n<li>Fix: Jobs \u2014 cursor-based pagination replaces broken offset system (no more duplicates\/gaps)<\/li>\n<li>Fix: Jobs \u2014 sprint child articles always loaded for visible sprints<\/li>\n<li>Fix: Jobs \u2014 \"completed today\" count includes all terminal statuses<\/li>\n<li>Fix: Content Plans \u2014 \"Run\" marks plan only after sprint succeeds (was marking before)<\/li>\n<li>Fix: Create Content \u2014 technical save blocked when structure data missing (was silently skipping)<\/li>\n<li>Fix: Create Content \u2014 settings completion protected against double-click<\/li>\n<li>Fix: Create Content \u2014 post type from Content Types page prefills generator<\/li>\n<li>Fix: Updates \u2014 sidebar badge clears after install without page reload<\/li>\n<li>Fix: Updates \u2014 duplicate check requests deduplicated<\/li>\n<li>Fix: Settings \u2014 TypeScript defaults aligned with PHP (sample_count, post_count, copyscape)<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Fix: Generated Content page now has pagination with \"Load More\" (was limited to first 20 rows)<\/li>\n<li>Fix: Deleting a generated post also removes the WordPress post (no more orphans)<\/li>\n<li>Fix: Generated Content stats (total, published, draft) now come from server, not partial page<\/li>\n<li>Fix: Delete\/publish errors shown to user (was silent)<\/li>\n<li>Fix: Jobs \u2014 completed jobs no longer appear as \"running\" in history (ghost jobs fixed)<\/li>\n<li>Fix: Jobs \u2014 backend returns real total count for correct pagination<\/li>\n<li>Fix: Jobs \u2014 consistent page size prevents overlap and duplicate rows<\/li>\n<li>Fix: Jobs \u2014 refresh resets pagination properly<\/li>\n<li>Fix: Jobs \u2014 failed job title matches job type (generation\/sprint\/other)<\/li>\n<li>Fix: Links \u2014 taxonomy terms now refresh when switching data language<\/li>\n<li>Fix: Links \u2014 unsaved rule edits preserved on refresh<\/li>\n<li>Fix: Links \u2014 fast language switching no longer causes stale data<\/li>\n<li>Fix: Links \u2014 bulk actions protected against double-click<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Fix: Dashboard no longer shows fake stats on API failure \u2014 proper error states<\/li>\n<li>Fix: Pending publication count now queries real data (was hardcoded 0)<\/li>\n<li>Fix: Removed fake +12% trend from Content Created card<\/li>\n<li>Fix: Dashboard footer shows real plugin version (was hardcoded v1.0.0)<\/li>\n<li>Fix: Content Types \u2014 sample posts viewer now reads correct API response shape (was always empty)<\/li>\n<li>Fix: Content Types \u2014 analysis display reads correct response shape<\/li>\n<li>Fix: Content Types \u2014 removed mock data from error catches, errors properly surfaced<\/li>\n<li>Fix: Usage \u2014 \"Purchased BoostCoin\" card now shows purchased-only credits (was showing combined total)<\/li>\n<li>Fix: Usage \u2014 error state shown on credits fetch failure (was showing zeros)<\/li>\n<li>Fix: Usage \u2014 no more full-page spinner on credit refetch (subtle refresh indicator instead)<\/li>\n<li>Fix: Create Content \u2014 planId without intent now defaults to review (was blank)<\/li>\n<li>Fix: Create Content \u2014 removed references to unrendered 'generate' step<\/li>\n<li>Fix: Create Content \u2014 save failure no longer advances wizard (was silently losing data)<\/li>\n<li>Fix: Create Content \u2014 settings error no longer advances to technical<\/li>\n<li>Fix: Create Content \u2014 double-click guard on Intent submit<\/li>\n<li>Fix: Settings \u2014 save blocked when settings fail to load (prevents overwriting with defaults)<\/li>\n<li>Fix: Settings \u2014 double-submit guard on save and reset<\/li>\n<li>Fix: Delete logs now checks TRUNCATE result<\/li>\n<li>Fix: \"Show all\" content types button now navigates to Content Types page<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Security: API key no longer exposed in settings REST response (masked with last 4 chars)<\/li>\n<li>Security: Changelog HTML sanitized server-side (wp_kses_post) and client-side before rendering<\/li>\n<li>Security: Download URL restricted to HTTPS only<\/li>\n<li>Security: Admin warning when WordPress security keys are not configured (weak encryption)<\/li>\n<li>Security: Debug log warning when OpenSSL is unavailable for encryption<\/li>\n<li>Fix: Internal links $wpdb-&gt;update() format array corrected \u2014 keywords now stored as JSON (was silently cast to 0)<\/li>\n<li>Fix: Content Plan Runner handles missing technical rules gracefully (no more PHP fatal on cron)<\/li>\n<li>Fix: Settings save guards against overwriting real API key with masked display value<\/li>\n<\/ul>\n\n<h4>2.0.9<\/h4>\n\n<ul>\n<li>New: Guided onboarding \u2014 4-step setup flow with pulsing indicators on sidebar tabs<\/li>\n<li>New: Per-page setup banners guide new users through Usage, Content Types, Links, and Reporters<\/li>\n<li>New: Dashboard setup progress card shows completed\/remaining steps<\/li>\n<li>New: Settings page pings on Auto-publish and Smart Linking toggles (dismiss on hover)<\/li>\n<li>New: Help button pings until first click<\/li>\n<li>New: Per-user onboarding state (tracked via user meta, persists across devices)<\/li>\n<li>New: Updated help content (\"\u05de\u05d3\u05e8\u05d9\u05da \u05dc\u05e2\u05de\u05d5\u05d3\") for all 10 pages<\/li>\n<li>Change: Initial BoostCoins increased from 50 to 60 for new registrations<\/li>\n<li>35 new Hebrew translations for onboarding and help content<\/li>\n<\/ul>\n\n<h4>2.0.8<\/h4>\n\n<ul>\n<li>Fix: Sprint generation no longer returns 400 \u2014 intent_state properly mapped to content_plan<\/li>\n<li>Fix: Play button on Content Plans submits sprint directly \u2192 navigates to Jobs page<\/li>\n<li>Fix: Incomplete plans show edit icon instead of play<\/li>\n<li>New: Prerequisites guard on Create Content \u2014 blocks when no scanned post types or reporters<\/li>\n<li>New: Sidebar tabs reordered \u2014 Dashboard \u2192 Setup \u2192 Agency \u2192 System<\/li>\n<li>New: Logs tab hidden when debug mode is off<\/li>\n<li>New: Auto-detect site language on activation (sets working language)<\/li>\n<li>Change: Default sample count \u2192 10, default post count \u2192 10<\/li>\n<li>Change: \"Working Language\" in Settings renamed to \"Default working language\"<\/li>\n<\/ul>\n\n<h4>2.0.7<\/h4>\n\n<ul>\n<li>New: Registration Monitor \u2014 daily health check with exponential backoff (self-healing connection)<\/li>\n<li>New: Management key \u2014 secure per-site key enables automatic API key recovery<\/li>\n<li>New: Deferred registration \u2014 15-second cron after activation (more reliable than sync)<\/li>\n<li>New: Publishing gates \u2014 Copyscape\/image checks before auto-publishing<\/li>\n<li>Fix: Backend registration no longer returns 409 for existing domains<\/li>\n<li>Fix: Site + credit grant wrapped in single transaction (no orphan sites)<\/li>\n<li>Fix: Credit API routes now require site authentication<\/li>\n<li>Security: Management key endpoint for authenticated key rotation<\/li>\n<\/ul>\n\n<h4>2.0.6<\/h4>\n\n<ul>\n<li>Fix: Save button stays on current step \u2014 no more jumping to Settings (generation counter approach)<\/li>\n<li>Fix: Editing saved plans shows accordion checkmarks correctly<\/li>\n<li>Fix: Intent\/sprint state restored when reloading plans<\/li>\n<li>Fix: Sprint exit requires HIGH confidence articles (3+ findings) \u2014 no more medium-only batches<\/li>\n<li>Fix: Server-side confidence validation \u2014 model can't inflate confidence beyond evidence<\/li>\n<li>Fix: Hebrew question card options use neutral form (not plural \"you\")<\/li>\n<li>Fix: Publishing gates \u2014 articles with Copyscape issues or missing images saved as draft<\/li>\n<li>Fix: Drip scheduling works even without saved plan ID<\/li>\n<li>Fix: Singular Hebrew grammar for single article (\"\u05e0\u05d5\u05e6\u05e8 \u05de\u05d0\u05de\u05e8 \u05d0\u05d7\u05d3\")<\/li>\n<li>Fix: \"Findings\" translated to Hebrew (\"\u05de\u05de\u05e6\u05d0\u05d9\u05dd\")<\/li>\n<li>Fix: Sprint always saves plan first to ensure valid plan_id<\/li>\n<li>Improvement: Sprint Think prompt enforces honest confidence assessment<\/li>\n<li>Improvement: Link analysis debug logging for keyword investigation<\/li>\n<\/ul>\n\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>New: Publishing settings per plan \u2014 draft, publish immediately, drip daily, or drip weekly<\/li>\n<li>New: Fully autonomous recurring plans \u2014 research, generate, and publish without human intervention<\/li>\n<li>New: Scheduled plans section in Jobs tab \u2014 shows upcoming runs greyed out with next run time<\/li>\n<li>New: Cron precision \u2014 recurring plans checked every 15 minutes (was daily)<\/li>\n<li>New: Consecutive failure protection \u2014 plans auto-deactivate after 3 failed runs, not on first failure<\/li>\n<li>Improvement: All Hebrew UI buttons use proper \u05e9\u05dd \u05e4\u05e2\u05d5\u05dc\u05d4 (action noun) form \u2014 102 strings updated<\/li>\n<li>Improvement: Sprint research angles now produced in the reporter's language (Hebrew for Hebrew plans)<\/li>\n<li>Improvement: Archived reporters hidden by default \u2014 new \"Archived\" filter to show them<\/li>\n<li>Improvement: Reporter name shown in progress bar info strip<\/li>\n<li>Fix: Settings accordion sections can be reopened after completion<\/li>\n<li>Fix: Reporter section requires explicit confirmation (no auto-advance on mount)<\/li>\n<li>Fix: Internal links keywords \"0\" \u2014 normalized to valid JSON arrays<\/li>\n<li>Fix: Technical QA JSON parse errors \u2014 multi-strategy recovery + retry<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>New: Filter Generated Content by plan \u2014 click \"View articles\" from Jobs tab to see only that plan's articles<\/li>\n<li>New: Plan origin badges on job cards \u2014 shows one-time vs scheduled<\/li>\n<li>New: Plan ID shown on generated article cards<\/li>\n<li>Fix: Settings accordion sections can be reopened after completion<\/li>\n<li>Fix: Reporter section no longer auto-marks complete without user interaction<\/li>\n<li>Fix: JSON parser handles missing values pattern from Gemini (\"key\":, \u2192 \"key\":null)<\/li>\n<li>Fix: \"Research Scope\" and job status badges translated to Hebrew<\/li>\n<li>Fix: No more stray \"0\" rendered in job cards (React conditional rendering fix)<\/li>\n<li>Fix: Button icons positioned inline with text on job cards<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>New: Jobs tab \u2014 track all active research sprints and article generation in one dashboard<\/li>\n<li>New: Active job badges on sidebar navigation<\/li>\n<li>New: Job history with costs, duration, and per-article breakdown<\/li>\n<li>New: Run Again \/ View Articles actions from job history<\/li>\n<li>Improvement: First 3 wizard steps merged into compact \"Settings\" accordion<\/li>\n<li>Improvement: Plan save bar visible on all steps \u2014 save new plans directly from the wizard<\/li>\n<li>Improvement: Step progress bar fits all steps comfortably (7 in sprint mode, 5 in legacy)<\/li>\n<li>Fix: Old wizard URLs (?step=select, ?step=configure) redirect to Settings<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fix: Research sprint now runs in the background (non-blocking) \u2014 user can navigate away and return<\/li>\n<li>Fix: Sprint progress shows real-time data (actual round count and findings)<\/li>\n<li>Fix: Question cards during intent collection show contextual options (not just \"Other\")<\/li>\n<li>Fix: Sprint prompt instructs reporter to always include clickable options<\/li>\n<li>New: Sprint resume \u2014 page refresh doesn't lose sprint progress<\/li>\n<li>New: Sprint polling every 5 seconds with live status updates<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>NEW: Research-first content generation \u2014 articles emerge from iterative research, not pre-planned topics<\/li>\n<li>NEW: Research Sprint engine \u2014 AI reporter explores your field through multiple research rounds, building knowledge iteratively<\/li>\n<li>NEW: Research Map \u2014 persistent tree structure that stores all research knowledge across plan runs<\/li>\n<li>NEW: Article Formation with Gravitational Model \u2014 articles backed by 2+ research findings, validated against user intent<\/li>\n<li>NEW: Intent Collection step \u2014 conversational chat to understand audience, goals, and research preferences<\/li>\n<li>NEW: Sprint Progress step \u2014 real-time research sprint status display<\/li>\n<li>NEW: Article Review step \u2014 review proposed articles with confidence indicators and backing findings before generation<\/li>\n<li>NEW: Reporter Memory \u2014 research maps persist between runs, preventing content repetition<\/li>\n<li>NEW: Time-aware research branches \u2014 branches track freshness and revisit schedules<\/li>\n<li>NEW: Automatic sprint mode \u2014 system adapts research depth based on article count (no user configuration needed)<\/li>\n<li>NEW: Recurring plans use research sprints with persistent memory across runs<\/li>\n<li>Improvement: Credit refund on permanent generation failure<\/li>\n<li>Improvement: Batch generation continues after single article failure with retry option<\/li>\n<li>Improvement: Recurring plans correctly track generated titles for dedup<\/li>\n<li>All existing v1.x plans continue to work unchanged<\/li>\n<\/ul>\n\n<h4>1.10.2<\/h4>\n\n<ul>\n<li>Fix: Credits are now refunded when article generation permanently fails<\/li>\n<li>Fix: Batch generation continues after a single article failure (remaining articles still generated)<\/li>\n<li>Fix: Partial generation success shows per-article breakdown with retry option<\/li>\n<li>Fix: Recurring plans correctly track previously generated titles to prevent repetition<\/li>\n<li>Fix: Plan ID stored on generated posts for accurate plan-to-article tracking<\/li>\n<li>Fix: Recovery cards display in Hebrew (not English) during Hebrew conversations<\/li>\n<li>Fix: Technical QA auto-advances at 60%+ understanding<\/li>\n<li>Fix: Recovery cards not forced when AI asks a natural follow-up question<\/li>\n<li>Fix: Empty question cards auto-populate with Yes\/No options<\/li>\n<li>Fix: New content flows isolated from previous flow context<\/li>\n<li>Fix: Additional Hebrew translations for captured technical answers<\/li>\n<li>Fix: \"Start over\" button styled consistently with plugin design<\/li>\n<li>Fix: Bulk link action buttons positioned in top toolbar<\/li>\n<li>Fix: AI instructed to synchronize topic tree prose with JSON data<\/li>\n<\/ul>\n\n<h4>1.10.1<\/h4>\n\n<ul>\n<li>Fix: Technical QAs phase no longer gets stuck \u2014 auto-ready promotion + confirmation card for Round 4<\/li>\n<li>Fix: Article angles in topic tree display correctly (title\u2192angle field name mismatch resolved)<\/li>\n<li>Fix: Pillar and cluster titles normalize from alternative field names<\/li>\n<li>Fix: Category prompt is conditional \u2014 single category skips question, multiple asks about distribution<\/li>\n<li>Fix: Removed contradicting \"no accumulation\" subscription text (coins now roll over)<\/li>\n<li>Fix: Navigation chevrons positioned correctly relative to button text in RTL<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>New: Image regeneration with AI-interpreted user notes (Gemini rewrites prompts for Imagen)<\/li>\n<li>New: Image lightbox with full-size preview and regenerate button<\/li>\n<li>New: Link collection rules displayed as consolidated tag clouds<\/li>\n<li>New: Bulk \"Remove from all posts\" action for internal links<\/li>\n<li>New: Article count changes auto-notify the AI reporter<\/li>\n<li>New: Recurring plans generate broader topic angles for content variety<\/li>\n<li>New: Credit balance correctly displayed in content creation wizard<\/li>\n<li>New: Technical answers displayed with Hebrew labels<\/li>\n<li>New: Review step matches Generated Content controls (Edit in WP, Publish, Copyscape badges)<\/li>\n<li>New: Session persistence \u2014 page refresh no longer resets content creation progress<\/li>\n<li>New: Dynamic year injection \u2014 AI reporter always knows the current year<\/li>\n<li>New: Copyscape enabled by default for new installations<\/li>\n<li>Fix: Pricing overhaul \u2014 correct ILS-based conversion (1 BoostCoin = \u20aa1) with 3x markup<\/li>\n<li>Fix: Usage page shows both per-article and per-100-words rate<\/li>\n<li>Fix: \"Play\" on existing content plan no longer redirects to empty review page<\/li>\n<li>Fix: Inline CSS spans stripped from generated content<\/li>\n<li>Fix: Article slugs limited to 3-5 words for SEO<\/li>\n<li>Fix: Topics interpreted naturally (no literal subject repetition)<\/li>\n<li>Fix: Generated images no longer contain text\/watermarks<\/li>\n<li>Fix: Copyscape uses API-reported costs for maximum accuracy<\/li>\n<li>Fix: JetEngine fields from other post types no longer leak into scans<\/li>\n<li>Fix: Malformed AI responses trigger recovery cards instead of stuck conversations<\/li>\n<li>Fix: Category assignment and post_author handled automatically (not asked by AI)<\/li>\n<li>Fix: RTL chevron direction on navigation buttons<\/li>\n<li>Fix: Reduced padding in question cards for better readability<\/li>\n<li>Fix: In-app edit removed from review step (WordPress edit only)<\/li>\n<\/ul>\n\n<h4>1.9.9<\/h4>\n\n<ul>\n<li>New: Regenerate article images with custom AI-interpreted notes<\/li>\n<li>New: Full-size image preview lightbox<\/li>\n<li>New: Link collection rules displayed as compact tag clouds<\/li>\n<li>New: Article count changes automatically update the content plan<\/li>\n<li>New: Broader topic angles for recurring content plans<\/li>\n<li>New: Hebrew labels for technical settings answers<\/li>\n<li>New: Full controls in content review step (Edit, Publish, Status badges)<\/li>\n<li>Fix: Correct credit pricing (1 BoostCoin = \u20aa1)<\/li>\n<li>Fix: Content plan \"Play\" button works correctly for re-generation<\/li>\n<li>Fix: Clean HTML output (no inline CSS spans)<\/li>\n<li>Fix: SEO-friendly article slugs (3-5 words)<\/li>\n<li>Fix: Natural article titles (no literal topic repetition)<\/li>\n<li>Fix: Images generated without text\/watermarks<\/li>\n<\/ul>\n\n<h4>1.9.8<\/h4>\n\n<ul>\n<li>New: Switched image generation to Google Imagen 4<\/li>\n<li>New: Subscription credit rollover (unused credits preserved)<\/li>\n<li>Fix: Inline CSS stripped from generated content<\/li>\n<li>Fix: Short SEO-friendly slugs<\/li>\n<li>Fix: Natural topic interpretation<\/li>\n<\/ul>\n\n<h4>1.9.7<\/h4>\n\n<ul>\n<li>New: Copyscape plagiarism checking (web + private index)<\/li>\n<li>New: Deterministic post-generation internal linking<\/li>\n<li>New: Per-100-words transparent pricing<\/li>\n<li>New: Research grounding with retry mechanism<\/li>\n<li>Fix: All WordPress Plugin Check (PCP) errors and warnings resolved<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Fix: Content planning conversation state improvements<\/li>\n<li>Fix: Stale question cards properly cleared between rounds<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>JetEngine scanning<\/li>\n<li>Content style analysis<\/li>\n<li>AI content generation<\/li>\n<li>Post scheduling<\/li>\n<\/ul>","raw_excerpt":"AI-powered content generation for WordPress. Learns your style, generates articles and images via a managed backend, and builds internal links.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/294594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=294594"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/boostmedia"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=294594"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=294594"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=294594"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=294594"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=294594"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=294594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}