{"id":287352,"date":"2026-03-11T13:19:19","date_gmt":"2026-03-11T13:19:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/newsroom-ai-co-pilot\/"},"modified":"2026-05-26T15:27:20","modified_gmt":"2026-05-26T15:27:20","slug":"newsroom-ai-assistant","status":"publish","type":"plugin","link":"https:\/\/fr.wordpress.org\/plugins\/newsroom-ai-assistant\/","author":20490193,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Newsroom OS \u2013 Discover & AI-Visibility OS","header_author":"Kostas Karapapas","header_description":"A control center for newsrooms. Assign topics, track live Google Trends, and use customizable AI Prompts (with FAQ Schema) for better content formatting.","assets_banners_color":"8ca7ad","last_updated":"2026-05-26 15:27:20","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/newsroom-ai-assistant\/","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":1363,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"koskar22","date":"2026-03-21 17:59:14"},"1.4.3.3":{"tag":"1.4.3.3","author":"koskar22","date":"2026-04-13 17:12:26"},"1.4.4":{"tag":"1.4.4","author":"koskar22","date":"2026-04-18 08:01:22"},"1.5":{"tag":"1.5","author":"koskar22","date":"2026-04-24 16:20:22"},"1.5.1":{"tag":"1.5.1","author":"koskar22","date":"2026-04-28 19:23:19"},"1.6.0":{"tag":"1.6.0","author":"koskar22","date":"2026-04-29 12:03:11"},"1.7.0":{"tag":"1.7.0","author":"koskar22","date":"2026-05-11 19:47:34"},"1.7.1":{"tag":"1.7.1","author":"koskar22","date":"2026-05-12 15:04:41"},"1.7.2":{"tag":"1.7.2","author":"koskar22","date":"2026-05-13 08:47:12"},"1.7.3":{"tag":"1.7.3","author":"koskar22","date":"2026-05-14 11:32:06"},"1.7.4":{"tag":"1.7.4","author":"koskar22","date":"2026-05-16 06:30:28"},"1.8.0":{"tag":"1.8.0","author":"koskar22","date":"2026-05-19 09:31:57"},"1.8.1":{"tag":"1.8.1","author":"koskar22","date":"2026-05-23 05:45:44"},"1.9.0":{"tag":"1.9.0","author":"koskar22","date":"2026-05-24 17:28:42"},"2.0.0":{"tag":"2.0.0","author":"koskar22","date":"2026-05-26 15:27:20"}},"upgrade_notice":{"2.0.0":"<p><strong>Big update:<\/strong> Google Search Console sync (Pro) \u2014 real Discover, Google News, and web clicks per author and post. Author Performance 2.0 UI with tabs and coaching. Creates table <code>wp_newsai_gsc_performance<\/code> on upgrade. Configure under Settings \u2192 PRO \u2192 Indexing after updating. Safe upgrade from 1.9.x and 1.7.4+.<\/p>","1.9.1":"<p>Stability release: schema bootstrap fix, author profile save hardening, holiday import validation, lead image representativeOfPage, PHPUnit smoke tests. No database migration.<\/p>","1.9.0":"<p>Performance and entity SEO release: smaller editor tag pool, faster decay scans, Wikidata lazy tag enrichment, AI Tag Match (Pro), and timeline UX fixes. No database migration.<\/p>","1.8.2":"<p>Recommended after <strong>1.8.1<\/strong>: safer IndexNow permalink handling, <strong>free<\/strong> personal performance in My Inbox, and Discover OG scoring for <strong>AIOSEO<\/strong> \/ <strong>SEOPress<\/strong>. No database migration.<\/p>","1.8.1":"<p>Recommended after <strong>1.8.0<\/strong> (or direct from <strong>1.7.4+<\/strong>): <strong>Find archive links<\/strong> fix, Discover <strong>OG<\/strong> scoring, four-locale Discover UI, <strong>tested through WordPress 7.0<\/strong>, GPL license header, escaping and prepared-SQL hardening for Plugin Check. No database migration.<\/p>","1.8.0":"<p>Recommended for every site still on <strong>1.7.4 or older<\/strong>: one update to get Discover Score v2, Breaking News Mode, live coverage tools, Author Performance Discover coaching, Classic Editor crash fix, and duplicate tag guard fix. Works in <strong>Gutenberg and Classic Editor<\/strong>. No database migration \u2014 upload and activate over your current install.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3491943,"resolution":"256x256","location":"assets","locale":"","width":254,"height":261}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3491943,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3491943,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0","1.4.3.3","1.4.4","1.5","1.5.1","1.6.0","1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.8.0","1.8.1","1.9.0","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3549362,"resolution":"1","location":"assets","locale":"","width":1554,"height":1651},"screenshot-10.jpg":{"filename":"screenshot-10.jpg","revision":3549362,"resolution":"10","location":"assets","locale":"","width":1557,"height":1521},"screenshot-11.jpg":{"filename":"screenshot-11.jpg","revision":3549362,"resolution":"11","location":"assets","locale":"","width":513,"height":1578},"screenshot-12.jpg":{"filename":"screenshot-12.jpg","revision":3549362,"resolution":"12","location":"assets","locale":"","width":530,"height":1578},"screenshot-13.jpg":{"filename":"screenshot-13.jpg","revision":3549362,"resolution":"13","location":"assets","locale":"","width":491,"height":1203},"screenshot-14.jpg":{"filename":"screenshot-14.jpg","revision":3549362,"resolution":"14","location":"assets","locale":"","width":534,"height":1590},"screenshot-15.jpg":{"filename":"screenshot-15.jpg","revision":3549362,"resolution":"15","location":"assets","locale":"","width":564,"height":797},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3549362,"resolution":"2","location":"assets","locale":"","width":1554,"height":1433},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3549362,"resolution":"3","location":"assets","locale":"","width":1500,"height":1131},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3549362,"resolution":"4","location":"assets","locale":"","width":1500,"height":1275},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3549362,"resolution":"5","location":"assets","locale":"","width":2664,"height":1437},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3549362,"resolution":"6","location":"assets","locale":"","width":1774,"height":1395},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3549362,"resolution":"7","location":"assets","locale":"","width":2652,"height":1608},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3549362,"resolution":"8","location":"assets","locale":"","width":2556,"height":1065},"screenshot-9.jpg":{"filename":"screenshot-9.jpg","revision":3549362,"resolution":"9","location":"assets","locale":"","width":1798,"height":1521}},"screenshots":{"1":"<strong>Publication Readiness<\/strong> \u2014 Editorial + Discover twin gauges and Next Best Action","2":"<strong>Author Performance 2.0 (Pro)<\/strong> \u2014 team cards, GSC clicks, expand with Summary \/ Articles \/ Coaching tabs","3":"<strong>Google Search Console settings (Pro)<\/strong> \u2014 service account, property, Test + Sync now","4":"<strong>Breaking news mode<\/strong> \u2014 live coverage panel, H3 updates, schema-ready workflow","5":"<strong>Editorial dashboard<\/strong> \u2014 tasks, KPIs, desk overview","6":"<strong>Trend Radar<\/strong> \u2014 Google Trends and News in the editor sidebar","7":"<strong>Smart tags<\/strong> \u2014 confidence-scored suggestions, one-click insert","8":"<strong>Schema<\/strong> \u2014 NewsArticle \/ LiveBlogPosting JSON-LD in page source","9":"<strong>Setup wizard<\/strong> \u2014 four steps, under one minute"}},"plugin_section":[],"plugin_tags":[96456,252696,11913,125621,127115],"plugin_category":[46],"plugin_contributors":[257671],"plugin_business_model":[],"class_list":["post-287352","plugin","type-plugin","status-publish","hentry","plugin_tags-editorial-workflow","plugin_tags-google-discover","plugin_tags-newsroom","plugin_tags-schema-markup","plugin_tags-search-console","plugin_category-editor-and-writing","plugin_contributors-koskar22","plugin_committers-koskar22"],"banners":{"banner":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/banner-772x250.jpg?rev=3491943","banner_2x":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/banner-1544x500.jpg?rev=3491943","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/icon-256x256.jpg?rev=3491943","icon_2x":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/icon-256x256.jpg?rev=3491943","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-1.jpg?rev=3549362","caption":"<strong>Publication Readiness<\/strong> \u2014 Editorial + Discover twin gauges and Next Best Action"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-2.jpg?rev=3549362","caption":"<strong>Author Performance 2.0 (Pro)<\/strong> \u2014 team cards, GSC clicks, expand with Summary \/ Articles \/ Coaching tabs"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-3.jpg?rev=3549362","caption":"<strong>Google Search Console settings (Pro)<\/strong> \u2014 service account, property, Test + Sync now"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-4.jpg?rev=3549362","caption":"<strong>Breaking news mode<\/strong> \u2014 live coverage panel, H3 updates, schema-ready workflow"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-5.jpg?rev=3549362","caption":"<strong>Editorial dashboard<\/strong> \u2014 tasks, KPIs, desk overview"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-6.jpg?rev=3549362","caption":"<strong>Trend Radar<\/strong> \u2014 Google Trends and News in the editor sidebar"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-7.jpg?rev=3549362","caption":"<strong>Smart tags<\/strong> \u2014 confidence-scored suggestions, one-click insert"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-8.jpg?rev=3549362","caption":"<strong>Schema<\/strong> \u2014 NewsArticle \/ LiveBlogPosting JSON-LD in page source"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-9.jpg?rev=3549362","caption":"<strong>Setup wizard<\/strong> \u2014 four steps, under one minute"},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-10.jpg?rev=3549362","caption":""},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-11.jpg?rev=3549362","caption":""},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-12.jpg?rev=3549362","caption":""},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-13.jpg?rev=3549362","caption":""},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-14.jpg?rev=3549362","caption":""},{"src":"https:\/\/ps.w.org\/newsroom-ai-assistant\/assets\/screenshot-15.jpg?rev=3549362","caption":""}],"raw_content":"<!--section=description-->\n<h4>Big update 2.0 \u2014 Google Search Console meets your newsroom<\/h4>\n\n<p><strong>Newsroom OS 2.0<\/strong> connects your editorial desk to <strong>real Google traffic<\/strong>. Writers still get <strong>Focus<\/strong> (article quality) and <strong>Discover readiness<\/strong> (distribution checklist) in the editor \u2014 separate from <strong>Search Console clicks<\/strong> (Discover, Google News, and web search). Chiefs see who publishes well <em>and<\/em> who earns traffic, in one dashboard.<\/p>\n\n<p>Built for <strong>newsrooms, publishers, and high-frequency editorial teams<\/strong> \u2014 not generic blogs.<\/p>\n\n<p><strong>Pro license:<\/strong> <a href=\"https:\/\/newsos.io\/\">newsos.io<\/a> \u2014 one key per site, same plugin you already install.<\/p>\n\n<p><strong>Yoast, Rank Math, AIOSEO, and SEOPress optimize posts.<\/strong> Newsroom OS runs the newsroom: Discover-ready signals, semantic JSON-LD, assignments, writer coaching, and <strong>GSC-backed analytics<\/strong> in one editorial layer on top of WordPress.<\/p>\n\n<h4>Classic Editor &amp; Gutenberg (Block Editor)<\/h4>\n\n<p>Newsroom OS is built for <strong>real newsroom setups<\/strong> \u2014 including sites that still use Classic Editor, sites on full Gutenberg, and hybrid installs (block editor with the classic Tags metabox).<\/p>\n\n<p><strong>Gutenberg \/ Block Editor<\/strong><\/p>\n\n<ul>\n<li>Publication Readiness sidebar (Editorial + Discover twin gauges, Next Best Action)<\/li>\n<li>REST-aware duplicate tag guard (snackbar + \u201cUse existing\u201d \/ \u201cKeep anyway\u201d)<\/li>\n<li>Breaking news mode, live H3 update insertion via blocks<\/li>\n<li>Trend Radar, Smart Tags, AI Assist (Pro) in the editor sidebar<\/li>\n<li>JS strings via <code>wp_set_script_translations<\/code> (el, en, de, es)<\/li>\n<\/ul>\n\n<p><strong>Classic Editor<\/strong><\/p>\n\n<ul>\n<li>Same Publication Readiness panel and scores (TinyMCE \/ <code>#content<\/code> hooks \u2014 no block editor APIs on classic screens)<\/li>\n<li>Classic Tags metabox duplicate guard (AJAX before the tag chip is added)<\/li>\n<li>Breaking mode, live updates, and smart tag insert via Classic UI<\/li>\n<li><strong>Stability:<\/strong> Gutenberg-only APIs (<code>wp.data.subscribe<\/code>, <code>getEditedPostContent<\/code>) run only when <code>block-editor-page<\/code> is present \u2014 prevents Classic Editor <code>blocks.min.js<\/code> stack overflows on large sites<\/li>\n<\/ul>\n\n<p><strong>Works with any theme<\/strong> (Astra, GeneratePress, Newspaper, NewsMag, Flavor, etc.) and alongside Yoast SEO, Rank Math, WooCommerce, and SureCart.<\/p>\n\n<p><strong>WordPress 7.0:<\/strong> Tested through <strong>WordPress 7.0<\/strong> (Classic Editor, Gutenberg, and wp-admin dashboard). Requires <strong>PHP 7.4+<\/strong> (PHP 8.1+ recommended).<\/p>\n\n<h4>Six pillars (2.0)<\/h4>\n\n<p><strong>1. Discover optimization<\/strong><\/p>\n\n<ul>\n<li><strong>Publication Readiness<\/strong> \u2014 twin scores in the editor: <strong>Editorial (Focus)<\/strong> and <strong>Discover readiness<\/strong>. They are separate on purpose.<\/li>\n<li><strong>Discover Score<\/strong> \u2014 Google-aligned checklist: hero 1200px+, 16:9, 300k pixels, alt; clear 55\u201370 headline (anti-clickbait); topic\/tags; optional trend fit; saved OG image when available.<\/li>\n<li><strong>Breaking news mode<\/strong> \u2014 one toggle: LiveBlogPosting schema, faster IndexNow\/Google ping, optional \u201cdeveloping story\u201d badge, auto-expire, live-update workflow (H3 headings).<\/li>\n<li><strong>Trend Radar<\/strong> \u2014 Google Trends + Google News in the sidebar, localized per country.<\/li>\n<\/ul>\n\n<p><strong>2. Google Search Console traffic (Pro) \u2014 NEW in 2.0<\/strong><\/p>\n\n<ul>\n<li><strong>Service account sync<\/strong> \u2014 connect Search Console with <code>webmasters.readonly<\/code>; separate token from the Indexing API.<\/li>\n<li><strong>Discover, Google News, and web search<\/strong> \u2014 per-post clicks, impressions, CTR, and average position stored in your database (<code>wp_newsai_gsc_performance<\/code>).<\/li>\n<li><strong>Sync now<\/strong> in settings plus <strong>daily cron<\/strong> (04:00 site time) when Pro is active.<\/li>\n<li><strong>Author Performance<\/strong> \u2014 real clicks per writer, top articles by traffic, coaching tab, 7d \/ 30d \/ 90d windows.<\/li>\n<li><strong>Posts list<\/strong> \u2014 <strong>GSC (30d)<\/strong> column for chiefs (<code>edit_others_posts<\/code>).<\/li>\n<li><strong>My Inbox<\/strong> \u2014 writers see their own GSC totals when sync is enabled.<\/li>\n<li><strong>Clear labeling<\/strong> \u2014 Discover Score = editorial readiness; GSC numbers = measured Google clicks (not the same metric).<\/li>\n<\/ul>\n\n<p><strong>3. Semantic schema &amp; entities<\/strong><\/p>\n\n<ul>\n<li><strong>NewsArticle \/ LiveBlogPosting JSON-LD<\/strong> \u2014 <code>@graph<\/code> with Organization, WebPage, author <code>Person<\/code>, geo, <code>about<\/code> \/ <code>mentions<\/code>.<\/li>\n<li><strong>Entity tags<\/strong> \u2014 Wikidata Q-IDs, coordinates, entity types woven into schema; lazy enrichment when tags are used (1.9+).<\/li>\n<li><strong>Richness presets<\/strong> \u2014 Minimal \/ Balanced \/ Full; optional <code>articleBody<\/code> modes (omit, full, first N words).<\/li>\n<li><strong>Works with Yoast SEO &amp; Rank Math<\/strong> \u2014 reads your meta; does not replace them.<\/li>\n<\/ul>\n\n<p><strong>4. Editorial workflow<\/strong><\/p>\n\n<ul>\n<li><strong>Tasks &amp; assignments<\/strong> \u2014 deadlines, keywords, briefs, reference links.<\/li>\n<li><strong>Dashboard<\/strong> \u2014 active \/ overdue \/ completed, KPIs, SEO health.<\/li>\n<li><strong>Roles<\/strong> \u2014 chiefs see the full desk; writers see <strong>My Inbox<\/strong> only.<\/li>\n<li><strong>Content Decay Radar (Pro)<\/strong> \u2014 flags stale evergreen posts and opens refresh tasks.<\/li>\n<\/ul>\n\n<p><strong>5. AI newsroom (Pro, BYOK)<\/strong><\/p>\n\n<ul>\n<li><strong>OpenAI, Gemini, or Groq<\/strong> \u2014 your API key stays on your site; free tiers supported (Groq \/ Gemini).<\/li>\n<li><strong>Discover-optimized titles<\/strong> (55\u201370 chars, five angles), targeted optimization hints, trend-aware keywords, <strong>AI Tag Match<\/strong> from your site taxonomy.<\/li>\n<li><strong>Geo-aware language<\/strong> \u2014 answers in the language of your configured region (40+ locales).<\/li>\n<\/ul>\n\n<p><strong>6. Knowledge layer<\/strong><\/p>\n\n<ul>\n<li><strong>Smart Tag Suggester<\/strong> \u2014 weighted, confidence-scored tags from <em>your<\/em> taxonomy; one-click insert; duplicate-tag guard (Pro).<\/li>\n<li><strong>Story timelines<\/strong> \u2014 archive clusters + internal-link blocks + CollectionPage schema.<\/li>\n<li><strong>Archive link finder<\/strong> \u2014 semantic internal links from your own back catalog (accent-aware scoring).<\/li>\n<li><strong>Author E-E-A-T<\/strong> \u2014 profiles, schema <code>Person<\/code>, performance analytics (Pro).<\/li>\n<\/ul>\n\n<p>UI in <strong>Greek, English, German, and Spanish<\/strong> (per-site language picker). See <code>languages\/README.txt<\/code> for gettext catalogs.<\/p>\n\n\n\n<h3>\ud83c\udd93 What you get for FREE<\/h3>\n\n<p>Everything below ships in the free plugin \u2014 no signup, no rate limits, no nag screens:<\/p>\n\n<ul>\n<li><strong>Publication Readiness<\/strong> \u2014 Editorial score + <strong>Discover Score<\/strong>, Next Best Action, detailed checklists<\/li>\n<li><strong>Breaking news mode<\/strong> \u2014 LiveBlog schema workflow with auto-expire (when LiveBlog is enabled in settings)<\/li>\n<li><strong>Smart Tag Suggester<\/strong> \u2014 confidence levels, one-click insert<\/li>\n<li><strong>Editorial dashboard<\/strong> \u2014 tasks, deadlines, keywords, briefings<\/li>\n<li><strong>Trend Radar<\/strong> \u2014 Google Trends + News in the editor<\/li>\n<li><strong>Auto-story timeline<\/strong> + archive internal-link finder<\/li>\n<li><strong>NewsArticle JSON-LD<\/strong> \u2014 entities, geo, E-E-A-T author signals<\/li>\n<li><strong>SEO auditor<\/strong>, <strong>4-step wizard<\/strong>, <strong>4-language UI<\/strong><\/li>\n<li><strong>My Inbox personal stats<\/strong> \u2014 your own 30-day Focus &amp; Discover readiness (team GSC analytics are Pro)<\/li>\n<\/ul>\n\n\n\n<h3>\ud83d\ude80 PRO Features (Buy at [newsos.io](https:\/\/newsos.io\/) \u2014 \u20ac29\/month per site)<\/h3>\n\n<p>Pro is a single license key tied to one site, activated inside your dashboard at \"Editorial Control \u2192 \ud83d\ude80 PRO\". No separate plugin to install \u2014 Pro unlocks inside the same plugin you already trust. Need more than one site? Buy one license per site at newsos.io.<\/p>\n\n<h4>\ud83d\udcca Google Search Console integration (NEW in 2.0)<\/h4>\n\n<p>Stop guessing which writers earn traffic. Newsroom OS pulls <strong>Search Analytics<\/strong> into WordPress:<\/p>\n\n<ul>\n<li><strong>Three channels<\/strong> \u2014 Discover clicks, Google News clicks, and web search clicks (plus impressions, CTR, position where available).<\/li>\n<li><strong>Per-post storage<\/strong> \u2014 map GSC page URLs to posts and authors; aggregate by 7 \/ 30 \/ 90 days.<\/li>\n<li><strong>Settings \u2192 PRO \u2192 Indexing<\/strong> \u2014 paste your service account JSON, set the property (<code>sc-domain:example.com<\/code> or URL-prefix), test connection, <strong>Sync now<\/strong>.<\/li>\n<li><strong>Automatic daily sync<\/strong> \u2014 Pro + enabled + valid credentials.<\/li>\n<li><strong>Privacy<\/strong> \u2014 data stays in your database; we do not proxy GSC through newsos.io.<\/li>\n<\/ul>\n\n<h4>\ud83d\udcc8 Author Performance 2.0 (Pro)<\/h4>\n\n<p>Redesigned chief dashboard (<strong>Editorial Control \u2192 Author Performance<\/strong>):<\/p>\n\n<ul>\n<li><strong>Your performance<\/strong> card for chiefs who also write \u2014 same expand\/collapse UX as the team grid.<\/li>\n<li><strong>Compact team cards<\/strong> \u2014 posts, Focus readiness, web clicks at a glance; expand for full detail.<\/li>\n<li><strong>Tabs inside each author<\/strong> \u2014 <strong>Summary<\/strong> (editorial quality + categories + GSC totals), <strong>Articles<\/strong> (latest posts + top traffic), <strong>Coaching<\/strong> (Discover weak spots + action links).<\/li>\n<li><strong>GSC coach tips<\/strong> on low click counts (hero image, headlines, timeliness).<\/li>\n<li><strong>Search &amp; sort<\/strong> \u2014 filter by name; sort by posts, web clicks, Focus, or A\u2013Z.<\/li>\n<li><strong>7d \/ 30d \/ 90d<\/strong> \u2014 live AJAX refresh without reloading the page.<\/li>\n<li>Cached aggregates with smart invalidation on publish, task completion, score change, and GSC sync.<\/li>\n<\/ul>\n\n<h4>\ud83e\udd16 AI Assist (BYOK \u2013 Bring Your Own Key)<\/h4>\n\n<p>Bring your own API key for <strong>OpenAI<\/strong>, <strong>Google Gemini<\/strong>, or <strong>Groq<\/strong>. Newsroom OS never proxies AI traffic through our servers \u2014 your key stays on your site.<\/p>\n\n<p><strong>\ud83d\udcb8 Free AI tier supported<\/strong>: Groq offers a very generous free tier (no credit card) on <code>llama-3.3-70b-versatile<\/code>. The settings page links directly to:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/platform.openai.com\/api-keys\">https:\/\/platform.openai.com\/api-keys<\/a> (OpenAI)<\/li>\n<li><a href=\"https:\/\/aistudio.google.com\/apikey\">https:\/\/aistudio.google.com\/apikey<\/a> (Google Gemini \u2014 free tier available)<\/li>\n<li><a href=\"https:\/\/console.groq.com\/keys\">https:\/\/console.groq.com\/keys<\/a> (Groq \u2014 free tier, no card required)<\/li>\n<\/ul>\n\n<p>You can write your first AI-assisted article with $0 of API spend.<\/p>\n\n<p><strong>Direct in-editor actions:<\/strong><\/p>\n\n<ul>\n<li>\ud83c\udfaf <strong>Discover-optimized Title Suggestions<\/strong> \u2014 five alternative headlines per run (facts \/ impact \/ aftermath \/ authority \/ Discover hook), 55\u201370 characters, live validation.<\/li>\n<li>\u2728 <strong>Targeted Content Optimization<\/strong> \u2014 non-rewrite suggestions per paragraph (readability \/ seo \/ eeat \/ structure \/ factcheck).<\/li>\n<li>\ud83d\udd25 <strong>Trend-Aware Keywords<\/strong> \u2014 regional Google Trends fit with placement hints.<\/li>\n<li>\ud83c\udff7\ufe0f <strong>AI Tag Match<\/strong> \u2014 semantic tag picks from <em>your<\/em> taxonomy pool.<\/li>\n<li>FAQ Block generation in valid FAQPage JSON-LD<\/li>\n<li>Key Takeaways block<\/li>\n<li>Per-user daily rate limits + transient caching<\/li>\n<\/ul>\n\n<p><strong>\ud83c\udf0d Geo-aware language output<\/strong> \u2014 40+ locales; filter <code>newsai_ai_geo_to_locale<\/code> for custom multilingual newsrooms.<\/p>\n\n<h4>\ud83d\udcac Editorial Comms (Task Threads + Email)<\/h4>\n\n<ul>\n<li>Two-way messaging thread per task \u2014 chief \u2194 assignee, with unread badges<\/li>\n<li>Capability-aware visibility: writers only see their own threads<\/li>\n<li>Configurable email alerts: new assignment, new message, task completed<\/li>\n<li>Auto-purge old threads on a configurable retention window<\/li>\n<\/ul>\n\n<h4>\ud83d\udee1\ufe0f Duplicate-Tag Guard<\/h4>\n\n<p>Site-wide audit for near-duplicate tags; merge and consolidate authority. Integrated with Smart Tags in Gutenberg and Classic.<\/p>\n\n<h4>\ud83d\udd25 Content Decay Radar<\/h4>\n\n<p>Detects evergreen articles losing freshness and creates \"Needs Refresh\" tasks. Cursor-based scans for large archives (1.9+).<\/p>\n\n<h4>\u26a1 Instant Indexing API<\/h4>\n\n<p>Google Indexing API (service account JSON or bearer token) + IndexNow for Bing\/Yandex. Async pings on publish; separate credentials from GSC read-only sync.<\/p>\n\n<h4>\ud83d\udcf0 LiveBlogPosting Schema<\/h4>\n\n<p>One toggle turns a post into valid LiveBlogPosting JSON-LD for Top Stories live coverage.<\/p>\n\n<h4>\ud83d\uddbc\ufe0f Google Discover Image Validator<\/h4>\n\n<p>Pre-publish check for the 1200px-wide featured image minimum Discover expects.<\/p>\n\n<h4>\ud83d\udd27 Priority Support &amp; Updates<\/h4>\n\n<p>License-gated updates through the same plugin. Verify at newsos.io \u2014 no re-uploading a different zip.<\/p>\n\n\n\n<h3>Why publishers choose us<\/h3>\n\n<ul>\n<li><strong>Category:<\/strong> Discover &amp; publishing infrastructure \u2014 not \u201canother SEO plugin\u201d<\/li>\n<li><strong>2.0:<\/strong> Editorial readiness <strong>plus<\/strong> real Search Console traffic per writer<\/li>\n<li>Trusted by <strong>2,000+<\/strong> active installs in <strong>20+<\/strong> countries<\/li>\n<li>Built for high-traffic desks: event-driven editor JS, strict API timeouts, smart caching<\/li>\n<li><strong>Zero conflicts<\/strong> with Yoast \/ Rank Math \/ SureCart \/ WooCommerce<\/li>\n<li><strong>30-day money-back<\/strong> guarantee on Pro<\/li>\n<\/ul>\n\n<p>\ud83d\udc49 <strong>Buy Pro at <a href=\"https:\/\/newsos.io\/\">newsos.io<\/a><\/strong> \u2014 \u20ac29\/month or $233\/year (save 33%). One license key per site, instant delivery via email.<\/p>\n\n\n\n<h3>Translators \/ i18n<\/h3>\n\n<ul>\n<li>Text domain: <strong>newsroom-ai-assistant<\/strong> \u2014 every string uses <code>__()<\/code>, <code>_e()<\/code>, <code>esc_html__()<\/code>, and the editor script is registered with <code>wp_set_script_translations()<\/code> so Gutenberg sidebar strings translate too.<\/li>\n<li>Compiled <code>.mo<\/code> catalogs for <strong>el, en_US, de_DE, es_ES<\/strong> ship under <code>\/languages<\/code>, alongside the corresponding <code>newsroom-ai-assistant-{locale}-newsai-script.json<\/code> files for JS translations.<\/li>\n<li>The plugin loads catalogs directly with the resolved request locale (<code>determine_locale()<\/code>), making it compatible with the WordPress 6.7+ Just-In-Time loader and the new <code>WP_Translation_Controller<\/code>. The Site Details \u2192 Language picker switches the UI language per site without touching the global WP locale.<\/li>\n<li>Want to add another language? Drop a new <code>newsroom-ai-assistant-{locale}.mo<\/code> (and optionally the matching <code>-newsai-script.json<\/code>) into <code>\/languages<\/code>. Loco Translate or <code>wp i18n make-mo<\/code> are the usual tools. See <code>languages\/README.txt<\/code> for details.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install via Plugins \u2192 Add New \u2192 Upload.<\/li>\n<li>Activate \"Newsroom OS \u2013 Discover &amp; AI-Visibility OS\".<\/li>\n<li>Run the 4-step Wizard (it auto-launches on first activation).<\/li>\n<li>Open any post in <strong>Gutenberg<\/strong> or <strong>Classic Editor<\/strong> \u2014 the Newsroom OS sidebar appears on the right.<\/li>\n<li>(Optional) Activate Pro at \"Editorial Control \u2192 \ud83d\ude80 PRO\" with your <a href=\"https:\/\/newsos.io\/\">newsos.io<\/a> license key.<\/li>\n<li>(Pro) <strong>Settings \u2192 PRO \u2192 Indexing<\/strong> \u2014 add your Search Console service account, set the property, run <strong>Test<\/strong> and <strong>Sync now<\/strong> to populate Author Performance.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20new%20in%20version%202.0%3F\"><h3>What is new in version 2.0?<\/h3><\/dt>\n<dd><p><strong>Google Search Console integration (Pro):<\/strong> sync Discover, Google News, and web search metrics into WordPress; show real clicks on Author Performance, My Inbox, and the Posts list. Plus a redesigned Author Performance UI (tabs, coaching, search\/sort, 7d\/30d\/90d). Requires a one-time database table on upgrade (<code>wp_newsai_gsc_performance<\/code>).<\/p><\/dd>\n<dt id=\"does%20newsroom%20os%20replace%20google%20search%20console%3F\"><h3>Does Newsroom OS replace Google Search Console?<\/h3><\/dt>\n<dd><p>No. You still use <a href=\"https:\/\/search.google.com\/search-console\">Google Search Console<\/a> for verification and property management. Newsroom OS <strong>reads<\/strong> Search Analytics via API and surfaces the numbers where your editors already work \u2014 next to Focus and Discover readiness scores.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20discover%20score%20and%20gsc%20discover%20clicks%3F\"><h3>What is the difference between Discover Score and GSC Discover clicks?<\/h3><\/dt>\n<dd><p><strong>Discover Score<\/strong> is an <strong>editorial readiness checklist<\/strong> in the post editor (image, headline, topic, OG, etc.) \u2014 it does not read Search Console. <strong>GSC Discover clicks<\/strong> are <strong>real measured traffic<\/strong> from Google after you enable sync. Both appear in Author Performance so chiefs can coach writers on quality <em>and<\/em> outcomes.<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20google%20search%20console%3F\"><h3>How do I connect Google Search Console?<\/h3><\/dt>\n<dd><p>Pro license active \u2192 <strong>Settings \u2192 PRO \u2192 Indexing<\/strong> \u2192 enable GSC \u2192 paste a Google Cloud <strong>service account JSON<\/strong> with Search Console access to your property \u2192 enter the property exactly as in GSC (<code>sc-domain:example.com<\/code> or <code>https:\/\/www.example.com\/<\/code>) \u2192 <strong>Test<\/strong> \u2192 <strong>Sync now<\/strong>. Daily sync runs automatically when enabled.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20classic%20editor%20and%20gutenberg%3F\"><h3>Does it work with Classic Editor and Gutenberg?<\/h3><\/dt>\n<dd><p>Yes \u2014 <strong>both<\/strong>, out of the box. Publication Readiness, Discover Score, Trend Radar, Smart Tags, Breaking news mode, and live H3 updates work in <strong>Gutenberg<\/strong> and <strong>Classic Editor<\/strong>. Pro duplicate-tag guard uses REST in Gutenberg and AJAX in Classic.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20wordpress%207%3F\"><h3>Is it compatible with WordPress 7?<\/h3><\/dt>\n<dd><p>Yes. <strong>Tested up to WordPress 7.0<\/strong> on wp-admin, Gutenberg and Classic post editor, and REST\/AJAX flows. Minimum PHP <strong>7.4<\/strong>; PHP <strong>8.1+<\/strong> recommended for production newsrooms.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Yes. Compatible with standard themes (Astra, GeneratePress, Newspaper, NewsMag, etc.). Frontend output is limited to optional schema, timeline blocks, and breaking badges.<\/p><\/dd>\n<dt id=\"will%20it%20conflict%20with%20yoast%20seo%20or%20rank%20math%3F\"><h3>Will it conflict with Yoast SEO or Rank Math?<\/h3><\/dt>\n<dd><p>No. Newsroom OS reads your SEO meta and adds editorial workflow, smart tags, scores, and JSON-LD enrichment. Yoast\/Rank Math keep meta tags and sitemaps.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20website%3F\"><h3>Will it slow down my website?<\/h3><\/dt>\n<dd><p>No. External requests use strict timeouts; dashboards use transients; editor JS is event-driven (no polling on the post screen). GSC sync runs on a schedule or manual action \u2014 not on every page view.<\/p><\/dd>\n<dt id=\"how%20does%20the%20smart%20tag%20system%20work%3F\"><h3>How does the Smart Tag system work?<\/h3><\/dt>\n<dd><p>In-browser ranking against <em>your<\/em> taxonomy (title, lead, body weighted). HIGH\/MEDIUM\/LOW confidence badges. Pro adds duplicate-tag guard and AI Tag Match (BYOK).<\/p><\/dd>\n<dt id=\"where%20do%20i%20buy%20pro%3F\"><h3>Where do I buy Pro?<\/h3><\/dt>\n<dd><p><a href=\"https:\/\/newsos.io\/\">https:\/\/newsos.io\/<\/a> \u2014 one license per site, 30-day money-back guarantee.<\/p><\/dd>\n<dt id=\"what%20if%20i%20cancel%20pro%3F\"><h3>What if I cancel Pro?<\/h3><\/dt>\n<dd><p>Your site keeps working. Articles, tags, schema, tasks, and saved scores remain. GSC sync and Pro dashboards stop updating until you renew.<\/p><\/dd>\n<dt id=\"which%20ai%20providers%20does%20pro%20support%3F%20can%20i%20use%20ai%20for%20free%3F\"><h3>Which AI providers does Pro support? Can I use AI for free?<\/h3><\/dt>\n<dd><p><strong>OpenAI<\/strong>, <strong>Google Gemini<\/strong> (free tier at aistudio.google.com), and <strong>Groq<\/strong> (free tier at console.groq.com). Your key never leaves your server.<\/p><\/dd>\n<dt id=\"will%20the%20ai%20answer%20in%20my%20language%3F\"><h3>Will the AI answer in my language?<\/h3><\/dt>\n<dd><p>Yes \u2014 geo-aware prompts for 40+ locales (Greece \u2192 Greek, Brazil \u2192 Portuguese, etc.).<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20private%20data%20off-site%3F\"><h3>Does the plugin store private data off-site?<\/h3><\/dt>\n<dd><p>No. Tasks, scores, GSC rows, and AI cache live in your database. Pro licensing validates once per day with newsos.io.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li><strong>BIG UPDATE \u2014 Google Search Console (Pro):<\/strong> Search Analytics sync via service account (<code>webmasters.readonly<\/code>). Stores Discover, Google News, and web search metrics per post and author in <code>wp_newsai_gsc_performance<\/code> (DB version <strong>1.3<\/strong>).<\/li>\n<li><strong>GSC settings:<\/strong> property helper (<code>sc-domain:<\/code> and URL-prefix), connection test, <strong>Sync now<\/strong>, daily cron at <strong>04:00<\/strong> site time when Pro + enabled.<\/li>\n<li><strong>Author Performance 2.0:<\/strong> redesigned dashboard \u2014 personal card, compact team grid, expandable cards with <strong>Summary \/ Articles \/ Coaching<\/strong> tabs, search &amp; sort, <strong>7d \/ 30d \/ 90d<\/strong> AJAX range, GSC channel chips and totals, top articles by clicks, coaching weak spots + action links, micro-tips on low traffic.<\/li>\n<li><strong>Posts list:<\/strong> <strong>GSC (30d)<\/strong> column for users with <code>edit_others_posts<\/code> (batch prefetch per page).<\/li>\n<li><strong>My Inbox:<\/strong> writers see own GSC totals when sync is active.<\/li>\n<li><strong>Clarity:<\/strong> Discover Score remains <strong>editorial readiness<\/strong>; GSC numbers are <strong>real Google clicks<\/strong> (labeled separately everywhere).<\/li>\n<li><strong>Assets:<\/strong> dedicated <code>author-performance.css<\/code> + <code>author-performance.js<\/code> for the perf tab (tabs, expand, grid refresh).<\/li>\n<li><strong>Includes 1.9.x stability:<\/strong> schema filters on <code>plugins_loaded<\/code>, author E-E-A-T save hardening, holiday import validation, <code>representativeOfPage<\/code> on lead image, PHPUnit smoke tests, editor tag pool cap, Wikidata lazy enrich, AI Tag Match, decay pagination improvements.<\/li>\n<li><strong>Upgrade:<\/strong> creates GSC table on activation\/upgrade; safe from 1.7.4+ and 1.9.x.<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>STABILITY: <strong>Schema SEO conflict filters<\/strong> moved to <code>plugins_loaded<\/code> (no global <code>get_option()<\/code> at file load \u2014 safer for CLI\/imports).<\/li>\n<li>STABILITY: <strong>Author E-E-A-T profile save<\/strong> \u2014 nonce + section gate so partial profile saves cannot wipe custom fields.<\/li>\n<li>STABILITY: <strong>Holiday bulk import<\/strong> \u2014 validates each JSON row (title, day 1\u201331, month 1\u201312, lead 0\u2013365) before insert.<\/li>\n<li>SCHEMA: <strong>Lead image<\/strong> \u2014 <code>representativeOfPage: true<\/code> on the first <code>NewsArticle<\/code> <code>ImageObject<\/code>.<\/li>\n<li>UX: Admin menu icon uses <strong><code>currentColor<\/code><\/strong> (visible in wp-admin dark mode).<\/li>\n<li>DEV: <strong>PHPUnit<\/strong> smoke tests for Discover Score helpers and author slim\/full entity (see <code>composer test<\/code>).<\/li>\n<li>SAFE: <strong>No database migrations<\/strong> (except 2.0.0 GSC table).<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>PERF: <strong>Editor tag pool cap<\/strong> \u2014 separate <strong>Editor tag pool (sidebar JSON)<\/strong> setting (default 300 tags) from the larger tag-guard pool; faster post editor loads on tag-heavy sites.<\/li>\n<li>PERF: <strong>Content Decay Radar<\/strong> \u2014 cursor pagination with <code>newsai_decay_scan_last_id<\/code> instead of slow SQL <code>OFFSET<\/code> on large archives.<\/li>\n<li>PERF: <strong>Dashboard overdue KPIs<\/strong> \u2014 SQL <code>COUNT<\/code> for dated tasks plus PHP only for recurring date rules (year\/month rollover).<\/li>\n<li>PERF: <strong>SQL date thresholds<\/strong> \u2014 static datetime strings in Author Performance and dashboard queries instead of <code>DATE_SUB(UTC_TIMESTAMP())<\/code> in <code>WHERE<\/code>.<\/li>\n<li>NEW: <strong>AI Tag Match (Pro BYOK)<\/strong> \u2014 semantic tag suggestions from your site pool via the editor sidebar button.<\/li>\n<li>NEW: <strong>Wikidata lazy enrich<\/strong> \u2014 auto-fills empty tag entity fields (Wikidata URL, type, geo when known) when a tag is assigned to a post or created; Settings toggle.<\/li>\n<li>AI: <strong>Input limit<\/strong> raised to <strong>25,000<\/strong> characters (filter <code>newsai_ai_max_input_chars<\/code>) for long-form Key Points \/ optimization.<\/li>\n<li>UX: <strong>Timeline<\/strong> \u2014 clearer errors (<code>no_tags<\/code> \/ <code>no_matches<\/code>), Gutenberg <code>post_id<\/code> resolution, improved default message.<\/li>\n<li>SAFE: <strong>No database migrations.<\/strong> Upgrade from 1.8.x preserves all data.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>FIX: <strong>IndexNow rewrite flush<\/strong> \u2014 no longer calls <code>flush_rewrite_rules()<\/code> on public <code>init<\/code>; uses versioned <code>newsai_indexnow_rewrite_ver<\/code>, flushes on plugin activation and when IndexNow is enabled in settings, with a one-time admin migration from the legacy <code>newsai_indexnow_flushed<\/code> flag.<\/li>\n<li>NEW: <strong>My Inbox personal performance (Free)<\/strong> \u2014 every writer sees their own 30-day stats card (posts, tasks, Focus, Discover); Pro CTA for team Author Performance remains on the chief dashboard.<\/li>\n<li>COMPAT: <strong>Discover OG score<\/strong> \u2014 explicit and featured-image fallback for <strong>AIOSEO<\/strong> and <strong>SEOPress<\/strong> (alongside Yoast SEO and Rank Math).<\/li>\n<li>SAFE: <strong>No database migrations.<\/strong> Safe direct upgrade from 1.8.1 or 1.8.0.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>FIX: <strong>Find archive links<\/strong> \u2014 candidate pool no longer relies on core <code>WP_Query<\/code> search (<code>s<\/code>), which often returned zero rows on large Greek newsrooms. Uses shared tags\/categories, title token SQL (OR), accent-normalized scoring, Gutenberg <code>post_id<\/code> resolution, and does not cache empty \u201cno matches\u201d for 10 minutes.<\/li>\n<li>FIX: <strong>Discover OG score<\/strong> \u2014 counts Yoast SEO \/ Rank Math <strong>featured-image OG fallback<\/strong> (same as front-end HTML) when no explicit <code>og:image<\/code> meta is set; breakdown shows <code>featured_fallback<\/code> vs <code>explicit<\/code> in the editor checklist.<\/li>\n<li>COMPAT: <strong>Tested up to WordPress 7.0<\/strong> \u2014 verified on wp-admin, Gutenberg and Classic post editor, dashboard tasks, and editor AJAX. Readme <code>Tested up to: 7.0<\/code> (major.minor format for WordPress.org).<\/li>\n<li>STANDARDS: GPL <strong><code>License<\/code> + <code>License URI<\/code><\/strong> in main plugin header; <strong>Plugin Check<\/strong> hardening \u2014 output escaping in editor sidebar and admin dashboard; prepared SQL for dynamic task lists, views meta-key detection, semantic archive link queries, and weekly task cleanup.<\/li>\n<li>FIX: <strong>Escaping<\/strong> \u2014 <code>includes\/sidebar.php<\/code> (tasks, summaries, breaking panel, prompts); <code>includes\/admin-ui.php<\/code> (nav tabs, KPI cards, Google status banner, task table, latest posts); task thread close button uses <code>esc_attr__<\/code> with text domain.<\/li>\n<li>FIX: <strong>SQL<\/strong> \u2014 <code>$wpdb-&gt;prepare()<\/code> with spread args for archive link candidate queries; whitelisted <code>ORDER BY<\/code> on task dashboard queries; inline <code>prepare<\/code> for done-task cleanup.<\/li>\n<li>i18n: <strong>Discover checklist &amp; next-action badges<\/strong> \u2014 strings ship from PHP via <code>discover_ui<\/code> (<code>wp_localize_script<\/code>) for <strong>English, Greek, German, and Spanish<\/strong>; removed hardcoded Greek\/English branches in <code>script.js<\/code>. Translators comments for sidebar placeholders; new strings in <code>.pot<\/code> \/ <code>.po<\/code>.<\/li>\n<li>UX: <strong>Publication Readiness sidebar<\/strong> \u2014 full-width stacked <strong>Fix Now<\/strong> (primary) and <strong>Open Detailed Panel<\/strong> (secondary); structured Discover checklist rows with sublines (timeliness cache, OG hints).<\/li>\n<li>SAFE: <strong>No database migrations.<\/strong> Safe direct upgrade from 1.8.0 or 1.7.4+.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>RELEASE: <strong>Major public release<\/strong> since 1.7.4 \u2014 bundles Discover Score v2, Breaking News Mode + live coverage tools, Author Performance Discover layer, Classic Editor stability fixes, duplicate tag guard fix, and readme\/positioning refresh (see 1.7.5\u20131.7.12 entries below for detail).<\/li>\n<li>DOCS: WordPress.org readme \u2014 <code>Stable tag<\/code> 1.8.0, dedicated <strong>Classic Editor &amp; Gutenberg<\/strong> section, FAQ, installation step, and plugin tags for block\/classic editor discoverability.<\/li>\n<li>SAFE: <strong>No database migrations.<\/strong> Existing posts, tags, schema, tasks, Focus\/Discover scores, and settings stay intact. Safe direct upgrade from 1.7.4+ on small and large sites.<\/li>\n<\/ul>\n\n<h4>1.7.12<\/h4>\n\n<ul>\n<li>FIX: <strong>Classic tag duplicate guard<\/strong> \u2014 AJAX check used invalid <code>assign_terms<\/code> capability (always denied for Authors\/Editors), so the UI silently added tags without the \u201ckeep or use existing?\u201d prompt. Fixed taxonomy capability check; classic script no longer bypasses on 403. Improved typo detection (e.g. NEWSOS vs NEWSSS). Classic script also loads when the classic Tags metabox is shown alongside the block editor.<\/li>\n<\/ul>\n\n<h4>1.7.11<\/h4>\n\n<ul>\n<li>NEW (Pro): <strong>Author Performance \u2014 Discover readiness layer<\/strong> \u2014 per-writer <strong>avg Discover Score<\/strong>, up to <strong>3 coaching weak spots<\/strong> (16:9 hero, headline, topic, OG, author profile), <strong>Discover<\/strong> column on cards, and <strong>Focus + Discover<\/strong> per article in drill-down. Uses saved <code>_newsai_discover_score<\/code> \/ breakdown meta from the editor (Phase 2 GSC traffic stays separate).<\/li>\n<\/ul>\n\n<h4>1.7.10<\/h4>\n\n<ul>\n<li>CHANGE: <strong>Discover Score v2<\/strong> aligned with <a href=\"https:\/\/developers.google.com\/search\/docs\/appearance\/google-discover\">Google Discover best practices<\/a>: hero <strong>1200px+<\/strong>, <strong>16:9<\/strong>, <strong>300k+ pixels<\/strong>, descriptive alt (35 pts); headline <strong>55\u201370<\/strong> chars with <strong>anti-clickbait<\/strong> penalties (25 pts); softer timeliness\/trends (10 pts); saved <strong>OG image<\/strong> from Yoast\/Rank Math when post is saved (5 pts). Not scored in-editor: <code>max-image-preview:large<\/code>, Core Web Vitals.<\/li>\n<\/ul>\n\n<h4>1.7.9<\/h4>\n\n<ul>\n<li>DOCS: <strong>Positioning &amp; readme refactor<\/strong> \u2014 hero \u201cDiscover &amp; AI-Visibility OS\u201d, five-pillar narrative (Discover \/ Semantic \/ Workflow \/ AI \/ Knowledge), clearer free vs Pro story; updated screenshot list and plugin short description. No feature code changes.<\/li>\n<\/ul>\n\n<h4>1.7.8<\/h4>\n\n<ul>\n<li>FIX: <strong>Classic Editor crash<\/strong> \u2014 <code>Maximum call stack size exceeded<\/code> in <code>blocks.min.js<\/code> when Breaking\/live-update code called Gutenberg APIs (<code>getEditedPostContent<\/code>, <code>createBlock<\/code>, <code>wp.data.subscribe<\/code>) on Classic Editor screens. Block APIs now run only when <code>block-editor-page<\/code> + <code>core\/block-editor<\/code> store are present; Classic uses TinyMCE\/textarea only.<\/li>\n<\/ul>\n\n<h4>1.7.7<\/h4>\n\n<ul>\n<li>NEW: <strong>Live coverage editor tools<\/strong> \u2014 collapsible \u201cHow to write live coverage\u201d guide, <strong>Insert live update (H3)<\/strong> button (Gutenberg heading block or Classic insert), and a <strong>warning<\/strong> when Breaking is active but the post has no H2\/H3 headings (live <code>liveBlogUpdate<\/code> needs structured headings).<\/li>\n<li>FIX: <strong>LiveBlog schema<\/strong> \u2014 no more fallback <code>liveBlogUpdate<\/code> built from the first 24 words when Breaking\/LiveBlog is on or when content looks like a pasted plugin readme; avoids bogus updates on announcement posts.<\/li>\n<li>i18n: Greek, English, German, and Spanish catalogs updated for Discover Score, Breaking News Mode, and new editor strings (PHP <code>.po<\/code> + JS <code>newsai-script.json<\/code>).<\/li>\n<\/ul>\n\n<h4>1.7.6<\/h4>\n\n<ul>\n<li>NEW: <strong>Breaking News Mode<\/strong> \u2014 replaces the editor \u201cLiveBlogPosting\u201d checkbox with a unified workflow: enable breaking coverage (LiveBlog schema + <code>liveBlogUpdate<\/code>), optional <strong>\u201cdeveloping story\u201d<\/strong> badge on the article, <strong>IndexNow \/ Google ping on enable<\/strong>, <strong>Resolve now<\/strong>, and <strong>auto-expire<\/strong> (24\/48\/72h, hourly cron). AJAX toggle works in Gutenberg; classic editor uses the same metabox save path.<\/li>\n<li>NEW: Settings \u2192 Schema: breaking <strong>auto-expire hours<\/strong> and <strong>frontend badge<\/strong> toggle.<\/li>\n<\/ul>\n\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>NEW: <strong>Discover Score<\/strong> \u2014 separate from Editorial (Focus) score: hero image width\/aspect\/alt, cached regional <strong>trend token<\/strong> fit (daily refresh + on-demand when empty), entity\/tag\/category\/geo cues, author E-E-A-T fields, internal links \/ storytelling; <strong>headline<\/strong> subscore (50\u201365 char sweet spot, numbers, power chars, recency cues, specificity) merged in the editor. <strong>Publication Readiness<\/strong> meta box: twin gauges, <strong>Editorial \/ Discover<\/strong> tabs under Score Details, combined <strong>Next Best Action<\/strong> across both tracks. Postmeta: <code>_newsai_discover_score<\/code>, <code>_newsai_discover_score_breakdown<\/code>. Filter: <code>nros_discover_score_weights<\/code>.<\/li>\n<li>NEW: <code>includes\/discover-score.php<\/code> \u2014 AJAX <code>newsai_discover_score_partial<\/code>, <code>newsai_save_discover_score<\/code>, cron <code>nros_refresh_trend_keyword_cache<\/code> (cleared on plugin deactivation).<\/li>\n<\/ul>\n\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>FIX: <strong>JSON-LD dates use site local time<\/strong> \u2014 <code>datePublished<\/code>, <code>dateModified<\/code>, <code>dateCreated<\/code>, LiveBlog coverage times, and video <code>uploadDate<\/code> now output ISO 8601 with the WordPress timezone offset (e.g. <code>2026-05-16T09:45:00+03:00<\/code>) instead of UTC (<code>+00:00<\/code>), aligning with wp-admin display and Rank Math Open Graph.<\/li>\n<li>FIX: <strong>Site Health REST false alarm<\/strong> \u2014 removed a <strong>UTF-8 BOM<\/strong> (3 bytes) at the start of <code>includes\/admin-ui.php<\/code> that WordPress reported as <code>charsout=3<\/code> on activation and that could prefix REST loopback responses so Site Health showed <em>\"The REST API did not process the context query parameter correctly\"<\/em> even when the endpoint returned HTTP 200.<\/li>\n<li>FIX: <strong>REST-safe i18n<\/strong> \u2014 on <code>\/wp-json\/*<\/code> requests the plugin no longer reloads its text domain or overrides <code>plugin_locale<\/code> for <code>newsroom-ai-assistant<\/code>, so core REST and Site Health checks stay stable while the per-site language picker (1.7.1+) continues to work in wp-admin.<\/li>\n<li>FIX: <strong>Per-site UI language picker<\/strong> \u2014 restored the 1.7.3 gettext loading path (<code>load_textdomain<\/code> with <code>determine_locale()<\/code> lookup) after an experimental init-only loader caused the dashboard to stay in English regardless of Settings \u2192 Language.<\/li>\n<li>FIX: Task assignment dropdown uses <code>capability<\/code> =&gt; <code>edit_posts<\/code> instead of deprecated <code>who<\/code> =&gt; <code>authors<\/code> (WordPress 5.9+).<\/li>\n<li>IMPROVEMENT: <code>the_content<\/code> \/ timeline shortcode and speakable snippet bail out during REST\/JSON requests (no mutation of API payloads).<\/li>\n<\/ul>","raw_excerpt":"The Discover &amp; AI-visibility OS for WordPress publishers: Editorial + Discover readiness scores, Google Search Console traffic, semantic JSON-LD,  &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/287352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=287352"}],"author":[{"embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/koskar22"}],"wp:attachment":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=287352"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=287352"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=287352"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=287352"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=287352"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=287352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}