Sammelrelease nach Feedback aus der Test-Installation. Sieben unabhängige
Probleme — vom Form-Breaker über Übersetzungs-Lücken bis Log-Hygiene.
- fix(jobs): Einsatz manuell erfassen brach das HTML-Attribut, sobald
Customer-Namen ein " enthielten (@json in x-data=""). Auf json_encode
via {{ }} umgestellt (HTML-escaped). Alpine initialisiert wieder,
Anlegen-Button funktioniert.
- feat(i18n): BrandedTranslator injiziert :app_name automatisch in alle
__()-Aufrufe. Hilfetexte, Mails, Update-Strings rendern jetzt überall
korrekt 'Schneespur' bzw. 'Wintertrace' statt rohes :app_name.
- feat(dsgvo): EN-Default-Vorlage default-template-en.blade.php mit
UK/EU GDPR-Wording (Art. 6(1)(f), ICO-Hinweis, Subject Rights).
Controller laden locale-aware mit Fallback auf DE. Placeholder-Helper
kennt DE + EN Tokens.
- ui(settings): Alle 8 Settings-Karten haben jetzt Icons, nicht nur
Module. Markup auf array-driven Loop entrümpelt.
- chore(modules): Example-Modul boot()-gated via EXAMPLE_MODULE_ENABLED
env-Var (default false). Aus Release-ZIP komplett entfernt. Bestehende
Installs mit altem example/-Ordner laden es nicht mehr automatisch.
- chore(logging): ModuleManager Discovery/Boot-Logs auf debug
runtergesetzt (waren info → fluteten laravel.log bei jedem Request).
Defaults auf daily-Rotation mit 14d Retention + LOG_LEVEL=warning für
Production.
- fix(install): Hardcoded deutsche Fehlermeldung im InstallerController
durch __('install.preflight_has_failures') ersetzt.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>