🎉 Release Notes & Verbesserungen

Update - Sa, 28.03.

Hier ist der Changelog als formatierter WYSIWYG-Text, den du direkt kopieren und einfügen kannst:

Changelog — Patch 2026-03-28

Alle Änderungen seit dem Soft Go-Live (2026-03-09, letzter Merge auf main).

Branch: feature/event-hub-umbau — 279 Commits.

Legende: Einträge mit ⏰ wurden in den letzten 48h hinzugefügt und sollten vor dem Patch nochmal geprüft/getestet werden.

Management Summary

Billing & Identity

  1. ⏰ Identity Re-Zertifizierung entspannt: Wenn ein bereits verifizierter Organizer erstmals Trigger-Felder ausfüllt (z.B. legal_name, vat_id), wird keine Re-Zertifizierung mehr ausgelöst. Nur tatsächliche Änderungen an bereits ausgefüllten Feldern lösen den Prozess aus. Das unterscheidet jetzt sauber zwischen "Erstbefüllung" und "Änderung".
  2. ⏰ Billing-Portal gehärtet: Strengere Permission-Checks, Identity-Verification enger gekoppelt, Stripe-Polling produktionsreif gemacht. Neuer billing_policy-Service für Trigger-Feld-Klassifizierung und Drift-Erkennung.

Checkout & Login-Flow

  1. Login-Modal im Checkout: Gibt ein Gast eine bereits registrierte E-Mail ein, erscheint ein Modal mit drei Optionen: Einloggen, als Gast fortfahren, oder Passwort vergessen. Abhängig von der Account Policy des Events (required / optional / not_required) wird der Gast-Checkout erlaubt oder das Login erzwungen.
  2. ⏰ Onboarding UI-Redesign: Waitlist-Benutzer können jetzt inline ihr Konto erstellen. Visuell modernisiert (Glassmorphism → solide Flächen).

Templates & Design

  1. ⏰ Design-Drift über alle 7 Event-Templates behoben: Umfassendes UI/UX-Upgrade mit einheitlichem Checkout-Theming, Light-Mode-Fixes, und Mobile-Optimierung (Safe-Area-Insets, 100dvh, 44px Touch-Targets).
  2. ⏰ WCAG AA Konformität: Kontrast-Fixes (4.5:1), Fieldset-Legends, aria-live auf Dringlichkeits-Elementen, Focus-Visible überall.

Neue Features

  1. Google Wallet Integration: Event-Tickets können direkt in Google Wallet gespeichert werden. Lifecycle-Management bei Check-in und Stornierung.
  2. ⏰ Pre-Event Payout Hold: Automatischer 180-Tage Payout-Hold ab Publish für alle bezahlten Tickets. Sofortige Holds bei Disputes, Force-Release mit Audit-Trail.
  3. Konfigurierbare Refund Policy: 4 Presets pro Event, Deadline-Anzeige in Checkout, Bestätigungs-E-Mails und Stornierungsseite.
  4. Feature-Override System: Neuer Admin-Hub-Tab zum Aktivieren/Deaktivieren von Features pro Organizer ohne Deployment.
  5. Group-Booking: Gruppenbuchungen im Event-Wizard mit konfigurierbaren Rabatten und Per-Person Ticket-Limits.

Ticket-Ansicht & Wallet

  1. Ticket-View komplett redesigned: Neues Styling, Multi-Ticket Guest-View, Wallet-Download Seite überarbeitet.
  2. Wallet-Verbesserungen: HiDPI-Logos, adaptive Light/Dark-Varianten, Wide-Logo Fallback.

Organizer Admin

  1. ⏰ Admin Hub Audit: 33 Fixes — Permissions für 18+ DocTypes, Rate-Limiting auf 8 Endpoints, 90-Tage Retention für Session-Logs, GDPR-Konformität.
  2. ⏰ Stripe Plan-Wechsel überarbeitet: 14 Audit-Findings (6 Critical) behoben, Expired-Abo Handling, Cache-Resilience.

