pkg_artigen changelog

Notable releases and milestones for Article Generator (pkg_artigen).

VersionSummary
3.4.20 (production) Regenerate banner no longer touches the article body. The banner-only Regenerate banner toolbar action shared an article-save helper with the full Refresh apply path, which clears the article's fulltext (the part after a Read More break) before writing back. On articles split by Read More, regenerating the banner silently wiped the post-break content. The shared helper now takes an explicit signal for whether to clear fulltext; the banner action passes “leave alone.” Regenerate banner already never calls the AI — just a GD render and an article save of body + images — so the “banner-only, no token cost, no body damage” guarantee is restored. If you have an affected article, the original fulltext is in #__history for that article (Joomla auto-versions each save) — open the article in com_content, click Versions in the toolbar, and restore the version from just before the bad regenerate.
3.4.16–3.4.19 Refresh workflow polish; banner placement option; banner defaults from Options. The Refresh page splits into two stacked panes — an Article pane (title, history/edit links, banner) above a Refresh pane (banner icon/theme, source URLs, instructions, Generate Preview) — so the article being acted on stays anchored above the configuration controls. New Banner placement component option (default Inline at top of body) chooses where the generated banner attaches to the article: as a wrapped paragraph at the top of the body, replaceable in place on subsequent regenerates; or as the article's Intro & Full Article images. Inline mode uses a CSS-class marker (was a data-* attribute, which Joomla's content filter strips on non-Super-User groups) and clears the Intro/Fulltext image fields so the header doesn't show twice. About Refresh moved from the Refresh page to the Dashboard as a collapsible card under Pipeline Flow with an Open Refresh shortcut. The Article Banner section in Options now uses the full palette + computing-classics + CSS-named-colours picker for default banner theme, accepts comma-separated icon names, and is the source of defaults the Refresh form falls back to when an article has no saved draft. The toolbar follows the standard Joomla order — Save | Close | New | divider | Regenerate banner; Save stays on the Refresh page and surfaces a dismissible success notice at the top; clicking Generate Preview smooth-scrolls to the top so the activity log is in view as the pipeline runs. The gradient + computing-classics halves of the picker stack vertically on narrow form columns so the Computing classics half can't overflow.
3.4.12–3.4.15 Banner Theme palette picker; 8 Computing classics themes; toolbar and pane relocation. The Banner Theme field is a clickable palette grid: built-in gradient PNG themes (each swatch shows the actual PNG it will paint), then eight hand-tuned Computing classics — Blissful (XP), Bondi Blue (iMac G3), Terminal Green (CRT), Amber CRT, Tangerine (iMac G3), Graphite (Power Mac G4), Synthwave, Blueprint — then every CSS named colour sorted by hue and rendered as a vertical light→dark gradient. The banner generator paints a real two-tone gradient for any CSS colour (no more solid fills); the picker swatches and the rendered banner share the same HSL-derived endpoints so they read identical. (The 3.4.9 dropdown silently fell back to a plain text input on case-sensitive Linux filesystems because Joomla's FormHelper resolves type="bannertheme" to BannerthemeField with a lower-case ‘t’; the file/class is now named to match.) The Article + Refresh panes split; the new banner moves up out of the preview pane to replace the old “current banner” slot at the top of the page, labelled simply Banner; toolbar is now Save | Close | New | divider | Regenerate banner (the prior Regenerate / Save Draft / Discard buttons were retired); the gradient + computing-classics rows are laid out as two halves so the eight gradient swatches no longer leave empty cells on the right.
3.4.9–3.4.11 Two-icon banners; CSS-named-colour themes; Joomla snippet preservation in Refresh; Regenerate banner toolbar action. banner_icon accepts two comma-separated names (e.g. newspaper,bolt) and renders them side by side at a reduced size in the same icon footprint; the right icon stays anchored where a single icon would sit so the visual weight doesn't shift when you add a second. banner_theme accepts any of the 147 CSS named colours alongside the existing eight gradient themes. The Refresh prompt now stashes Joomla content-plugin tags — {loadmodule…}, {loadposition…}, {loadarticle…}, etc. — as inert [ARTIGEN_SNIPPET_N] placeholders before the AI call and restores them verbatim afterwards so the model can't mangle quote style, args, or the tag itself. The prompt also stopped suggesting an explicit “What's changed in {year}” heading — the model weaves new material into the existing narrative without a labelled section. A new Regenerate banner toolbar action regenerates only the banner (no AI, no body change), driving the same banner stage the full pipeline uses with an in-place cache-buster so a regenerate within the same second still re-fetches.
3.4.4–3.4.8 Refresh hardening and preview-pane refactor. Long-running Refresh pipeline calls survive PHP-FPM and nginx timeouts (server-side limit lifted to 600s where the host allows). AJAX responses can no longer be corrupted by a stray PHP notice leaking into the output buffer (buffer flushed before write; JSON_INVALID_UTF8_SUBSTITUTE on encode so a non-UTF8 byte from the LLM can't return an empty body). The preview pane shows the current and new banners side by side with Open original article and Preview refreshed body buttons replacing the broken inline iframe of the article body; the new banner reveals correctly post-Compose (the previous display:none inline style won over Bootstrap's d-none); the Atum admin's auto-injected external-link glyph on target="_blank" no longer doubles up. Banner URLs include the Joomla root path so they resolve correctly from the /administrator/ context.
3.4.3 Joomla 6 compatibility for outbound API calls. AI text generation, web search and image-provider lookups now read HTTP responses through the current Joomla API. On Joomla 6 the previous response accessor returned null, which could make those calls silently fail (no search results, no images, generation errors). No configuration change required.
3.4.2 (production) Refresh Article — bring an existing Joomla article up to date. New view at Components → Article Generator → Refresh Article. Pick any article via Joomla's modal article picker; the page loads icon + theme controls, a source-URLs textarea and an editor's note. Generate Preview runs a five-stage AI pipeline shown live in an activity log: load article → targeted web search (“{title} {year} latest”) → fetch the top sources and distil each into a focused KEY FACTS list (one AJAX call per source so progress is visible) → ask the model to rewrite the article around those facts while preserving voice and section skeleton → regenerate the 1200×630 banner to a staged preview path. The refreshed draft loads into the standard Joomla editor side-by-side with the current article body in a sandboxed iframe — tweak it before applying. Apply refresh commits the change via Joomla's ArticleModel so every refresh creates a normal content history version (rollback from the article's Versions toolbar button) and fires the usual content-save events. Save draft persists the editor + form state to a new #__artigen_article_refresh_drafts table; the Refresh view shows a Drafts in progress list so unfinished work is easy to find across articles. Per-article banner preferences (icon + theme) are remembered between refreshes. A Diagnostics disclosure under the activity log exposes the source list, the exact prompt sent to the model, and the raw model response, plus a similarity percentage flagging any run where the model declined to change much. Blockquotes — whether kept from the original or lifted from sources — render in the Multizone <figure> / <blockquote> / <figcaption> pattern with author and citation populated from the source. While a refresh is running the rest of the view collapses to keep focus on the activity log with a clear “please wait” banner. The article-scoped actions (Apply refresh, Save draft, Discard preview, New) live in the toolbar. An optional Cheap summariser setting uses GPT-4o Mini (OpenAI) or Claude Haiku (Claude) for the per-source distil stage while the main rewrite keeps your configured model — about 25% off a typical refresh.
3.4.0 (production) Refresh Article — bring an existing Joomla article up to date. New view at Components → Article Generator → Refresh Article. Pick any article via Joomla's modal article picker; the page loads icon + theme controls, a source-URLs textarea and an editor's note.
Generate Preview runs a five-stage AI pipeline shown live in an activity log: load article → targeted web search (“{title} {year} latest”) → fetch the top sources and distil each into a focused KEY FACTS list (one AJAX call per source so progress is visible) → ask the model to rewrite the article around those facts while preserving voice and section skeleton → regenerate the 1200×630 banner to a staged preview path. The refreshed draft loads into the standard Joomla editor side-by-side with the current article body in a sandboxed iframe — tweak it before applying.
Apply refresh commits the change via Joomla's ArticleModel so every refresh creates a normal content history version (rollback from the article's Versions toolbar button) and fires the usual content-save events.
Save draft persists the editor + form state to a new #__artigen_article_refresh_drafts table; the Refresh view shows a Drafts in progress list so unfinished work is easy to find across articles. Per-article banner preferences (icon + theme) are remembered between refreshes. A Diagnostics disclosure under the activity log exposes the source list, the exact prompt sent to the model, and the raw model response, plus a similarity percentage flagging any run where the model declined to change much. Blockquotes — whether kept from the original or lifted from sources — render in the <figure> / <blockquote> / <figcaption> pattern with author and citation populated from the source. While a refresh is running the rest of the view collapses to keep focus on the activity log with a clear “please wait” banner.
3.2.0 Joomla 6 Pre-Update Check no longer flags plg_system_artigentasks as a Potentially Dangerous Plugin. The plugin now declares its own compatibility-only update manifest so the check can verify J5 / J6 compatibility — pkg_artigen itself remains the canonical update path, so customers always update via the package.
3.1.7  Production release consolidating issues found in testing. Versions 3.1.1 through 3.1.6 iterated through this change before the consolidated release shipped. Subscription validation traffic reduced. The cache was repeatedly invalidating on every admin page render due to a signature mismatch with the validation API. Now caches successfully for 24 hours, so an active admin generates ~1 validation call per day rather than per page. Internal trait alignment across the four paid extensions; future drift is caught by a pre-push gate.
3.1.0 All five extensions updated to 3.1 — coordinated production release.
3.0.30 Dashboard tile regex fix in the shared “Multizone Extensions” admin home panel — aligns with the same fix shipped across the suite.
3.0.28–3.0.29 Pipeline progress indicators no longer loop and produce duplicate articles; regenerate path resilient to missing search_report column; banner generation polish.
3.0.27 Auto-generated article banners: 1200×630 gradient PNG banners with title and Font Awesome icon, rendered server-side via PHP GD using bundled backgrounds, Roboto-Bold and Joomla's bundled Font Awesome webfonts (1,895 icons). Per-Brief icon and theme overrides (maroon, blue, green, slate, purple, teal, orange, windows 95). New banner editor with live preview replaces image candidates picking when auto-banner is on. Article Banners list shows thumbnail, icon name, theme swatch, and opens an in-component edit form with save/close toolbar.
3.0.26 Claude (Anthropic) support alongside OpenAI via a provider abstraction; 3-step onboarding wizard to pick provider, paste key, test key, and generate a test article; Quick Article dashboard card for one-click title+topic pipeline; HttpClient retries transient 429/502/503/504; pipeline modal restyled to Atum, bootstrap.modal dependency loaded on the Brief edit view (fixes silent Generate Article failure); search step failures are now non-fatal. Fixes: PHP 8.2 dynamic property deprecation on PromptController::$verificationQueries; anglesLogDone classList-on-null bug when the element was detached by outerHTML.
3.0.25 Author email updated across all manifests
3.0.14 Removed legacy dlid element from package manifest that caused spurious "Download Key is missing" warning in Joomla update checker
3.0.12 Cross-promotion panel for pkg_metagen, KPI backfill and product filter fixes
3.0.10 Extension directory cards enriched with icons, badges, and changelogs
3.0.6 SQL migration sync in postflight, dashboard tile format migration and sizing fixes, subscription widget link corrections
3.0.5 Subscription widget link corrections, terminology alignment
3.0.2 Catch Throwable in script.php TierService wrapper for fresh install compatibility
3.0.1 Dashboard house style standardisation, grouped Home Dashboard tile, tier limits and pricing alignment
3.0.0 No-API-key workflow for article generation without pre-configured keys, tier defaults, non-blocking pipeline, meta description fixes
2.9.0 Security hardening and JED Checker compliance across all packages
2.8.1 Product feature limit enforcement, branding updates
2.7.0 Product Features system, master mode validation, standardised author and copyright
2.6.0 Packaged as pkg_artigen with system plugin for background batch processing, content calendar, dashboard overhaul
2.5.0 Multiple image providers (Pexels, Unsplash, Pixabay, Wikimedia), standalone image chooser with save-to-article sync
2.3.0 Campaign Themes — generate multiple related articles from a single creative brief
2.0.0 Renamed to com_artigen, multiple search providers (Serper, Tavily, Google Custom Search)
1.0.0 Initial release — AI-powered article generation with search, image finding, and one-click pipeline

