presseportale/app/Services/PressRelease
Kevin Adametz e9bdff3ad3 images: Datenmodell, Textarchiv, Herkunftsprüfung und gemeinsamer Uploader für Formular v2 (Bildkennzeichnung Block A)
- press_release_images: Kundenangabe/Portalkennzeichnung getrennt, Herkunftsbefund, Beweisoriginal, Snapshot-Pfade, published_ever_at, rules_version, Fokus/Letterbox; Bestand unangetastet
- legal_texts (insert-only) mit img-confirm-v1 (alter Wortlaut), v2 (AGB 0.6), v3 (AGB 0.7, noch ohne Datum); image-rights:backfill-confirmations
- image_rights_confirmations polymorph, insert-only, IP als versionierter HMAC; Löschung nur für nie veröffentlichte Uploads
- ImageProvenanceInspector (Imagick/exif): IPTC, XMP, EXIF; algorithmicallyEnhanced nur Vermerk; unlesbare Datei = error
- PressReleaseImageUploader: Original vor Derivaten, Hash-Bindung, Titelbild-Regel unter Sperre, Dateien bei Fehlern zurückgerollt; Admin-Upload ohne Bestätigung
- ImageService: kein Rückfall auf die Quelldatei, og-Variante, Fokuspunkt und no_crop

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-22 09:22:05 +00:00
..
Classification performance: Caching, deferred Tracking & externe Timeouts (H7, M12, M13) 2026-07-14 13:49:47 +00:00
ContentScore performance: Caching, deferred Tracking & externe Timeouts (H7, M12, M13) 2026-07-14 13:49:47 +00:00
Images images: Datenmodell, Textarchiv, Herkunftsprüfung und gemeinsamer Uploader für Formular v2 (Bildkennzeichnung Block A) 2026-09-22 09:22:05 +00:00
AiDeclarationRequiredException.php KI-Kennzeichnung (Art. 50 KI-VO): Pflicht-Deklaration für Text & Bilder 2026-07-09 13:54:43 +00:00
AnonymizationService.php recht: Meldeverfahren v2 Phasen 1-4 — Re-Sync-Sperre, Anonymisierung, Magic-Link-Intake, Self-Service-Korrektur 2026-07-22 15:56:34 +00:00
BlacklistService.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
BlacklistViolationException.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
BookingRequiredException.php Phase 9 Block 1: Gelb-Routing Direkt-Live, Slot-Verbrauch bei Veroeffentlichung, Submit-Gate 2026-06-12 09:47:06 +00:00
BoostService.php web: Entfernung mit 410 Gone als Alternative zur Löschung 2026-09-01 11:06:35 +00:00
CanonicalAssigner.php web: Doppelveröffentlichung — Prüfsumme, kanonische Zuordnung (aus bis E9), Quellenauskunft, noindex im Portal (Anhang 2) 2026-09-17 16:09:16 +00:00
CorrectionRateLimitException.php recht: Meldeverfahren v2 Phasen 5+7 — DSGVO-Strukturformular, 10-€-Checkout mit KI-Vorprüfung, Triage & Panel-Modal 2026-07-23 13:02:57 +00:00
CorrectionService.php betrieb: Logs je Thema in Tagesdateien (billing, ki, monitoring, market); Doku: Duplicate-Content-Decision durch Anhang 2 abgelöst 2026-09-18 13:35:42 +00:00
CorrectionTooLargeException.php recht: Meldeverfahren v2 Phasen 1-4 — Re-Sync-Sperre, Anonymisierung, Magic-Link-Intake, Self-Service-Korrektur 2026-07-22 15:56:34 +00:00
CrawlerHitReport.php admin: Bericht „Indexierung & Abrufe" — Rolle Erstquelle/Kopie, Quellenbefund, Crawler-Abrufe; Schlüsselpfad ab Projektwurzel 2026-09-18 12:53:22 +00:00
FeedFetchReport.php web: Abruf-Protokoll der RSS-Feeds — Reader-Dienst, gemeldete Abonnenten, Admin-Bericht, Panel (Roadmap 3.1) 2026-09-21 09:00:09 +00:00
PressReleaseAttachmentStorage.php web/api/ki: Soft Deletes wieder wirksam, Caches bei Firmenwechsel, KI-Ergebnis an Inhalt gebunden (Audit Block 3+4, Deploy D) 2026-09-18 10:40:48 +00:00
PressReleaseCoverImage.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
PressReleaseHtmlSanitizer.php Fix: Umbrueche bleiben beim Bearbeiten von Legacy-PMs erhalten 2026-06-18 12:57:45 +00:00
PressReleaseLinkPolicy.php Verlinkung & Backlinks: systemseitige rel-Auszeichnung (Decision-Update 11.06.) 2026-06-12 15:24:20 +00:00
PressReleaseMediaPrivatizer.php deps: Composer- und npm-Pakete innerhalb der Constraints aktualisiert 2026-09-15 15:04:52 +00:00
PressReleaseService.php ki/quota: Hash-Bindung atomar bis in den Publish-Lock, roter Re-Check lehnt ab, Kontingent-Altbestand (Block 7, U02–U04) 2026-09-18 12:22:22 +00:00
ProofPdfRenderer.php technik: Statische Analyse wieder aussagekräftig machen 2026-09-01 11:07:51 +00:00
QuotaExceededException.php Phase 9 Block 1: Gelb-Routing Direkt-Live, Slot-Verbrauch bei Veroeffentlichung, Submit-Gate 2026-06-12 09:47:06 +00:00
RejectionRateReport.php reports: Basiswerte für die Konversionsmessung (Roadmap 0.1 und 0.2) 2026-09-01 11:57:25 +00:00
ReviewCheckService.php performance: Caching, deferred Tracking & externe Timeouts (H7, M12, M13) 2026-07-14 13:49:47 +00:00
StaleClassificationException.php ki/quota: Hash-Bindung atomar bis in den Publish-Lock, roter Re-Check lehnt ab, Kontingent-Altbestand (Block 7, U02–U04) 2026-09-18 12:22:22 +00:00
ViewDistributionReport.php reports: Kohortenalter ab Stichtag statt ab --to; legacy:settle-unpaid kennt bereits ersetzte Quellen; dev: Basiswert 0.1 vom Live-System ausgewertet 2026-09-21 15:32:32 +00:00
VisibilityStats.php web: Abruf-Protokoll der RSS-Feeds — Reader-Dienst, gemeldete Abonnenten, Admin-Bericht, Panel (Roadmap 3.1) 2026-09-21 09:00:09 +00:00