Security

  1. ⏰ XSS-Hardening: Alle 7 Templates, Backend-Kontext, Jinja safe_render Fix, Payment-Token-Regex.
  2. Checkout-Sicherheit: Nonce-Lifecycle, Rate-Limits, Turnstile-Fallback, Timing-Oracle Prevention.
  3. DSGVO: Consent-Einträge für Stripe/Promo-Free Flows, Privacy Anonymizer gehärtet, PII Redaction.

Email

  1. ⏰ Alle Plain-Text Mails auf HTML migriert mit Cita Design v2.
  2. Templates in thematische Subdirectories reorganisiert.

Detailliertes Changelog

🔒 Security & XSS

  1. ⏰ XSS-Hardening für alle 7 Event-Templates und Backend-Kontext (Escaping, Sanitization)
  2. ⏰ Double-Escaping in Event-Templates behoben (str(escape_html()))
  3. ⏰ Jinja safe_render Fix — window.__ durch window['__'] ersetzt (Illegal-Template-Fehler)
  4. ⏰ Payment-Token-Regex Validierung und Sponsor-Links Absicherung
  5. Nonce-Lifecycle Härtung im Checkout (Rate-Limits, Turnstile-Fallback, Timing-Oracle)
  6. Open-Redirect Prevention (GL-W12)
  7. CWE-209: Generische Error-Messages in API-Responses statt str(e)
  8. Webhook Fail-Closed Verification (GL-W1, GL-W2)
  9. Error-Log Sanitization und Housekeeping-Guard
  10. Limit-System Security-Hardening (Phase 1)
  11. ⏰ Template-Validation, rel=noopener für externe Links
  12. ⏰ XSS-Escaping für Custom Fields, Membership-Help und Waitlist

