100 Commits
Author SHA1 Message Date
Jan-Niclas LoosenandClaude Sonnet 5.5 9f7c2d9aba feat(updater): Update-Prüfung nach Installation oder Versionswechsel neu auslösen, Version 1.0.5
Eine Installation löscht das gespeicherte Update-Ergebnis; eine Prüfung, die läuft, solange das Plugin
nicht geladen ist, speichert eines ohne das Plugin, und der Schalter für automatische Updates fehlt bis
zu eine Stunde. RecheckOnInstall vergisst das Ergebnis beim ersten admin_init mit der neuen Version
(Priorität 5, vor _maybe_update_plugins des Core), der es dann mit registriertem GiteaUpdater neu aufbaut.
Die Option lit_mcp_installed_version räumt der Uninstaller auf.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 15:36:30 +01:00
Jan-Niclas LoosenandClaude Sonnet 5.5 62292a4846 chore(release): Version 1.0.4, kürzere Beschreibung in der Plugin-Liste
Beschreibung auf zwei kurze Sätze gekürzt; Gedankenstriche in den Kommentaren des Updaters entfernt.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 15:06:48 +01:00
Jan-Niclas LoosenandClaude Sonnet 5.5 cede8e89fb chore(release): Version 1.0.3, ausführlichere Beschreibung in der Plugin-Liste
Beschreibung nennt Funktionsumfang, Einstellungsort und Update-Quelle; Plugin URI ergänzt den Link
"Plugin-Website besuchen" in der Plugin-Liste.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 14:59:05 +01:00
Jan-Niclas LoosenandClaude Sonnet 5.5 c8648d5263 fix(updater): Paket-Adresse aus Tag und Dateiname bauen, Version 1.0.2
Gitea meldet browser_download_url hinter dem TLS-Proxy mit http://, der Updater lehnte die Adresse ab
und fand kein Update. Die Adresse wird jetzt aus dem geprüften Tag und dem Dateinamen gebaut; release-check.sh
prüft genauso.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 14:50:43 +01:00
Jan-Niclas Loosen b2759fba73 Prepare release engine 2026-11-04 14:46:54 +01:00
Jan-Niclas LoosenandClaude Sonnet 5.5 8fe4eb63c8 chore(release): Version 1.0.1
1.0.0 wurde ohne ZIP-Datei veröffentlicht; 1.0.1 ist das erste vollständig ausgelieferte Release,
Inhalt unverändert.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 14:13:34 +01:00
Jan-Niclas Loosen 216a7fb370 Update release check 2026-11-04 14:07:09 +01:00
Jan-Niclas Loosen 3337a63c5d Prepare auto updates 2026-11-04 13:51:01 +01:00
Jan-Niclas LoosenandClaude Sonnet 5.5 a066d47bfd docs(spec): Kann-Kriterium Divi-Bibliothek löschen und umbenennen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 16:02:05 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 e2dbf45162 docs(4e-review M-3): Audit-Status führt M1 nach dem Update-Fix als behoben; Folgearbeit aus dem Gesamtreview
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:41:53 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 8ff3b165b6 docs(4e-review M-2): Guide nennt L3 (Kopien und globale Instanzen ohne Schleifen-Art-Prüfung) als offene Grenze
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:41:39 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 410e773d28 fix(4e-review clean-code): eine sanitize_key-Nachbildung (LoopScope::sanitizeKey) statt dreier; Docblock zur strengeren LoopContext::enabled()
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:41:33 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 71ffbdbf59 fix(4e-review M-1): Schleifen-Warnung nennt die ganze Kette (Terme > Beiträge); loopWhere mit frühen Returns
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:40:05 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 8be2f5e558 fix(4e-review M1): Update unterscheidet Composer und Zweitdurchlauf nach der ganzen Schleifen-Kette (LoopScope::key)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:38:33 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 b91c356a28 chore: Version 0.7.0 (Etappe 4); Spec und Notizen nachgeführt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:31:24 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 1fdcb2e075 docs: Security-Audit Etappe 4 mit Status nach der Fix-Welle
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:28:43 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 99c7aab238 fix(audit L5): unter der Sperre Divis Laufzeit-Caches verwerfen (Options-Cache-Gruppe, GlobalData-/GlobalPreset-Static, et_theme_options) vor raw() und design_rev
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:26:40 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 6e84138979 fix(audit L1): queryType null fällt wie bei Divi (isset) auf post_types zurück; Skalare lesen wie sanitize_key
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:20:09 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 f754772beb fix(audit L5): Uninstaller entfernt auch die alten Sperren-Namen lit_mcp_lock_colors und lit_mcp_lock_theme_options
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:15:36 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 3a89b15b59 fix(audit M1): Update-/Move-Warnung nur für Inhalte, die vorher zur Schleifen-Kette passten (kein Alarm für ACF-Optionen); Tests für Update und Kettenwarnung beim Move
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:14:57 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 bb5487082e fix(audit L4): Restore prüft die Fundstellen aller Diff-Zeilen (auch aktivierte und wieder angelegte IDs, Standard-Preset-Wechsel)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:13:44 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 c4ee195392 fix(audit L5): Sperre verwirft den Options-Cache (alloptions), damit Inventar und design_rev unter der Sperre den gespeicherten Stand lesen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:13:08 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 71c2e03c9b fix(audit L1): Schleifen-Rechteprüfung auf dem bereinigten Wert (sanitize_text_field-Umgehung) und mit sanitize_key-Lesart von enable/queryType
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:11:11 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 bd80ab1394 fix(audit L4): Restore-Planer für Farben, Variablen und Presets berechnen die Fundstellen (affected, P8a blocked_ids) für geänderte, entfernte und deaktivierte Einträge
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:03:28 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 4a8a889f93 fix(audit L1): Schleifen in module.advanced.loop brauchen list_users (Benutzer) bzw. read_private_posts (any, attachment, leere subTypes), auch beim Kopieren
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:00:59 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 9c1d5fad22 docs(audit M1, L2): Guide zur Schleifen-Kette für Feld-Optionen, queryType-Normalisierung und Update-/Move-Warnung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:55:32 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 20e02164a5 fix(audit L8, DNS-Rebinding): RemoteFileFetcher nur mit cURL und mit CURLOPT_RESOLVE auf die geprüfte Adresse (Host und Weiterleitungsziele)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:55:09 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 06b798ab37 fix(audit L7): Bild-Variablen lassen ' ( ) ; { } \ nicht mehr zu (kein Ausbruch aus url(...) in der :root-Regel)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:53:14 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 1b3ef552e7 fix(audit L5): et_theme_options unter der gemeinsamen Sperre aus et_divi neu laden, bevor Farben oder Theme-Optionen schreiben
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:52:38 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 b59a0c045f fix(audit L6, L5): DesignLock atomar (INSERT IGNORE, Token, Übernahme per UPDATE, Release nur mit eigenem Token); Farben und Theme-Optionen teilen eine Sperre
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:52:38 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 522fc8ff4d fix(audit M1, L2): Meta-Schlüssel-Optionen gegen alle Schleifen der Vorfahrenkette prüfen; queryType wie sanitize_key normalisieren, terms/users als Term-/Benutzer-Schleife
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:47:58 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 52208764f0 docs: Guides korrigiert (not_found, Snapshot-Gesamtgrenze, Schleifen-Warnungen) und LoopGuideTest enger an den Code gebunden
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:26:40 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 fc35cbe9dd docs: Guides für Farben, Variablen, Theme-Optionen, Schriften, Snapshots und Schleifen-Inhalte
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:21:09 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 cfc46e1c5e test: divi-loop-smoke – Schleifen-Inhalte, Kontext, dynamic-sources, Move-Warnung und Rendern gegen echtes Divi (Task 6)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 23:19:37 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 02e7c3e8ec feat: lit/divi-dynamic-sources mit post_id + node – Schleife des Knotens und passende loop_*-Quellen (X6)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 21:05:49 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 5b52e18a31 fix: Insert entscheidet fail closed auf den komponierten Blöcken statt auf Client-Text; Update warnt bei Wechsel der Schleifen-Art unter unveränderten Kindern (X3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:58:48 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 dadc1f3ec4 test: lit-content-create hat keinen Schleifen-Kontext – loop_* mit der Schleifen-Meldung abgelehnt (X3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:53:34 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 ed6fe12ada feat: lit-divi-move warnt, wenn Schleifen-Inhalte ihre Schleife verlassen oder in eine andere Art kommen (X3, A11)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:52:53 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 8888d246a9 feat: lit-divi-update prüft jede Änderung im Schleifen-Kontext ihres Knotens – ein Composer je Kontext, neue loop-Attribute zählen (X3, S31)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:52:14 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 249bc7b932 feat: lit-divi-insert prüft Schleifen-Inhalte im Kontext des Ziels; neue Schleife plus Inhalt in einem Aufruf fail closed (X3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:51:42 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 2f484b77ae feat: DiviComposition::inLoop() – VariableRef und Placeholders mit Schleifen-Kontext; S31 je Kontext (X3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:50:24 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 6da2c0090f feat: Kurzform {{loop:<option>}} in Placeholders – Tabelle LOOP, before/after aus den Loop-Feldern der Komposition (X4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:48:51 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 5ee846e63d docs/test: S36-Hinweise abgelöst (X5); loopFields() in VariableRef gepinnt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:45:01 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 f8912c255d feat: DynamicContentRules/VariableRef mit LoopScope – loop_* nur in passender Schleife (X2, X5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:44:26 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 3d12043b4f feat: DynamicContentMap::loopFields() – loop_*-Optionen nach Art (X2); echte Loop-Optionen in DiviFixtures
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:43:10 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 617ad2888d feat: LoopContext – Schleifen-Kontext aus dem Blockbaum, innerste gewinnt (X1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:40:02 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 39dfb0f490 feat: LoopScope – Schleifen-Art aus queryType und Optionsname (X1/X2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:39:29 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 f5790def97 docs: Plan Etappe 4e – Schleifen-Inhalte, Guides, Audit, Version (Tasks 1–10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:38:33 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 6203dbb62b docs: Gerüst Plan Etappe 4e – Schleifen-Inhalte, Guides, Audit, Version (Rulings, Schnittstellenvertrag)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 20:12:17 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 7678d228e7 test: Smoke prüft conflict, sha256/Bytes, Schriftdatei und body_font; Lint-Zeilenlängen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:30:13 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 f2aeb59d02 docs/feat: Spec 8.1/8.2 präzisiert; DSGVO-Hinweis in der Beschreibung von lit/divi-fonts-upload
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:28:36 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 15cffedb9f refactor: FontNameRules::check() ohne toten Reserviert-Zweig; Kollision bleibt taken()/409
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:28:23 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 bfe6623fe8 refactor: DesignRights::themeOptions() ohne ungenutzten DesignSystemWriter
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:27:52 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 0a24753b4d fix: Schriftname wird vor der Katalogprüfung getrimmt (Theme-Optionen)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:27:16 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 2b45f1bdd3 fix: FontInstaller prüft Divis Schriftenliste vor font_add; leere Installation ist ein sauberer Rollback
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:27:02 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 901179de62 fix: ThemeOptionSpec lehnt Zahlen mit Zeilenumbruch am Ende ab (D-Modifier)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:26:35 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 942e4220ed fix: RemoteFileFetcher::fetch() prüft die URL selbst; Doppelprüfung im Schriften-Upload entfällt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:26:35 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 bfede30d33 docs: Notizen und Spec für Etappe 4d (Recherche, Formate-Nachtrag, Rulings W1–W14, offene Kleinpunkte)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:20:17 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 cb41f9e877 test: Smoke prüft Bereichs- und Schlüssel-Ablehnung auf Grund und Feld
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:17:41 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 4300205f17 test: Smoke für Theme-Optionen und Schriften-Upload gegen Divi 5.15.1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:15:18 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 0a76f3c196 fix: lit/divi-fonts-upload reicht DiviLocked aus dem Installer durch statt write_failed
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:09:26 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 7e7568ea62 feat: Theme-Optionen und Schriften-Upload in der Divi-Integration; je ein geteilter Adapter; Restore von theme_options
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:08:39 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 35e92fcb6c feat: lit/divi-fonts-upload – eigene Schriften von URLs hochladen (Probelauf mit SHA-256, confirm, Rücknahme bei Teilerfolg)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:04:55 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 ad76d5ae66 feat: FontInstaller – Schrift-Upload über FontsUtility::font_add im Prozess (Manifest, Mirror font-install, Signatur-Referenzen)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:03:48 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 775d611cfa feat: FontSignature (Magic Bytes) und FontNameRules (Namensregeln eigener Schriften)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:02:29 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 172a703903 refactor: RemoteFileFetcher aus MediaImporter herausgelöst (URL-Prüfung, Weiterleitungen, Download)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 18:00:41 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 bba5a618ed feat: lit/divi-design-restore stellt theme_options wieder her; Hinweis auf Etappe 4d entfällt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:58:47 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 2e3b740260 feat: ThemeOptionsRestorePlanner – Snapshot theme_options ersetzt die Whitelist, nennt zurückgesetzte Optionen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:58:04 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 449ec5c33f feat: lit/divi-variables-set prüft Schrift-Variablen gegen Divis Schriftliste (mit Vorschlägen)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:56:58 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 dab4a9ba2e fix: gespeichertes false (Divi-Standardschrift) gilt in Theme-Optionen get/update als nicht gesetzt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:55:21 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 879ca752e7 feat: lit/divi-theme-options-update ändert Theme-Optionen über DesignChange (Prüfung, Divi-Sanitizer, Schriftvorschläge)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:51:50 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 122548db12 feat: lit/divi-theme-options-get liest Wert, wirksamen Wert, Standard und Bereich je Theme-Option
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:51:18 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 1bc8ce65b7 feat: ThemeOptionsArea – Bereich theme_options ersetzt die Whitelist, prüft das Zurücklesen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:51:09 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 05ff2d90f3 feat: FontSuggest – ähnliche Schriftnamen für unbekannte Schriften (W5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:48:30 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 8740e9b8dc feat: ThemeOptionDiff – Diff und Zusammenfassung der Theme-Optionen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:48:16 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 d9c4bc3751 feat: ThemeOptionBook – unveränderlicher Bestand der Theme-Optionen mit rev() (W6)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:47:59 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 a9edd850c1 feat: ThemeOptionSpec – die 20 Theme-Optionen mit Prüfung, Normalisierung und Vererbung (W2–W4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:47:35 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 a90cd7f5bd feat: Fähigkeiten theme-option-read/-write und font-upload; ThemeOptionsAdapter und FontCatalog (Manifest, Nachbau customizer-typography, Signatur-Referenzen) und DesignRights::themeOptions()/fonts()
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:44:57 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 8379c55c89 docs: Plan Etappe 4d – Theme-Optionen und Schriften (Tasks 1–11)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:38:24 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 d1a0e77f28 docs: Gerüst Plan Etappe 4d – Theme-Optionen und Schriften (Rulings, Schnittstellenvertrag)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 17:15:36 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 2307027eae style: phpcs (ItemKeys, VariableValue, Docblock)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:42:13 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 c6daae131d fix: Variablenwerte für Links/Bilder lehnen //host, /\host und Steuerzeichen ab
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:41:06 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 5064409f9a refactor: Detach – toter Zweig, benannte Argumente; VariableDetachRewrite-Docblock nennt leftover()
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:40:50 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 7608be6558 refactor: ColorRestorePlanner baut den Diff einmal aus ColorDiff; die Zusammenfassung zählt Entfernungen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:40:36 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 d092c05311 fix: VariableArea::verify vergleicht auch den Namen; Docstring beschreibt, was verify und differences wirklich fangen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:40:13 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 25252c92f2 docs: Spec 4c – Item-Form nur mit id, Archivieren statt Löschen, affected vs. warnings (V8)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:39:51 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 e2e28cd1b4 test: Farben/Variablen-Smoke stellt et_divi und die Variablen-Option byte-genau wieder her und scheitert bei fehlgeschlagener Wiederherstellung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:39:42 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 02ed5bdbd3 fix: lit/divi-colors-set und lit/divi-variables-set lehnen unbekannte Item-Felder ab (delete, Tippfehler)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:38:00 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 bb2377991d test: Smoke für Farben und Variablen gegen Divi 5.15.1; docs: Formate-Nachtrag 4c, Variablen nur archivieren (Spec §7.2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:31:58 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 0893b7e184 feat: lit/divi-colors-set und lit/divi-variables-set in der Divi-Integration; je ein geteilter Farben- und Variablen-Adapter
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:24:55 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 88a939787d feat: lit/divi-design-restore stellt Farben und Variablen wieder her; nur theme_options folgt mit 4d (V10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:23:10 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 bd2043564b feat: ColorRestorePlanner und VariableRestorePlanner – Restore-Pläne für Farben und Variablen (V1b, V10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:22:23 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 5af188d656 refactor: lit/divi-design-restore plant über RestorePlanner; PresetRestorePlanner übernimmt den bisherigen Code unverändert
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:22:05 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 62f8465e60 fix: Variablen-Detach meldet verbleibende eingebettete Verweise und lehnt Werte mit Verweis, Markup oder leerem Inhalt ab
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:19:41 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 e951cc1353 feat: lit/divi-design-detach entkoppelt Variablen – Verweise in Seiten und Presets werden durch den Wert ersetzt (V9)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:14:49 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 6e9218a2bc feat: VariableDetachRewrite ersetzt ganze Verweise auf eine Variable durch ihren Wert (V9)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:13:33 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 116d866c61 refactor: DetachTarget ersetzt das Array in DiviDesignDetachAbility::target(); Verhalten unverändert
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:13:00 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 fef964bb7a feat: lit/divi-variables-set warnt vor Verwendungen in Presets und beim Archivieren verwendeter Variablen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:10:57 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 d7a8b85f8d feat: lit/divi-variables-set legt globale Variablen an, ändert und archiviert sie (Probelauf, design_rev, Snapshot)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:10:21 +02:00
Jan-Niclas LoosenandClaude Sonnet 5.5 f1f70114f4 feat: VariableArea schreibt globale Variablen mit Divis Stale-Prüfung und behält beim Wiederherstellen spätere Variablen archiviert
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 14:10:02 +02:00