docs: update CHANGELOG and README for this development cycle
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Project CI / Lint & Validate (pull_request) Successful in 11s
Universal: PR Check / Validate PR (pull_request) Failing after 13s
Universal: PR Check / Secret Scan (pull_request) Successful in 20s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 3s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Failing after 1m1s
Generic: Project CI / Tests (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled

- CHANGELOG: fix the mangled header (duplicate empty [01.05.00], misplaced
  intro) and add a full [Unreleased] section covering the dashboard, edit UI,
  CSV import UI, access.xml/config.xml, AI/sitemap hardening, forward-compat,
  dead-code removal, and the new unit tests
- README: add Coverage dashboard / Manual tag editor / Component permissions to
  Admin Tools; drop the removed ImageGenerator overlay feature; note sitemap
  access-level filtering; add a Joomla 6.0+ / PHP 8.2+ Requirements line
This commit is contained in:
2026-06-29 11:00:24 -05:00
parent 1dec76ff0c
commit 0a5e2b94e2
2 changed files with 42 additions and 13 deletions
+33 -7
View File
@@ -1,16 +1,42 @@
# Changelog
## [Unreleased]
## [01.05.00] --- 2026-06-28
<!-- VERSION: 01.06.10 -->
All notable changes to MokoSuiteOpenGraph will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
<!-- VERSION: 01.06.10 -->
## [Unreleased]
### Added
- OG coverage **dashboard** as the default admin view — SVG donut gauge, coverage by content type, and a list of articles missing OG tags with a batch-generate shortcut (#94)
- Single OG tag **create/edit screen** in the admin (the tag manager was previously read-only) (#98)
- **CSV import** button and upload form in the tag manager (#103)
- Component **Options** screen with a Permissions tab, plus `access.xml` ACL actions `mokoog.batch` and `mokoog.import` (#95)
- `og_video`, `event_data`, `recipe_data`, and `custom_schema` are now included in CSV import/export and the REST API (#101)
- Unit tests for `JsonLdBuilder::buildLocalBusiness()` and `toScriptTag()` (#33)
### Changed
- **Require Joomla 6.0+ and PHP 8.2+** (enforced at install)
- Renamed the product from *MokoJoomOpenGraph* to **MokoSuiteOpenGraph**
- Forward-compatibility for Joomla 7: replaced deprecated `Factory::getDbo/getUser/getSession/getLanguage`, `Joomla\CMS\Filesystem\File/Folder`, and `jexit()` (#102)
- Aligned OG/SEO form `maxlength` values with the database column limits (#77)
- Moved coverage metrics out of the tag list into a dedicated model (no longer runs uncached `COUNT` queries on every list load)
### Fixed
- Fatal frontend error (HTTP 500) when a non-object value was saved into the custom JSON-LD field — values are now validated as objects/arrays on save and guarded on render (#97)
- Stored XSS via the canonical URL field — now restricted to `http`/`https` (#79)
- Use the `mysqli` driver in the component manifest so install/upgrade SQL actually runs on Joomla 4/5/6
- `loadArticle()` now caches negative lookups; zero dates are no longer emitted as `article:published_time`/`article:modified_time` (#106)
### Security
- AI meta-generation endpoint now requires article-edit permission and enforces an HTTP timeout and status check — previously any authenticated back-end user could trigger paid API calls (#99)
- XML sitemap now excludes content above the public view level (no longer leaks registered/special-access articles) and writes atomically (#100)
### Removed
- Unused `ImageGenerator` class and `JsonLdBuilder::buildOrganization()`; generated OG images are now pruned after 30 days to bound disk usage (#104)
- Empty `src/Field` and `src/Service` stub directories; packaged the `en-US` language folder (#107)
## [01.05.00] --- 2026-06-28
### Security
+9 -6
View File
@@ -45,21 +45,24 @@ MokoSuiteOpenGraph gives you full control over how your Joomla content appears w
- **Debug links** — Quick links to Facebook Debugger, LinkedIn Inspector, Google Rich Results
- **Live preview** — Real-time Facebook, Twitter/X, LinkedIn, Discord, Mastodon, and Slack card previews in the editor
- **Character count indicators** — Green/yellow/red warnings on OG and SEO text fields
- **OG coverage dashboard** — Coverage percentage and missing field counts
- **AI meta generation** — Generate OG titles and descriptions with Claude or OpenAI
- **Coverage dashboard** — Default admin view: coverage donut, breakdown by content type, and a list of articles missing OG tags with quick batch-generate
- **Manual tag editor** — Create and edit individual OG tag records directly in the admin
- **Component permissions** — ACL actions (`mokoog.batch`, `mokoog.import`) configurable from the component Options → Permissions
- **AI meta generation** — Generate OG titles and descriptions with Claude or OpenAI (article-edit permission required)
### Developer Features
- **REST API** — Full CRUD via Joomla Web Services (`/api/v1/mokoog/tags`)
- **MokoSuiteShop integration** — Auto-generated OG/JSON-LD for product pages with pricing meta
- **Plugin event** — `onMokoOGAfterRender` for third-party plugins to add custom social tags
- **OG image generator** — Text overlay on template backgrounds with auto-resize to 1200x630
- **Per-platform image resizing** — Twitter 1200x600, Pinterest 1000x1500, WhatsApp 400x400
- **XML sitemap** — Auto-generates sitemap.xml on article save, respects noindex
- **Per-platform image resizing** — Twitter 1200x600, Pinterest 1000x1500, WhatsApp 400x400, with auto-resize to 1200x630
- **XML sitemap** — Auto-generates sitemap.xml on article save; respects noindex and public access levels, written atomically
- **OpenAPI spec** — Full REST API documentation at `openapi.yaml`
- **PHPUnit tests** — 16 unit tests for JsonLdBuilder schema outputs
- **PHPUnit tests** — Unit tests for JsonLdBuilder schema outputs and JSON-LD script-tag escaping
## Installation
**Requirements:** Joomla 6.0 or higher and PHP 8.2 or higher.
1. Download the latest `pkg_mokoog-*.zip` from [Releases](https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteOpenGraph/releases)
2. In Joomla Administrator → Extensions → Install → Upload Package File
3. All plugins are enabled automatically on install