💳 Stripe & Payments

  1. ⏰ Plan-Wechsel komplett überarbeitet — 14 Audit-Findings behoben (6 Critical, 5 High, 3 Medium)
  2. ⏰ Pre-Event Payout Hold mit released_by Tracking und Force-Release Option (#913)
  3. Refund Policy — konfigurierbare Rückerstattungsrichtlinien pro Event
  4. ⏰ Checkout Cancel leitet jetzt zur Event-Seite statt /checkout/cancelled
  5. ⏰ Stripe Preview Fallback für fehlende Upcoming-Invoices + escapeHTML-Hardening
  6. ⏰ Subscription Guard: fehlende current_period_end → Redirect zu Checkout
  7. ⏰ Expired-Abo Checkout-Redirect, Quick-Actions, Cache-Resilience
  8. ⏰ Stale/Missing Subscription-ID Handling in Preview und Plan-Change
  9. ⏰ Non-schedulable Subscriptions → Checkout-Routing bei Plan-Change
  10. ⏰ line.proration AttributeError behoben (Stripe API Kompatibilität)
  11. Stripe Connect Sync-Konsistenz + Field-Descriptions
  12. ⏰ stripe_account_id Lese-Konsistenz in release_payout_hold + Invariant E-01
  13. ⏰ Null-safe current_plan Serialization im Stripe Preview Fallback
  14. ⏰ Plan-Selector: XSS-Escape, i18n, Redirect-Validation, submitGuard finally-Pattern
  15. ⏰ Plan-Selector von sofortigem API-Call entkoppelt, Action-Bar für Dashboard-Mode
  16. ⏰ Organizer Billing Production-Flow gehärtet
  17. ⏰ Diagnostic Source in change_plan Validation-Error Responses
  18. ⏰ Production-Readiness Fixes für Stripe Polling Implementation
  19. ⏰ Consent-Loop bei Plan-Change und Legal-Reconsent gehärtet
  20. Payment Reconciliation Error-Surfacing und Child-Row Heal
  21. Payment-Webhook Handling verbessert (mehrere Iterationen)
  22. P-01 Invariant False-Positives für Free-Ticket und Offline-Registrierungen behoben

🎫 Registration & Checkout

  1. Guestlist: Approval-Flow, Detail-Panel, Modal-Overhaul, Add-Guest-Flow
  2. Waitlist: Price-Lock bei Stripe/Cash-Approval, Endpoint akzeptiert ticket_name, Timing-Guards
  3. ⏰ Group-Members: Cascade-Fix, Child-Table-Sync, Payload-Priority, Metadata-Reader Fallback
  4. ⏰ Plus-One: Consent-Fields, Membership-Number, Consent-on-behalf Audit-Trail
  5. ⏰ Custom Fields: applies_to Filtering korrigiert
  6. Checkout Success Page: Audit-Fixes, CSS-Polish, Dark/Light Logo-Switch, Crew-Section Gating
  7. Promo-Code: Atomic Usage-Count, Redis-Counter Sync, Lock-Assertion (K-01, K-02)
  8. ⏰ Cash-Tickets werden jetzt zur Checkout-Success-Page weitergeleitet
  9. min_per_event Enforcement, max_per_order=0 Display-Fix, Capacity-Events
  10. Idempotency-Keys stabilisiert + Waitlist Timing-Guards (W-10)
  11. Event-Timezone für Age-Validation auf Client und Server (W-05, W-06)
  12. Guest-Registration: Idempotency, Timezone, Promo Redis-Sync
  13. Guest-Activation fragt jetzt nach Passwort statt Auto-Aktivierung
  14. ⏰ Safe Boolean-Coercion in Event-User-API und Promo-Code Canonicalize
  15. ⏰ canonicalize_email None-Safety, +alias Block entfernt
  16. ⏰ Group-Member Stripe-Key Budget und Limit-Fixes (15a/15b/15c)
  17. Guestlist: Bypasses min_per_event, nutzt direktes check_person_ticket_limits
  18. Approval-Notification Fallback zu Event-Owner (H-07, HK-02)
  19. Backtick-Quote für Reserved Words in Feature-Definition Queries
  20. Normalize EVENT_PERSON_MINIMUM_NOT_MET Error-Code über alle Endpoints
  21. max_combined_discount_percent im Ticket-Wizard UI
  22. Checkout-Nonce: Cleanup in SSR verschoben, Approval-TTL, Polling-Hardening
  23. Hidden-Access Feature für Events
  24. Konsistente Preisdarstellung bei Gruppenbuchungen
  25. Promo-Code Usage-Tracking und Ticket-Pricing Display
  26. Ticket-Wizard Step-Validation und Custom-Fields Fix
  27. Group-Booking im Event-Wizard und Per-Person Ticket-Limits

📧 Email & Notifications

  1. ⏰ Plain-Text Mails → HTML migriert mit Template-CSS
  2. Email-Templates in thematische Subdirectories reorganisiert (Cita Design v2)
  3. ⏰ Email-Resilience, Privacy-Hardening, Refund-Template Refactor
  4. ⏰ Announcement Broadcasts und Organizer Services
  5. Wartelisten-E-Mail: Irreführende Ticket-Sektionen ausgeblendet
  6. ⏰ Onboarding-Accounts von Connected-Account Restricted-Alert ausgeschlossen
  7. ⏰ Unused section_tickets.html Fallback-Template entfernt
  8. Unstyled Welcome-Email nach Account-Activation entfernt

🎨 Templates & UI/UX

  1. ⏰ Umfassendes UI/UX-Upgrade für alle 7 Event-Templates und Checkout-Flow
  2. ⏰ Checkout-Theming und Light-Mode-Fixes
  3. ⏰ Sticky Summary, Micro-Interactions, A11Y-Verbesserungen
  4. ⏰ Footer-Legal-Links, Sticky CTA, i18n
  5. ⏰ Focus-Visible, High-Contrast, Template-Theming
  6. ⏰ Onboarding UI-Redesign und Waitlist inline-Login
  7. ⏰ Checkout CSS: Checkbox, Person-Cards, Consent und Waitlist Styling
  8. ⏰ Event-Templates: i18n, A11Y, Announcements-Filter und CSS-Polish
  9. ⏰ Design-Drift behoben über alle 7 Checkout-Templates
  10. ⏰ Inline Login Panel: UI-Polish, Accessibility, State-Fixes
  11. ⏰ Frontend Comment Cleanup für Production-Readiness
  12. Checkout Success Page CSS-Polish
  13. Ticket-Section Templates konsolidiert und Theme-Cleanup
  14. Slide-Editor: Group-linked Order-Limits, Feature-Combo Validation
  15. Approvals UI: XSS-Escaping, Double-Click Prevention, Notification Warnings
  16. Admin Hub Feature-Override Dialog: Select-Field, Debug-Panel, Toggle-Helper
  17. ⏰ Support-Seite auf CITA Component Library migriert

👤 Organizer Admin

  1. ⏰ Admin Hub Audit: 33 Fixes (Security, Permissions, Business Logic, GDPR)
  2. Feature-Override System: Validation-Service, CRUD API, Admin-UI mit Tests
  3. ⏰ Billing Production-Flow Hardening
  4. Branding Quick-Cards Feature-Gating und Wallet-Preset Expansion
  5. ⏰ Plan-Selector Refactoring (entkoppelt von sofortigem API-Call)
  6. PermissionError-Fixes für Organizer-Admin save()-Calls (11+ Stellen)
  7. System-Field Guard Refactoring und Organizer Read-Only Permissions (CC04-002)
  8. Organizer Dashboard Layout und Styling
  9. Branding Management mit Utils und Quick-Cards
  10. Event-Creation, Media-Handling und Detail-View Verbesserungen
  11. Participants Management, Tag-Modal und Group-Members
  12. Organizer Visitenkarte Anpassungen
  13. Consent Admin

🪪 Identity & Verification

  1. ⏰ Identity Verification: Initial Trigger-Backfill ohne Recertification
  2. Weekly Report mit Status-Summary (verified, blocked, in-progress)
  3. Stripe Identity Verification Verbesserungen
  4. Age-Verification Mode Support in Organizer Add-Guest Flows (GL-03)

📱 Wallet & Tickets

  1. Ticket-View Page Redesign mit neuem Styling und Interactions
  2. Multi-Ticket Guest-View und Registration-Flow Overhaul
  3. Wallet Download Page Redesign
  4. Google Wallet Integration für Event-Tickets
  5. HiDPI Logo Resolution für Wallet-Passes
  6. Adaptive Wallet Logo mit Light/Dark Varianten
  7. Wide Logo Fallback und Passbook-Path Resolver
  8. Cita Logo Constraint auf 40% Width-Zone
  9. ⏰ Ticket-View Security: Event-Slug in URL-Fragments, Resend-Links in allen Email-Paths
  10. Wallet-Pass Generation Cleanup und Logging

🛡️ DSGVO & Compliance

  1. DSGVO/AGB Cita Consent-Einträge für Stripe Checkout + Promo-Free Flows (K-03)
  2. Plus-One Consent-on-behalf Audit Trail (W-19)
  3. Privacy Anonymizer Hardening mit zusätzlichen Tests
  4. PII Redaction in Billing-Stubs
  5. ⏰ Unified Email-Validation
  6. Error-Log Sanitization

🔧 Infrastructure & Cleanup

  1. ⏰ Fixture-Audit: Fehlende Gate-Events, Feature-Pairs, Templates und Event-Settings
  2. Heartbeat Utility hinzugefügt
  3. ⏰ Debug-Logging für Plan-Wechsel-Flow (Frontend + Backend)
  4. ⏰ frappe.log_error mit echtem Traceback statt statischem String
  5. ⏰ Obsolete Ticket-Audit-Dokumente und Planning-Dokumente entfernt
  6. ⏰ Unused section_tickets.html Fallback-Template entfernt
  7. Event Registration DocType JSON Indentation reformatiert
  8. Abhängigkeiten aktualisiert
  9. Subscription Plan-Konfiguration aktualisiert
  10. One-Off Script zum Archivieren von MVP-Events vor Feedback-Scheduler
  11. AB/BA Deadlock bei Guest-Token Metadata-Writes behoben
  12. Auth Cache Validation + Session-Timeout Redirect-Loop behoben
  13. Distributed Locks und Cache-Invalidation Race-Fix für Feature-Overrides
  14. Branding Image MIME-Validation gelockert (akzeptiert valide Magic-Bytes)
  15. ⏰ Checkin Realtime Access-Control und Staff-Messaging Bugs behoben
  16. Nav-Labels: Nicht mehr durch _() übersetzen
  17. i18n Wrap für group_members Error-Messages

Generiert am 2026-03-28 aus 279 Commits auf feature/event-hub-umbau seit Merge-Base 276a1890 (2026-03-09).