Versionshistorie

Changelog

Verbindliche Versionshistorie von YooOptimize und der ausgelieferten Joomla-Distribution. Paket (pkg_yoooptimize), Systemplugin (plg_system_yoooptimize) und Admin-Komponente (com_yoooptimize) tragen immer dieselbe Version. Neueste Version steht oben.

1.6.1Build C7.3D-FIX: Titel-Write-Bugfix im Joomla-Write-Pfad (2026-08)

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • WritebackModel::liveRead() liest den Lesestand feldabhängig (title aus#__content.title ,metadesc wie bisher). Vorher wurde hart gegenWriteGuard::SAFE_FIELD ('metadesc') geprüft, wodurch jeder Titel-Vorgang zwingend mitREAD_SNAPSHOT_REQUIRED endete. Unbekannte/inaktive Felder bleiben fail-closed „absent“.
  • Die Bestätigungsseite leitet Ziel-Zeile, Button-Text und Erfolgsmeldung aus dem tatsächlichen, serverseitig bestätigten Feld des Preview-Ergebnisses ab — nicht mehr aus der KonstanteSAFE_FIELD . Neue feldabhängige Sprachschlüssel (..._METADESC ,..._TITLE ) mit generischem Fallback „Änderung übernehmen“.

Web-App / SystemWeb-App / System

  • Keine funktionale Änderung: Web-System, Domain-Gates, Capabilities und Opt-in-Logik bleiben unverändert; ausschließlich generierte Joomla-Quellen wurden korrigiert.

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.6.1; Paket, Plugin und Komponente bleiben im Lockstep.

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Version 1.6.1 im Lockstep; keine funktionale Änderung am Plugin.

Protokoll / Hash / DBProtokoll / Hash / DB

  • Unverändert: Protokoll v3, Hash-Version 1, Kanonisierung, Receipt-Tabelle und Datenbankschema. Keine Migration, keine Datenmutation.

1.6.0Build C7.3C: kontrollierter Beitragstitel-Write aktiviert (2026-08)

Web-App / SystemWeb-System/Backend

  • Feldspezifische Write-Capability:metadesc verhält sich exakt wie bisher,title verlangt zusätzlich die aktive Capabilityarticle.title.write .
  • Titel-Diagnose im Dry-Run ist nicht mehr konstant inaktiv:writeActive wird nur bei vollständig erfüllten Gatestrue , sonst bleibt ein stabiler Fehlercode (TARGET_NOT_ACTIVE ,WRITE_BACK_DISABLED ,WRITE_TARGET_NOT_ENABLED ,TEST_TARGET_NOT_ALLOWED ).
  • Rollback prüft den Wiederherstellungswert feldabhängig; Titel-Rollback verlangt dieselbe Titel-Capability wie der Write.

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.6.0; Paket, Plugin und Komponente bleiben im Lockstep.

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Meldetarticle.title.write als aktive und angekündigte Fähigkeit; keine eigene Schreiblogik, keine SQL-Mutation.

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • WriteGuard :ACTIVE_FIELDS = ['metadesc','title'] , neues eigenes GateTITLE_WRITE_ENABLED , Titel-Validierung (nicht leer, keine Zeilenumbrüche, keine spitzen Klammern, maximal 255 Unicode-Codepoints).
  • Neuer, getrennter Save-PfadsaveTitle() über das Joomla-Article-Model. Die URL-Kennung, der Beitragstext, State und Custom Fields werden nicht übergeben und bleiben unverändert. Kein Batch, kein direkter SQL-Write.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v3 unverändert;article.title.write ist ab dieser Version aktive UND angekündigte Fähigkeit. Hash v1 unverändert.
  • Keine Migration in diesem Build; die CHECK-Erweiterung auffield IN ('metadesc','title') ist bereits aus C7.3A angewendet.

1.5.0Build C7.2: Beitragstitel lesen, Titel-Write hart deaktiviert (2026-08)

Web-App / SystemWeb-System/Backend

  • Dry-Run liefert zusätzlich eine rein lesende Titel-Diagnose (titleRead ): lesbar, leer, Länge in Zeichen, Hash-Übereinstimmung, Hash-Version, Lese-Capability.writeActive ist konstantfalse , der Write-Status konstantTARGET_NOT_ACTIVE .
  • Die Verbindungsansicht zeigt den Block „Beitragstitel (nur lesen)“; bestehende Dry-Run-Felder und Texte für die Meta-Beschreibung bleiben unverändert.

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.5.0; Paket, Plugin und Komponente bleiben im Lockstep.

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Meldetarticle.title.read , wenn#__content.title tatsächlich lesbar ist. Der Titel wurde bereits zuvor als roher Speicherwert mit Hash v1 übertragen; neu ist ausschließlich die gemeldete Lese-Fähigkeit.
  • Kein Schreib-Handler, kein zusätzliches Event, keine SQL-Mutation.

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • WriteGuard unterscheidet bekannte Felder (metadesc ,title ) von schreibbaren Feldern (nurmetadesc ). Preview, Apply und Rollback weisentitle stabil und fail-closed mitTARGET_NOT_ACTIVE ab — vor Scope-, Wert-, ACL-, Token- und Hashprüfung.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v3 unverändert;article.title.read ist aktive Fähigkeit,article.title.write bleibt ausschließlich angekündigt.
  • Keine Migration angewendet. Die additive CHECK-Erweiterung auffield IN ('metadesc','title') liegt vorbereitet untersupabase/pending-migrations/ und wird erst in C7.3 ausgeführt.

1.4.3Build C6: Joomla-Branding (2026-08)

Web-App / SystemWeb-System/Backend

  • Das bereits vorhandene YooOptimize-Icon wird zusätzlich zentral für Joomla ausgeliefert (src/lib/joomla/brand-asset.server.ts ); kein neues Logo, keine visuelle Neuinterpretation, kein Inline-Base64.

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.4.3; Paket, Plugin und Komponente bleiben im Lockstep.
  • Download-/Paketname zeigt 1.4.3.

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Die native Joomla-Plugin-Konfiguration zeigt einen kompakten YooOptimize-Branding-Hinweis (Standard-Feldtypnote ) mit demselben zentralen Asset; Pfad relativ zum Administrator, damit auch Unterverzeichnis- Installationen funktionieren.
  • Felder, Parameter, Endpunkt/Schlüssel, Übersetzungen und Upgrade-Verhalten unverändert.
  • Die Joomla-Pluginliste selbst bietet kein natives, benutzerdefiniertes Logo; das Branding erscheint daher ausschließlich auf der Konfigurationsseite.

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • Das Logo liegt genau einmal im Media-Bereich (media/com_yoooptimize/images/yoooptimize-icon.svg ); das Komponentenmanifest installiert und aktualisiert es über einen Joomla-5-konformenmedia destination="com_yoooptimize" -Bereich.
  • Neuer gemeinsamer Kopf-Helper (BrandHelper::header() ), verwendet in den Ansichten Status, Changelog und Write-Back: Icon + Text „YooOptimize“, theme-neutral (transparent, geerbte Farben), dekoratives Bild (alt="" ,aria-hidden ), feste 32 px ohne Layoutsprung.
  • Keine Toolbar-Überschreibung, kein DOM-Hack; Inhalte, Rücklinks, Hinweise und Formulare unverändert.
  • Kein Menü-Icon im Joomla-Administrationsmenü: Joomla 5 unterstützt dort updatefest nur Icon-Klassen, kein eigenes Bild-Asset — daher bewusst ausgelassen.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Unverändert. Keine Schemaänderung; der zusätzliche Komponenten-Update-Pfad1.4.3 ist rein additiv und idempotent.

1.4.2Build C5.2: Herkunftsnavigation und theme-neutrale Joomla-Ausgabe (2026-08)

Web-App / SystemWeb-System/Backend

  • /changelog erhält eine sichere, kontextabhängige Rücknavigation: die drei internen Links übergeben ausschließlich einen whitelisted Herkunftswert (home ,admin ,integrations ). Unbekannte oder fehlende Werte fallen aufhome zurück; es gibt keine frei wählbare Rücksprung-URL und damit keinen Open Redirect.
  • Rückbutton beschriftet und verlinkt je Herkunft: Startseite, Admin-Cockpit oder Joomla-Verbindungen.
  • Der Kopf der Changelog-Seite zeigt das bestehende YooOptimize-Brand-Icon neben dem Schriftzug; kein neues Asset, keine Inhaltsänderung.

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.4.2; Paket, Plugin und Komponente bleiben im Lockstep.

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Nur Versionsangleichung auf 1.4.2; Verhalten unverändert.

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • Die lokale Changelog-Ansicht ist jetzt theme-neutral: die Textfläche erbt Hintergrund und Textfarbe des aktiven Joomla-Backend-Themes (background: transparent ,color: inherit ),bg-light entfällt. Light- und Darkmode sind damit gleichermaßen lesbar.
  • Lokale Quelle (CHANGELOG.txt ), Escaping, Fehlzustand und der Verzicht auf jeden Remote-Abruf bleiben unverändert.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Unverändert.

1.4.1Build C5.1: zentraler Changelog, sichtbar in App und Joomla (2026-08)

Web-App / SystemWeb-System/Backend

  • CHANGELOG.md im Repository-Root bleibt die einzige redaktionelle Quelle.
  • Der Generatorscripts/gen-changelog.mjs erzeugt zusätzlich ein browser-sicheres Modul für die Web-App; Joomla-Modul und Web-Modul stammen byte-gleich aus derselben Quelle.
  • Neue öffentliche Seite/changelog mit neuester Version oben und getrennten Bereichen je Artefakt (Web-App/System, Paket, System-Plugin, Admin-Komponente, Protokoll/Hash/DB).
  • Begrenzter, sicherer Changelog-Parser für Überschriften, Listen und Inline-Code; keine Markdown-Abhängigkeit, kein rohes HTML.
  • Verlinkung ohne Inhaltsdopplung: Footer der Landingpage, Kopf des Adminbereichs und Integrationsbereich neben dem Paketdownload.

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.4.1; Paket, Plugin und Komponente bleiben im Lockstep.
  • CHANGELOG.txt unverändert im Paket-Root sowie in beiden enthaltenen ZIPs.

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Nur Versionsangleichung auf 1.4.1; Lese-/Capture-Verhalten unverändert.

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • Neue lokale Changelog-Ansicht (view=changelog ), erreichbar über einen Button auf der Status-Seite; Rückweg zum Status vorhanden.
  • Die Ansicht liest ausschließlich die mitgelieferte lokaleCHANGELOG.txt aus dem Komponentenverzeichnis; kein Remote-Abruf, keine Mutation.
  • Ausgabe vollständig escaped, mit verständlichem Hinweis, falls die Datei fehlt; deutsche und englische Sprachstrings ergänzt.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v3, Feld-Hash-Version 1 — unverändert.
  • Keine Schemaänderung, keine Änderung an Capabilities, Write-Back oder Rollback-Verhalten.

1.4.0Build C5: kontrollierter Rollback (2026-08)

Web-App / SystemWeb-System/Backend

  • Kontrollierte, ausschließlich manuelle Rücksetzung eines bereits erfolgreich angewendeten Write-Back-Vorgangs aufarticle.metadesc .
  • Rollback-Vorgang als eigener Job (kind='rollback' ,parent_job_id , geerbtecorrelation_id ), der dieselbe Kette Entwurf → geprüft → freigegeben → anwenden durchläuft.
  • Neue ServerfunktioncreateWritebackRollback .
  • Zwei-Schritt-Rücksetzung in der Write-Back-Oberfläche, nur sichtbar für einen bereits angewendeten Schreibvorgang.
  • Der wiederherzustellende Wert stammt ausschließlich aus dem serverseitig gespeichertenprevious_value des Elternvorgangs — niemals aus dem Browser oder aus Joomla-Formularfeldern.
  • Rollback nur zulässig, wenn der Elternvorgang einappliedwrite im unveränderten Safety-Scope ist und der Live-Hash exakt dem angewendeten Wert (new_hash ) entspricht; andernfallsROLLBACK_CONFLICT .
  • Genau ein Rollback pro angewendetem Vorgang, kein Doppel-Rollback, kein automatischer Retry, keine Automatik jeglicher Art.
  • Neue Fehlercodes:ROLLBACK_NOT_ELIGIBLE ,ROLLBACK_VALUE_MISSING ,ROLLBACK_CONFLICT .
  • Alle C4/C4.1-Gates bleiben unverändert: Opt-in der Verbindung,write_targets , Safety-Allowlist, Einmaltoken, HMAC, POST/CSRF, asset-spezifische ACL, Lock/Workflow, Live-Hash, Receipt/Idempotenz.

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.4.0; enthält Systemplugin und Admin-Komponente.
  • CHANGELOG.txt liegt im Paket-Root sowie in beiden enthaltenen ZIPs.

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Meldet die Capabilitywriteback.rollback als aktiv.
  • Lese-/Capture-Verhalten unverändert gegenüber 1.3.3.

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • Kontrollierter Apply-/Rollback-Pfad:WriteGuard::ROLLBACK_ENABLED = true .
  • Kind-abhängige Beschriftung, Hinweis und Bestätigung im Apply-Formular (Anwenden vs. Zurücksetzen), inklusive DE-/EN-Sprachschlüsseln.
  • Das erwartetekind stammt ausschließlich aus dem Server-Claim.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v3, Feld-Hash-Version 1 — unverändert.
  • article.title.write bleibt ausschließlich angekündigt, nicht aktiv.
  • Keine Schemaänderung.kind ,parent_job_id ,correlation_id undprevious_value existieren seit Build A/C1.

1.3.3Build C4.1: Stabilisierung und Joomla-Fallback

Web-App / SystemWeb-System/Backend

  • Popup-Handling für „In Joomla anwenden“ (Firefox-kompatibel, ohne Opener).
  • Frischer Joomla-Lesestand im Write-Back ohne neue Analyse.
  • Fortsetzung derselben Analyse-ID über Joomla nachBOT_CHALLENGE .
  • Abrufmodus vor jeder neuen bzw. erneuten Analyse wählbar.
  • Feldbewusste Extraktion incms-target.ts .

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.3.3 (Plugin und Komponente gleichauf).

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Unverändertes Lese-/Capture-Verhalten, Versionsangleichung.

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • cleanContentCache stattcleanCache (PHP-8.3-Kompatibilität).

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v3, Feld-Hash-Version 1; keine Schemaänderung.

1.3.1Build C4: aktivierbarer, kontrollierter Write

Web-App / SystemWeb-System/Backend

  • HMAC-signierter Claim/Report unter/api/public/joomla/writeback/* .
  • Job-Lifecycle mit Einmaltoken,operation_id , Receipt und Idempotenz.
  • Connection-Opt-in für Write-Back (Standard AUS, Owner-only).
  • Klarstellende Statustexte in der Joomla-Oberfläche (1.3.2).

Paket pkg_yoooptimizePaket pkg_yoooptimize

  • Version 1.3.1 bzw. 1.3.2 mit aktivierbarem Schreibpfad.

System-Plugin plg_system_yoooptimizeSystem-Plugin plg_system_yoooptimize

  • Meldetwriteback.apply als aktive Capability.

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • WriteGuard::FEATURE_ENABLED = true ; Write ausschließlich über das Joomla-Article-Model, niemals per SQL auf#__content .

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v3, Feld-Hash-Version 1;article.meta.write aktiv,article.title.write nur angekündigt.

1.3.0Build C2: Joomla-Write-Pfad, hart deaktiviert

Admin-Komponente com_yoooptimizeAdmin-Komponente com_yoooptimize

  • POST/CSRF/asset-spezifische ACL, Receipt-Store, Scope-Guard.
  • Write-Pfad vollständig vorhanden, aber technisch abgeschaltet.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v3, Feld-Hash-Version 1; keine Write-Capability aktiv.

1.2Build B/C0: Protokoll v3 read-only

Web-App / SystemWeb-System/Backend

  • Same-Tab-Flow mit Return-Intent, Admin-Deep-Link, Diagnose.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v3 mit Lesezustand und Feld-Hashes,writeback.validate (Dry-Run), Feld-Hash-Version 1.

1.1.0Protokoll v2

Web-App / SystemWeb-System/Backend

  • HMAC-signierte Capture, CMS-Kontext, Crawler-Health-Messung.

Protokoll / Hash / DBProtokoll/Hash/DB

  • Protokoll v2, read-only.