Licences, trademarks, source code licences and attributions

928uk® is a trademark of Multizone Limited, registered in the UK. Multizone and this site is not affiliated with or endorsed by The Joomla! Project™. Any products and services provided through this site are not supported or warrantied by The Joomla! Project or Open Source Matters, Inc. Use of the Joomla!® name, symbol, logo and related trademarks is permitted under a limited licence granted by Open Source Matters, Inc. AdMob™, AdSense™, AdWords™, Android™, Chrome OS™, Chromebook™, Chrome™, DART™, Flutter™, Firebase™, Firestore™, Fuchsia™, Gmail™, Google Maps™, Google Pixel™, Google Play™, Pixelbook Go™, and Pixel™ and other trademarks listed at the Google Brand Resource center are trademarks of Google LLC and this site is not endorsed by or affiliated with Google in any way. Apple and the Apple logo are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc. The OSI logo trademark is the trademark of Open Source Initiative. Any other product or company names may be trademarks™ or registered® trademarks of their respective holders. Use of these trademarks in articles here does not apply affiliation or endorsement by any of them.

Where the source code is published here on multizone.co.uk or on our GitHub by Angus Fox, Multizone Limited it is licenced according to the open source practice for the project concerned.

BSD 3-Clause "New" or "Revised" Licence
Original source code for mobile apps are licenced using the same licence as the one used by "The Flutter Authors". This Licence, the BSD 3-Clause "New" or "Revised" Licence (bsd-3-clause) is a permissive licence with a clause that prohibits others from using the name of the project or its contributors to promote derived products without written consent.
GNU General Public Licence v3.0 or later
Original source code for Joomla! published here on multizone.co.uk by Angus Fox, Multizone Limited is licenced using the GNU General Public Licence. This Licence, the GNU General Public Licence Version 3 or later (gpl-3.0+) is the most widely used free software licence and has a strong copyleft requirement. When distributing derived works, the source code of the work must be made available under the same licence.

Please respect the licences and dont use the name of this site or our company to promote derived products without written consent. I mean, why would you? You're not us!

Amazon Associate
As an Amazon Associate we earn from qualifying purchases.
Logo
Our Logo Image is by Freepik. We chose it because its an M and also the letter A twice - and that represents us.
Graphics
Our images representing user experience and interface design are from Freepik here and here and here and here and here.