Changelog
Aktuelle Änderungen und Updates
Warum hier alles steht
Hier liegt jede Änderung an der Plattform offen, seit dem ersten Commit — das schließt Sicherheitskorrekturen ausdrücklich ein, auch solche, die einen Fehler benennen, den es vorher gab. Das ist eine bewusste Entscheidung, keine Unachtsamkeit: ein Anbieter, der nur die Erfolge zeigt, ist für einen Kunden nicht prüfbar. Wer wissen will, wie schnell und wie gründlich hier gearbeitet wird, kann es hier nachlesen statt es glauben zu müssen. Ein gefundener und behobener Fehler ist ein geschlossenes Risiko; das offene Risiko wäre der Fehler, den niemand sucht.
September 2026
Knopf der Anmeldung-Auslieferung umbricht statt zu ueberlaufen
Julian Müller
vor 2 Tagen
bb5f86a
Rake-Tasks prozessweit einmal laden statt je Aufruf
Julian Müller
vor 3 Tagen
712e1ab
Demo-Teardown nutzt DemoOrganisationDestroyer statt Handarbeit
Julian Müller
vor 3 Tagen
6369869
Policy-Bestandszahlen 167.7-06 nachgezogen
Julian Müller
vor 3 Tagen
c45ce53
Buendel-Test raeumt Zahlungsposten blattzuerst ab
Julian Müller
vor 3 Tagen
3863ccd
Zahlungstest nutzt Tagessatz statt totem c_teilnehmerbeitrag
Julian Müller
vor 3 Tagen
bf091bf
Vereinsvorgabe -- fehlende Attributbeschriftungen (Befund 2)
Julian Müller
vor 3 Tagen
a83924b
getippter_wert an die CRM-Schale verschoben (Befund 1)
Julian Müller
vor 3 Tagen
fefb7c5
crm_akte_kinder_test.rb -- Erwartung an 'Kind hinzufuegen' nachgezogen
Julian Müller
vor 3 Tagen
256b06d
SMTP-Ausgangsfehler saeubern -- Passwort nie ins Protokoll
Julian Müller
vor 3 Tagen
bd88643
Passwort nie ins Protokoll -- auch beim Postfachabruf im Takt
Julian Müller
vor 3 Tagen
3719887
posteingang-Archivhinweis behauptet keine falsche Abhilfe mehr
Julian Müller
vor 3 Tagen
80a0ae5
Abbruchmeldung unterscheidet Vorlage und selbst geschriebenen Text
Julian Müller
vor 3 Tagen
0da62d5
Vorladesperre an allen Verweisen auf protokollierende GET-Aktionen
Julian Müller
vor 3 Tagen
647a7f5
Umschalten der Inhaltsart ueber data-inhaltsart statt id -- Tailwind las den Unterstrich als Leerzeichen
Julian Müller
vor 3 Tagen
f52880a
Policy-Erhebung liest only:/except: auch in Symbolform
Julian Müller
vor 3 Tagen
4f30db2
Posteingang sperrt das Vorladen an Verweisen auf protokollierende Nachricht
Julian Müller
vor 3 Tagen
0af25bd
Anonymisierungs-Sperrmeldung neutral, ohne Paragraf 8a (Auflage E1)
Julian Müller
vor 3 Tagen
19a8ea6
Aufbewahrungs-Hilfetext ohne behauptete HGB/AO-Mindestfrist, Verzeichnis nennt Voreinstellung (B2c)
Julian Müller
vor 3 Tagen
553884b
Anrede Betreueroberflaeche -- Restposten nach 260917-anr
Julian Müller
vor 3 Tagen
6b15059
Loeschsperren Zahlungsvorgang und Stornogebuehr auf ihr-Form
Julian Müller
vor 3 Tagen
9f9fab0
Anrede Onboarding, Untertitel und Unterschrifts-Hinweise auf du-/ihr-Form
Julian Müller
vor 3 Tagen
305e903
Anrede Devise-Mails und -Seiten fuer Betreuer auf du-Form
Julian Müller
vor 3 Tagen
76d751c
Anrede Inhaber- und Testmail auf du-Form
Julian Müller
vor 3 Tagen
95f8460
Anrede Rechnungs- und Verzugsmails an den Verein auf ihr-Form
Julian Müller
vor 3 Tagen
40665f9
Loeschweg Betreuerkonto -- Namen in Benachrichtigungen, Notizen bewacht
Julian Müller
vor 3 Tagen
02b37bd
Hinweis not_owner nennt das Auszahlungskonto
Julian Müller
vor 3 Tagen
44208a3
DataRetentionCleanupJob laeuft an einer kaputten Zeile vorbei
Julian Müller
vor 3 Tagen
76dfe68
Storno-Platzhalter -- Protokoll-Kommentar und Produktionsform mit protocol https
Julian Müller
vor 3 Tagen
8094c06
Organisationskonto heisst Auszahlungskonto; toter Helper get_app_description entfernt
Julian Müller
vor 3 Tagen
bb84060
abraeumen! loescht die Notizen ueber die Tabelle statt die Kennung zu nullen
Julian Müller
vor 3 Tagen
ecc9382
CSV-Import nennt die Stornogebuehr als dritten Grund der Loeschsperre
Julian Müller
vor 3 Tagen
562b3de
mail()-Aufruf getrennt je Mailer-Aktion statt in gemeinsamer Helfer-Methode
Julian Müller
vor 3 Tagen
c416e0a
Backup-Pruefung ohne Rake, Alarm auch bei unerwartetem Fehler (quick-260917-dmq)
Julian Müller
vor 3 Tagen
0f2bb05
Shebang der bin-Stubs von ruby.exe auf ruby -- CI-Jobs scan_ruby/lint/test brachen mit exit 127 ab
Julian Müller
vor 3 Tagen
e97d4a0
Demo-Grenztests raeumen die Standardvorlagen vor der Organisation ab
Julian Müller
vor 3 Tagen
983aff8
Schnittstelle und CSV-Einfuhr nennen den Sperrgrund aus einer Quelle, Zerstoerer mit allen Arten belegt
Julian Müller
vor 3 Tagen
f2fb3dc
Loeschsperre kennt den Rechtstext-Nachweis und nennt ihren Grund
Julian Müller
vor 3 Tagen
0f4f8e9
Mailer-Adressen in Produktion mit protocol https
Julian Müller
vor 3 Tagen
496d063
keine Vorladung von app/services in abrechnungen.rake -- Tasks booten ohne Dienstkonstanten
Julian Müller
vor 3 Tagen
9e97e89
Drossel zaehlt je Freizeit, Kopfzeilen-Ableitung liest wie der Router
Julian Müller
vor 3 Tagen
b15c809
keine Pruefung im Klassenrumpf -- bin/rails-Tasks booten wieder
Julian Müller
vor 3 Tagen
05aff8b
Selbststornierungs-Benachrichtigung ohne Namen des Kindes (B-1)
Julian Müller
vor 5 Tagen
10e7f98
Anzeige-Sichtbarkeit -- Probewert aus der Werteliste des Modells statt Probezeichenkette
Julian Müller
vor 5 Tagen
bfbbf3c
nicht existierende Rescue-Konstante in der Demo-Drossel entfernt
Julian Müller
vor 5 Tagen
9dd6744
Schreibwege an der Vereinigung -- WP-Reparatur nur ueber die Mailadresse (CR-06), beide Kennungen (WR-03), Suche (IN-01)
Julian Müller
vor 5 Tagen
bc43fea
nicht existierende Rescue-Konstante MessageVerifier::InvalidMessage entfernt
Julian Müller
vor 5 Tagen
7cbe05d
spaete Mollie-Meldung stellt eine beglichene Forderung nicht mehr auf abgelaufen zurueck
Julian Müller
vor 5 Tagen
76f18e3
Freizeit mit Teilnehmern oder Belegen wird beim Loeschen abgewiesen statt mit 500 abzubrechen
Julian Müller
vor 5 Tagen
a67e18a
gelber Hinweiskasten im Ausgeh-Formular als Meldung ausgezeichnet (Befund H)
Julian Müller
vor 5 Tagen
eea769f
Ausgeh-Domainmeldungen als ganze Saetze mit Platzhaltern (Befund E, Satzschluessel)
Julian Müller
vor 5 Tagen
f5c0b16
beglichene Forderung fuehrt auf keine Bezahlseite und keinen Ueberweisungshinweis mehr
Julian Müller
vor 5 Tagen
ab44c88
Zahlflaeche legt nach Ablauf des Idempotenzfensters keine unauffindbare zweite Mollie-Zahlung mehr an
Julian Müller
vor 5 Tagen
909de2f
Absende-Knopf im Ausgeh-Formular zeigt Symbol und sprechende Beschriftung (Befund E)
Julian Müller
vor 5 Tagen
33bb6dc
Ausgang mit leeren Datumsfeldern -- 422 mit Meldung statt 500 (Befund K)
Julian Müller
vor 5 Tagen
750a090
nur eine angefangene Anmeldung ist ueber die Strecke beschreibbar
Julian Müller
vor 5 Tagen
7072c3d
Ausnahmen-Fall des Hartkodiert-Waechters prueft wieder etwas
Julian Müller
vor 5 Tagen
d932365
der Bezugszwang der Kontaktperson greift jetzt auch im Speicher
Julian Müller
vor 5 Tagen
917e7f6
der Satz, der das Lager benennt, faellt auf cream durch AA -- 4,47:1 gemessen
Julian Müller
vor 5 Tagen
7a5cf40
ein Anfrageparameter in unerwarteter Form reisst zwei oeffentliche Seiten nicht mehr um
Julian Müller
vor 5 Tagen
5019e01
vier Textstellen erreichen AA -- die Freiwilligkeitsangabe zuerst
Julian Müller
vor 5 Tagen
b6e9548
Leerpruefung des Nextcloud-Passworts wirkte nie
Julian Müller
vor 5 Tagen
ec485e2
der Betrag ist nach der SEPA-Auslieferung nicht mehr aenderbar
Julian Müller
vor 5 Tagen
18aa766
die zwei Uebersetzungen, die e6df4758 vergessen hat
Julian Müller
vor 5 Tagen
fcbb255
der Abbruch klemmt nicht mehr nach einem Fehlschlag -- und fuenf Stellen werden lesbar
Julian Müller
vor 5 Tagen
da9671e
keine erfundenen Zahlen ueber Geld, keine Maske gegen den eigenen Vorbelegungswert
Julian Müller
vor 5 Tagen
f82a7a7
ein Anfrageparameter in unerwarteter Form reisst die Anmeldeseite nicht mehr um
Julian Müller
vor 5 Tagen
7dd0414
eine Abrechnung bei der Bank laesst sich nicht mehr loeschen
Julian Müller
vor 5 Tagen
e6df475
zwei stille Defekte -- der zerlegte Geldbetrag und das geloeschte Passwort
Julian Müller
vor 5 Tagen
a765d86
eine Sperrstunde kurz nach Mitternacht sperrte das Kind den ganzen Tag aus
Julian Müller
vor 5 Tagen
bb178fd
der Artikel-9-Riegel haengt am Zustand, nicht an der Anfrage
Julian Müller
vor 5 Tagen
623136f
ein Notfallkontakt entsteht am WERT der Zeile, nicht an der Zuordnung
Julian Müller
vor 5 Tagen
005e5c2
das JSON-Feld `url` zeigte auf dieselbe tote Adresse
Julian Müller
vor 6 Tagen
1524898
nach dem Aendern landete der Betreuer auf einer 404 -- und sieben Zusicherungen bewachten das gruen
Julian Müller
vor 6 Tagen
cddd183
der geroutete Anlegeweg war tot und ist entfernt, nicht nachgebaut
Julian Müller
vor 6 Tagen
2acf88e
jeder JSON-Erfolg war eine 500 -- und der Bestandteil dahinter auch
Julian Müller
vor 6 Tagen
d68b356
die Sperrstunde galt in UTC -- Kinder kamen bis zu zwei Stunden zu spaet durch
Julian Müller
vor 6 Tagen
9a63f24
jeder Validierungsfehler endete mit 500 statt mit der Fehlerliste
Julian Müller
vor 6 Tagen
8344e46
welche Freizeit ein Betreuer sieht, haengt nicht mehr an der Serveruhr
Julian Müller
vor 6 Tagen
3ebb222
"laeuft gerade" haengt nicht mehr am Kalendertag
Julian Müller
vor 6 Tagen
84e0729
zweite Fundstelle derselben Klasse -- geleerte Aufbewahrungsdauer riss die Fehlerseite um
Julian Müller
vor 6 Tagen
de6468f
der Einstellungs-Import uebertrug die Betreuer nicht und meldete Erfolg
Julian Müller
vor 6 Tagen
6977629
die Fehlerseite riss sich selbst um -- aus 422 wurde 500
Julian Müller
vor 6 Tagen
a9cbfa5
E-7 -- die Fortschrittsleiste des Camp-Buchs hatte eine Anfangsbreite, die nie ankam
Julian Müller
vor 6 Tagen
a358073
E-2 -- der Fokus vor dem connect() macht die Auswahlliste nicht mehr taub
Julian Müller
vor 6 Tagen
28bfa82
das Kollisionsfenster kommt jetzt als Turbo-Stream -- die Umgehung ist raus
Julian Müller
vor 6 Tagen
a1b7f74
ein PATCH ohne txt_betreuer_user stuerzt nicht mehr ab -- und leert die Mannschaft nicht
Julian Müller
vor 6 Tagen
1fd9997
die Fehlerform des fehlenden Normalisierers ist hier LAUT, nicht still -- Kommentar und Probe nachgezogen
Julian Müller
vor 6 Tagen
42edbbf
die zwei Mollie-Protokollaktionen bekommen ihre Beschriftung
Julian Müller
vor 6 Tagen
5818c62
Einwilligung ohne Betreuerkonto wirft die Seite nicht mehr um
Julian Müller
vor 6 Tagen
d4d1573
das Foto-Kollisionsfenster erscheint wieder -- es hat NIE erschienen
Julian Müller
vor 6 Tagen
938f427
jedes Kind einer Geschwisterzeile bekommt seine Notfallkontakte
Julian Müller
vor 6 Tagen
adf4c12
das CRM ist unter archivierter Freizeit wieder bedienbar
Julian Müller
vor 6 Tagen
cbdc061
Attributbeschriftungen der zwei Rechtstext-Modelle nachgetragen
Julian Müller
vor 6 Tagen
7722d8d
Kinder rotieren ueber die Dienstarten, nicht nur ueber die Tage
Julian Müller
vor 10 Tagen
8192f48
Loeschen eines Teilnehmers mit Zahlungsvorgang laeuft nicht mehr in einen 500er
Julian Müller
vor 10 Tagen
15b36f0
Kuechendienst-Pools haengen an der Freizeit, nicht an der ganzen Tabelle
Julian Müller
vor 10 Tagen
534ed7c
die SMTP-Route stand im falschen do...end -- der Mail-Reiter zerriss
Julian Müller
vor 10 Tagen
7feaeb6
Zeitraum-Parameter werden Datumswerte, bevor ein Bereich daraus wird
Julian Müller
vor 10 Tagen
050bb79
fuenf Zusicherungen sagten "solange de.yml die einzige Datei ist" -- sie ist es nicht mehr
Julian Müller
vor 10 Tagen
b8d9f1b
Nenner der Fairness-Quote misst die Freizeit, nicht das Fenster
Julian Müller
vor 10 Tagen
e35458c
der Leerwert traegt die Funktion der Gaesteliste auch am Controller nicht mehr aus
Julian Müller
vor 10 Tagen
7177154
der Fund muss lesbar sein -- assert statt assert_empty
Julian Müller
vor 10 Tagen
00c22f4
de.yml war syntaktisch kaputt -- Produktion bootete nicht mehr
Julian Müller
vor 10 Tagen
26eb9f1
die neue Freizeit-Fixture darf den Anmeldeschalter nicht tragen
Julian Müller
vor 10 Tagen
631e762
die Meldung fuehrt jetzt auf die Person, nicht auf eine Liste
Julian Müller
vor 10 Tagen
c1bb221
die Gaesteliste gehoert zu der Freizeit, die in der Adresse steht
Julian Müller
vor 11 Tagen
876098f
fehlender de.yml-Eintrag fuer TeilnehmerFeldWert#teilnehmer_id
Julian Müller
vor 11 Tagen
81c53ea
class_name an den vier Assoziationen mit deutschem Plural
Julian Müller
vor 11 Tagen
6fdfadf
der Nenner zaehlt nur Einheiten, die es wirklich gibt
Julian Müller
vor 12 Tagen
bf2fa3d
eingestuftes Eigenfeld schweigt nach dem Widerruf -- die Luecke aus Plan 10 ist zu
Julian Müller
vor 12 Tagen
ef7506b
die fuenf Beugungsregeln aus 167.2-01 zurueckgeholt
Julian Müller
vor 12 Tagen
d49e5b0
der SEPA-Warnhinweis nennt den berechneten Grund statt pauschal die IBAN
Julian Müller
vor 12 Tagen
e5c533a
SEPA-Auslassbericht fragt erst nach dem Betrag, dann nach der IBAN
Julian Müller
vor 12 Tagen
e18cc75
IBAN-Waechter zeigt wieder auf das echte Feld -- und merkt kuenftig selbst, wenn es umzieht
Julian Müller
vor 12 Tagen
7e3a6eb
B-02 am zweiten Fundort -- und zwei weitere Abstuerze im selben JSON-Zweig
Julian Müller
vor 12 Tagen
13f79a1
165-04-Wirkweg-Tests neutralisieren die fixture-eigenen Ausschlussregeln der Freizeit
Julian Müller
vor 12 Tagen
ef7d97b
genau eine Phase-Zeile -- state.advance-plan lief in ambiguous_position_phase
Julian Müller
vor 12 Tagen
cf7daa8
Gewichtungsfaktor bekommt eine Untergrenze -- Plan 03 hatte sie nicht gebaut
Julian Müller
vor 12 Tagen
4887bfc
das Pruefprotokoll nennt beim Kontaktexport Kontaktpersonen
Julian Müller
vor 12 Tagen
b2c384a
der Kontakte-Verweis folgt seinem eigenen Tor
Julian Müller
vor 12 Tagen
369ce17
vier DSGVO-Eintragungen fuer den Juleica-Nachweis (D-05)
Julian Müller
vor 12 Tagen
a2dc171
Tor vor dem Kontaktpersonen-CSV -- T-160-06-N2 geschlossen
Julian Müller
vor 12 Tagen
8ba99fd
die Gaesteliste verliert ihre Funktion beim Bearbeiten nicht mehr
Julian Müller
vor 12 Tagen
273992c
die Ausgangssperre steht wieder im Formular -- und ueberlebt das Speichern
Julian Müller
vor 12 Tagen
eb7138c
der Abschlusszustand kommt ueber seinen NAMEN, nicht ueber seine Position
Julian Müller
vor 13 Tagen
c44f4b0
die Null-Pruefung gehoert an die Quelle, nicht an die Person
Julian Müller
vor 13 Tagen
24027b5
Zaehler und Auszahlung lesen dieselbe Auswahl -- Grund statt Pauschalsatz
Julian Müller
vor 13 Tagen
866483b
fremde ungesicherte Aenderungen aus dem letzten Commit entfernt
Julian Müller
vor 14 Tagen
782bded
Testregex passt zur tatsaechlichen deutschen Fehlermeldung
Julian Müller
vor 14 Tagen
89f520f
Kapazitaet ist Gleichzeitigkeit, nicht gleicher Start
Julian Müller
vor 14 Tagen
1072a6e
l_gruppen_wert begrenzen -- ein Tippfehler nahm bisher die ganze App mit
Julian Müller
vor 14 Tagen
d1675de
"Teilnehmer ist zurueck" springt nicht mehr an den Seitenanfang
Julian Müller
vor 14 Tagen
908fa5b
je Adresse genau ein Cache-Eintrag -- vor jedem put alle Varianten entfernen
Julian Müller
vor 15 Tagen
48b235f
die Notbremse bekommt einen Rueckfall -- Netz zuerst, dann der Cache
Julian Müller
vor 16 Tagen
afa61ba
install und activate angemeldet -- der Worker uebernimmt jetzt
Julian Müller
vor 16 Tagen
c76304d
Restverteilbarkeits-Regel schliesst den cap-3-Bestandsdefekt
Julian Müller
vor 17 Tagen
d16306c
SEC-02/03/04 -- sqlite3 2.9.6, json 2.21.2, mail 2.9.1; bundler-audit auf null
Julian Müller
vor 17 Tagen
c0edf9f
SEC-01 -- Rails-Familie auf 8.1.3.1, CVE-2026-66066 geschlossen
Julian Müller
vor 17 Tagen
d530120
das leere Ziel heisst "", nicht "empty" -- Bedingung 6 war immer falsch
Julian Müller
vor 17 Tagen
f1e94d1
Remember-Cookie auf SameSite=Lax, Loeschpfad entschaerft
Julian Müller
vor 18 Tagen
d2e53c4
WP-Auslieferungs-Waechter bekommt einen an den Zip-Hash gebundenen Uebersprung
Julian Müller
vor 18 Tagen
d1beeec
AVV-Stand-Fall am Datum verankert statt am Kalendermonat
Julian Müller
vor 18 Tagen
8c5f76f
veraltete 8 Jahre im FZ-Wiedervorlagetest auf 4 gezogen
Julian Müller
vor 18 Tagen
9cad6fe
Monitoring-Ingest-Test haengt nicht mehr am master.key der Maschine
Julian Müller
vor 18 Tagen
28793ac
DemoBoundaryGuardTest fuhr seit cc8c4313 eine tote Adresse
Julian Müller
vor 18 Tagen
143b4f1
DemoOrganisationCleanupJobTest stellt seine Vorlage selbst her
Julian Müller
vor 18 Tagen
cb1c81b
sechs neue Zeilen aus dem zweiten Gatterlauf
Julian Müller
vor 18 Tagen
ab4d6e9
das Hochladefeld verlor seinen Namen -- zehn von elf Aufrufstellen betroffen
Julian Müller
vor 18 Tagen
bcc89a7
die Demo-Vorlage setzte str_function gar nicht -- zweite Quelle desselben Bruchs
Julian Müller
vor 18 Tagen
5d40ec1
drei Wellenschaeden aus dem zentralen Gatter
Julian Müller
vor 18 Tagen
5fbde00
drei weitere Doppelungen aufgeloest -- vom Waechter gefunden
Julian Müller
vor 19 Tagen
fa89bf7
vier Rueckfalltexte entfernen -- und eine selbst erzeugte Doppelung
Julian Müller
vor 19 Tagen
8508a92
neun Meldungen aus den Admin-Controllern, und ein interner Parametername
Julian Müller
vor 19 Tagen
8d8e0d6
der BOM-Hinweis wandert an die Fehlermeldung
Julian Müller
vor 19 Tagen
aa7939c
eine verwaiste sechste Rueckweg-Aufschrift entfernen
Julian Müller
vor 19 Tagen
10dcd2f
die letzten zwei Aufschriften auf die Knopfregel ziehen
Julian Müller
vor 19 Tagen
c2e2966
sechs Anzeigen im Admin-Panel, an den Bannern und auf der Startseite (J-8-r..x)
Julian Müller
vor 19 Tagen
cca0c76
die Ausgeh-Orte bekommen eine Beschriftung, der Jugendschutz-Hinweis eine Warnfarbe
Julian Müller
vor 19 Tagen
a12bc59
sieben Uebersichten meinen dieselbe Menge wie das, was darunter steht (J-8-k..q)
Julian Müller
vor 19 Tagen
1d590d2
den doppelten Elternschluessel bearbeiten_seite aufloesen
Julian Müller
vor 19 Tagen
e8006c7
sechs Anzeigen im Camp-Betrieb sagen, was gilt (J-8-e..j)
Julian Müller
vor 19 Tagen
42c6913
die Freizeit hat keinen Namen -- die Rueckfrage nennt den Zeitraum
Julian Müller
vor 19 Tagen
5d44d1e
die Bearbeiten- und die Neuanlage-Seite sagen die Wahrheit
Julian Müller
vor 19 Tagen
1837daf
fuenf Schluessel der Phase 159.2 wiederherstellen -- eigener Fehler
Julian Müller
vor 19 Tagen
7a3fe89
ueberfaellig wird ein echter Zustand, das Vokabular einen Eigentuemer (J-8-a..d, N-1)
Julian Müller
vor 19 Tagen
200b20e
Schreib-Bedienelemente der Detailseite haengen an ihrer Regel, nicht an einem Ersatzmerkmal
Julian Müller
vor 19 Tagen
3f4c894
eine Wache statt eines fuenften Einzelfixes (J-9)
Julian Müller
vor 19 Tagen
8e39c5c
eine Zeltnummer statt zwei, kein N/A, und ein Raster, das bei 375px zusammenbleibt
Julian Müller
vor 19 Tagen
d4c77a7
die Statusseite misst, was sie behauptet (J-4, CP-3, CP-3b)
Julian Müller
vor 19 Tagen
69154e9
die Fundstellen von W6 -- toter Helfer ersetzt, unentscheidbarer eingeordnet
Julian Müller
vor 19 Tagen
9f2f1ee
der Fotos-Reiter fuehrt nicht mehr auf eine leere Seite
Julian Müller
vor 19 Tagen
90fc3ae
das AVV-Banner stellt dieselbe Frage wie die Sperre (J-6, J-8-v)
Julian Müller
vor 19 Tagen
84fc515
dem Primaerknopf im Dunkelmodus seine Flaeche zurueckgeben
Julian Müller
vor 19 Tagen
22cae52
Fortschritt und Abschluss eines Krisenvorgangs sagen dasselbe (J-2)
Julian Müller
vor 19 Tagen
a4a0a04
die beiden Ausleihe-Reiter zerlegen den Bestand vollstaendig
Julian Müller
vor 19 Tagen
02c59d6
Fahrdienst-Abrechnung -- die Regel sagt, was die Knoepfe zeigen
Julian Müller
vor 19 Tagen
3a3bd1c
dritte Fundstelle derselben Druck-Behauptung nachgezogen
Julian Müller
vor 19 Tagen
865332d
der Standardreiter des Fahrdienstes ist fuer einen Admin selbst ein Filter
Julian Müller
vor 19 Tagen
c21ec23
Betreuer-Abrechnung -- toter Verweis weg, Wizard fuer seine Zielgruppe geoeffnet, stille Umleitung beseitigt
Julian Müller
vor 19 Tagen
b4e7c27
die drei Abrechnungs-Uebersichten sagen die Wahrheit -- und der Jahresfilter laeuft ueberhaupt
Julian Müller
vor 19 Tagen
b27a2b7
kein Brotkrumen-Verweis mehr auf die gesperrte Abrechnungsliste
Julian Müller
vor 19 Tagen
eef3d9f
Plattform-Abrechnungen -- Knoepfe und Seite an die Rolle gebunden
Julian Müller
vor 19 Tagen
b202e26
Audit-Protokoll und Aktivitaeten unterscheiden Filter von Nichtexistenz
Julian Müller
vor 19 Tagen
d0cb48c
die Zeltnummer nur mit Namen -- das Anonymitaetsversprechen wird wahr (J-5)
Julian Müller
vor 19 Tagen
6212b17
An-/Abreise -- "Diese Woche" meint eine Woche, der Leerzustand nennt den Filter
Julian Müller
vor 19 Tagen
f27fca0
Wiki-Bereiche -- der Papierkorb verschwindet, wo er nicht traegt
Julian Müller
vor 19 Tagen
343938a
Krisenmodul gibt keine Filterkombination mehr als Entwarnung aus
Julian Müller
vor 19 Tagen
1fcf06f
Ereignisse -- der Loeschen-Knopf sagt die Wahrheit
Julian Müller
vor 19 Tagen
9d99404
Suchfelder durchsuchen, was sie versprechen -- und Prozentzeichen sind Zeichen
Julian Müller
vor 19 Tagen
5e8634e
Ereignistyp -- der Owner sieht nur noch, was er auch darf
Julian Müller
vor 19 Tagen
fabb100
Widerruf und Einloesung sind zwei Zustaende, zwei Spalten (J-7)
Julian Müller
vor 19 Tagen
5ca7c3a
der aktive Reiter ueberlebt das Suchen -- Fahrdienst und Ausleihe
Julian Müller
vor 19 Tagen
6601d05
Freigabe ueber Geld nur noch mit echtem Freigeber (J-1)
Julian Müller
vor 19 Tagen
cb21b46
Zeitraumfilter sucht die Ueberschneidung, Altersauswahl rechnet in SQL
Julian Müller
vor 19 Tagen
fcf5f19
Seitengroessen-Waehler rendert nicht mehr ohne Anlass
Julian Müller
vor 19 Tagen
7a4b99b
Zeltfilter als Kontrollkaestchen statt Mehrfach-Auswahlfeld; Phase 160.17 angelegt
Julian Müller
vor 20 Tagen
6ee65ad
August 2026
wurzelrelative Avatar-Adresse und Initialen hinter dem Bild
Julian Müller
vor 20 Tagen
f9a995e
B-1/B-3 -- der Raum kommt weiter, auch wenn jemand nie antwortet
Julian Müller
vor 20 Tagen
6104481
Beitritt steht dauerhaft im Modul, nicht nur bei wartender Runde
Julian Müller
vor 20 Tagen
6cae5a0
Ratefoto im Broadcast wurzelrelativ adressieren (N-1)
Julian Müller
vor 20 Tagen
7cb5f68
Statuszeile passt wieder in eine Zeile -- 430 auf 83 Zeichen
Julian Müller
vor 20 Tagen
323ec3f
doppelte Positionen werden validiert statt an der Datenbank zu scheitern
Julian Müller
vor 20 Tagen
406a713
Anlege-Knoepfe der Vorlagenliste fragen die Regel statt der Rolle, plus Nachweis als normaler Betreuer
Julian Müller
vor 20 Tagen
eda9d8c
ohne Kategorie landet der normale Betreuer nicht mehr in der Sackgasse
Julian Müller
vor 20 Tagen
c87a0f2
Checklisten-Vorlagen darf jedes Mitglied der eigenen Organisation anlegen
Julian Müller
vor 20 Tagen
6997f8e
Begruendung am Export-Verweis auf das Gemessene korrigiert
Julian Müller
vor 20 Tagen
4acfe82
Blaetterleiste fuehrt den Filter mit, Leerzustand luegt nicht mehr
Julian Müller
vor 20 Tagen
190c074
Schreibwege des Kursblocks brechen aus dem kuenftigen Rahmen aus
Julian Müller
vor 21 Tagen
4b9070c
E-02..E-04 -- drei Schreibaktionen bekommen eigene Regeln
Julian Müller
vor 21 Tagen
ca6e487
E-01 -- tag_speichern bekommt eine eigene Schreibregel
Julian Müller
vor 21 Tagen
4923bce
Teilnehmerliste haelt den Turbo-Rahmen auch ohne Treffer
Julian Müller
vor 21 Tagen
793ebd5
Benachrichtigungsmenue auf schmalen Geraeten vollstaendig im Bild
Julian Müller
vor 21 Tagen
40825f0
Waechter zaehlt Wegwerf-Instanz aus authorize! nicht mehr als Erzeuger
Julian Müller
vor 21 Tagen
b07976a
Betreuer-Karte meldet zurueck, doppelte Rahmen-Kennung der Teilnehmerliste aufgeloest (B-12, B-20)
Julian Müller
vor 21 Tagen
092314a
Ticket-Uebersicht und Fahrdienst-Abrechnung brechen aus dem Rahmen aus (B-09..B-11, B-21)
Julian Müller
vor 21 Tagen
396fd9d
Rahmenausbruch fuer Ausgehvorgang, Ausleihvorgang, Gaesteliste (B-13..B-19)
Julian Müller
vor 21 Tagen
4f6765b
Ereignis-Uebersicht und Nachtwachen-Karte brechen aus dem Rahmen aus (B-05..B-08)
Julian Müller
vor 21 Tagen
f84ec58
An-/Abreise-Uebersicht bricht aus dem Listen-Rahmen aus (B-01..B-04)
Julian Müller
vor 21 Tagen
737f001
Ausgeh-Orte bei mehreren Teilnehmern richtig serialisieren
Julian Müller
vor 21 Tagen
faeafc1
C-02..C-05 Klassenabsturz der uebrigen Anlegen-Wege schliessen
Julian Müller
vor 21 Tagen
b12238d
C-01 AnAbreiseVorgang create? Klassenabsturz fuer Nicht-Admins schliessen
Julian Müller
vor 21 Tagen
7c18088
WikiArtikelPolicy restore? Alias auf update? binden
Julian Müller
vor 21 Tagen
3613ac4
Dienstplan-PDF bildet die abgeloeste Druckansicht 1:1 ab
Julian Müller
vor 21 Tagen
cf89556
'Teilnehmer jetzt zurueck' wirkt wieder -- zwei Ursachen
Julian Müller
vor 21 Tagen
093f17b
Seiten-Chrome nicht mehr mitdrucken
Julian Müller
vor 21 Tagen
af967be
Tagesdruck druckt wieder nur den gewaehlten Tag
Julian Müller
vor 21 Tagen
82e6505
Rolle und Kategorie serverseitig an die eigene Organisation binden
Julian Müller
vor 23 Tagen
323e3ca
Ausgang bleibt in der eigenen Freizeit, Teilnehmer stammt aus ihr (T-160-10-N3)
Julian Müller
vor 23 Tagen
3142f58
Fehlermeldung der Rollen-Regel nachgezogen -- de.yml war durch parallele Executoren belegt
Julian Müller
vor 23 Tagen
cc5c281
fremde Station wird nicht mehr Mitglied eines eigenen Rotationslaufs (T-160-10-N4)
Julian Müller
vor 23 Tagen
efad988
fremde Rolle kann nicht mehr an eine eigene Aktivitaet-Vorlage (T-160-07-N1)
Julian Müller
vor 23 Tagen
dd6f42e
Test-Runner des WP-Plugins hebeln den ABSPATH-Riegel nicht mehr aus
Julian Müller
vor 23 Tagen
9ff36e0
Freizeit-Auswahlfeld der Abrechnung auf die eigene Organisation gescopt (T-160-05-N3)
Julian Müller
vor 23 Tagen
d9a7d35
Verzugssperre laesst sich nicht mehr durch Terminverschiebung abwenden (T-160-05-N2)
Julian Müller
vor 23 Tagen
67bc7af
Klartextfelder des Beschwerdemoduls aus den Parameter-Logs nehmen (T-97-51)
Julian Müller
vor 23 Tagen
be146dc
Tor vor beide CSV-Erzeugungspfade der Teilnehmerliste (T-143-13)
Julian Müller
vor 23 Tagen
73f72d5
Camp-Buch-Anstoss unterscheidet die Demo-Sitzung (T-85-24)
Julian Müller
vor 23 Tagen
8b16c75
T-98.4-03 -- der Tausch-Pfad prueft die Stationszugehoerigkeit
Julian Müller
vor 23 Tagen
33373b5
Kurs- und Teilnehmerlisten-CSV auf eine Positivliste stellen (T-143-13)
Julian Müller
vor 23 Tagen
3c0361e
T-116-05 -- der Aendern-Zweig protokolliert das wirksame Uebergehen
Julian Müller
vor 23 Tagen
1550d19
zweite Eintrittspunkte messen -- #new gescopt, T-160-05-N2 belegt
Julian Müller
vor 23 Tagen
4e5b3c8
Rechnungsbetrag ist eine Serveraussage -- Massenzuweisung raus, Berechnung ohne Ausweichklausel
Julian Müller
vor 23 Tagen
59090ff
T-76-A1 -- Nicht-Gefunden-Zweig raeumt auf und unterscheidet die zwei Faelle
Julian Müller
vor 23 Tagen
c652e7b
Selbstfreischaltungspfad mark_as_bezahlt restlos entfernen
Julian Müller
vor 23 Tagen
4e836b7
T-139.1-A1 -- Organisationsgrenze der Krisen-Zugriffsgewaehrung am Modell
Julian Müller
vor 23 Tagen
f44c9cf
Rettungszweig des Org-Vorabchecks eng fassen -- Tippfehler fliegen wieder auf
Julian Müller
vor 23 Tagen
b341726
Geburtstags-Widget zeigt nur Teilnehmer, die an dem Tag auch da sind
Julian Müller
vor 23 Tagen
4b6a508
T-160-02-N1 schliessen -- Cross-Tenant-WRITE im Nachtwachen-Protokoll
Julian Müller
vor 23 Tagen
7c40d80
T-124-05/T-73-AC-02 -- destroy? der drei uebrigen Sweep-Auslassungen auf die Freizeit-Grenze
Julian Müller
vor 23 Tagen
23d716c
close T-109-A1/A2/A3/A4 -- Gaesteliste cross-tenant IDOR
Julian Müller
vor 23 Tagen
b6aef73
ungueltige Eintragsart in #52 korrigiert
Julian Müller
vor 24 Tagen
7d89c0d
ApplicationComponent#icon bekommt den File.basename-Pfadschutz (D-14)
Julian Müller
vor 24 Tagen
719a583
deutsche Absende-Aufschriften und helpers-Rueckfallebene
Julian Müller
vor 24 Tagen
583fff0
Bearbeiten springt auf den Reiter, von dem man kommt
Julian Müller
vor 24 Tagen
1830a3b
Knopfleiste der Teilnehmer-Uebersicht mobil auf volle Breite bringen
Julian Müller
vor 24 Tagen
96f1f08
Aktionsleiste der Teilnehmer-Uebersicht im mobilen Layout vereinheitlichen
Julian Müller
vor 24 Tagen
91d4d4f
Hintergrundklick schliesst das Fenster wieder
Julian Müller
vor 24 Tagen
b95416c
WR-01 Loeschknopf-Gate der Gefahrenzone, WR-02 Wortgrenze in faehrt_bus?
Julian Müller
vor 24 Tagen
c231083
Bearbeiten-Pfad der Anwesenheitskontrolle repariert (F-A3, F-A2, F-A4)
Julian Müller
vor 25 Tagen
2b6ed39
Kontrastpaarungen der Abhakliste auf die gemessenen Werte gezogen
Julian Müller
vor 25 Tagen
d84231c
verbliebene gitleaks-Attrappen entschaerft, Nullbeweis beider Schichten
Julian Müller
vor 25 Tagen
cf4d1df
Messharnisch fuer gitleaks-Publikationsbaum und toten devise-Schluessel entfernt
Julian Müller
vor 25 Tagen
0de98e7
txt_teilnehmers_nicht_anw am Anreisetag GREEN -- wer fehlte, wird jetzt festgehalten
Julian Müller
vor 25 Tagen
08ffc22
Heartbeat gegen CSRF-Token-Rotation immunisieren
Julian Müller
vor 26 Tagen
fba0860
Admin-Erfassung -- Zahlungsart wird gewaehlt, nicht vorbelegt
Julian Müller
vor 28 Tagen
261478e
Rechnung nur mit Zahlungslink versenden -- Automatik-/Batch-Pfad
Julian Müller
vor 28 Tagen
e0cf3c7
Rechnung nur mit Zahlungslink versenden -- interaktiver Pfad
Julian Müller
vor 28 Tagen
891a3ca
Ueberweisungs-Zusage aus der Rechnungs-Mail zurueckbauen
Julian Müller
vor 28 Tagen
2116606
Platzhalter-Bankverbindung im Rechnungs-PDF entfernen
Julian Müller
vor 28 Tagen
4f3eadf
Migration 20260821120000 und Seed-Zweitschrift zuruecknehmen
Julian Müller
vor 28 Tagen
2b2f7ea
Begriffsfehler in der DSFA-Admin-Quelle korrigiert (E-134-5)
Julian Müller
vor 30 Tagen
06b64d0
down-Reaktivierung explizit auf str_traegertyp scopen
Julian Müller
vor 30 Tagen
b816c4f
Controller-Kopie -- internes Entwicklungs-Label aus default_toms_snapshot entfernt, Nachweis am persistierten JSON
Julian Müller
vor 30 Tagen
0705481
SSOT-Kopie -- internes Entwicklungs-Label und Dienstname aus § 8 TOM-Anlage entfernt
Julian Müller
vor 30 Tagen
580e2fd
Satzabbruch der Biometrie-Datenartenliste behoben und v2-Veroeffentlichungskette end-to-end bewiesen
Julian Müller
vor 30 Tagen
cdfc64a
unbekannte Pfade liefern 404 statt 500
Julian Müller
vor etwa einem Monat
a031bd2
Weg zum Feld-Pool immer anbieten, nicht nur bei Fehlbedarf
Julian Müller
vor etwa einem Monat
2d359ce
leerer str_type druckte die ganze I18n-Typen-Map
Julian Müller
vor etwa einem Monat
0a2c85d
Schalter in die Freizeit-Verwaltung, Pool zuletzt, nur is_admin
Julian Müller
vor etwa einem Monat
8e0fc56
LEITFAEDEN WR-05 -- "Bayerischen" -> "Badischen Sportjugend"
Julian Müller
vor etwa einem Monat
a2cb4d1
LEITFAEDEN WR-04 -- der Wiederholungsschutz prueft die Schritte mit
Julian Müller
vor etwa einem Monat
63c9794
LEITFAEDEN WR-02 -- der Leerstellen-Hinweis beschreibt die ausgelieferte Klammerform
Julian Müller
vor etwa einem Monat
b7128eb
LEITFAEDEN WR-01 -- eine abgeloeste Vorlagenfassung ist Archiv, kein Angebot
Julian Müller
vor etwa einem Monat
d346bf6
BOEGEN WR-05 -- txt_amendment_reason wird verschluesselt
Julian Müller
vor etwa einem Monat
361222e
BOEGEN WR-04 Nachzug -- die externe Ansicht testet die staerkere Zusage
Julian Müller
vor etwa einem Monat
a6abdf0
BOEGEN WR-07 -- "nichts uebernehmen" ueberlebt den Fehler-Rerender
Julian Müller
vor etwa einem Monat
f9c5ace
BOEGEN WR-06 / LEITFAEDEN WR-03 -- die Eskalations-Auswahl nutzt die Rangfolge aus D-04
Julian Müller
vor etwa einem Monat
f737398
BOEGEN WR-04 -- doppelte Eskalation erzeugt keinen zweiten Krisenvorgang mehr
Julian Müller
vor etwa einem Monat
dfa1901
BOEGEN WR-03 -- show/export verraten die Existenz fremder Boegen nicht mehr
Julian Müller
vor etwa einem Monat
6ecc80a
BOEGEN WR-02 -- die Eskalation verlangt jetzt tatsaechlich "bestaetigt sich"
Julian Müller
vor etwa einem Monat
9b026a5
BOEGEN WR-01 -- export? faellt nicht mehr unter die beiden Pre-Check-Gates
Julian Müller
vor etwa einem Monat
ef7fba5
LEITFAEDEN CR-01 -- der Rollback loescht nur noch die eigene Fassung 1
Julian Müller
vor etwa einem Monat
2ef23eb
LEITFAEDEN CR-02 -- L-3 bekommt den fehlenden Reanimationszweig
Julian Müller
vor etwa einem Monat
5f931de
BOEGEN CR-01 -- der Fehler-Rerender verliert die geschwaerzte Fassung nicht mehr
Julian Müller
vor etwa einem Monat
7a6b89e
T-152-39-Assertion misst die Anwendung statt der Ladereihenfolge
Julian Müller
vor etwa einem Monat
f4be486
i18n-tasks-Scanner sieht keine Phantom-Keys mehr
Julian Müller
vor etwa einem Monat
a652264
WR-01 push fan-out no longer aborts remaining recipients on one failure
Julian Müller
vor etwa einem Monat
73c7896
WR-02 pin an inline MetaEntry AR class in the DSE migration, mirroring its sibling
Julian Müller
vor etwa einem Monat
4e3d27c
WR-01 tag_speichern silently swallowed a per-slot save failure behind the blanket success flash
Julian Müller
vor etwa einem Monat
92dd4e0
CR-01 tag_speichern crashed instead of redirecting on a Freizeit without a configured date range
Julian Müller
vor etwa einem Monat
6ce4233
WR-03 fix GET .../edit for AnwesenheitskontrollVorgang (was 500, made Richtung select unreachable)
Julian Müller
vor etwa einem Monat
5359c52
WR-02 gate str_richtung assignment on category, not just value
Julian Müller
vor etwa einem Monat
ee99322
WR-01 rescue DB-level failures per-row in BuslisteAnAbreiseCreator
Julian Müller
vor etwa einem Monat
b128514
CR-02 stop AnwesenheitskontrollVorgangPolicy#create? from crashing for every non-admin Betreuer
Julian Müller
vor etwa einem Monat
325e83e
CR-01 stop StrandwachenvorgangsController#update from silently wiping the Wachliste on a rejected save
Julian Müller
vor etwa einem Monat
2a513d4
bind AnwesenheitskontrollVorgang destroy? to freizeit, scope record lookup
Julian Müller
vor etwa einem Monat
ecc7e30
WR-07 — turbo_stream-Erfolgspfade lieferten 204 statt Markup
Julian Müller
vor etwa einem Monat
24a84ee
IN-01 extract geparster_tag into a shared ParsesCampTag concern
Julian Müller
vor etwa einem Monat
90d3453
WR-06 guard SchwarzesBrettPolicy against a nil user
Julian Müller
vor etwa einem Monat
1f2fb13
WR-05 reorder entries in turbo_stream response after wichtig toggle
Julian Müller
vor etwa einem Monat
43b0615
WR-04 show validation errors on #update non-Turbo failure
Julian Müller
vor etwa einem Monat
8f60efb
WR-03 keep day-navigation visible on #create validation failure
Julian Müller
vor etwa einem Monat
618bcb8
WR-02 race-safe implicit SchwarzesBrett creation in #create
Julian Müller
vor etwa einem Monat
96170c2
WR-01 race-safe SchwarzesBrettBesuch.markiere_gesehen!
Julian Müller
vor etwa einem Monat
f4eaa6f
Wochenlaenge validieren und #duration gegen Endlosschleife haerten (Gap 3, D-01)
Julian Müller
vor etwa einem Monat
940895f
Ausgeh-Ort-Dropdowns auf die eigene Freizeit scopen (Gap 2)
Julian Müller
vor etwa einem Monat
b9f7951
teilnehmer_id aus Strong-Params-Allowlist entfernen (Gap 1 Body-Param-IDOR)
Julian Müller
vor etwa einem Monat
8ca62cf
derive Rack::Attack auth throttle paths from route helpers
Julian Müller
vor etwa einem Monat
40e333b
update stale org-one fixture-count precondition in organisations_controller_test
Julian Müller
vor etwa einem Monat
6cbf3b7
Fixture-Datumskollision beheben, die dashboard_controller_test rot machte
Julian Müller
vor etwa einem Monat
e78b5d7
Anwesenheits-Selbsterfassungs-Modal von has_module? entkoppelt (D-23)
Julian Müller
vor etwa einem Monat
873f4f2
FZ-Prüfung-Kachel bekommt Lupe statt generischem Schild
Julian Müller
vor etwa 2 Monaten
d306197
Juli 2026
CR-01 reject non-numeric jcp_gewicht/jcp_groesse instead of fabricating 0
Julian Müller
vor etwa 2 Monaten
b1cb17c
bump websocket-driver/loofah/rails-html-sanitizer to close 6 bundler-audit advisories
Julian Müller
vor etwa 2 Monaten
a22b5d0
TDD close WR-02 - str_lastname gate + nil-safe FZ download filename
Julian Müller
vor etwa 2 Monaten
b68e3e0
scope Fuehrungszeugnis-Unterschrift org lookup to caller's org (WR-01)
Julian Müller
vor etwa 2 Monaten
5f5b7c0
GREEN — close CR-01, extend anonymize_for_deletion! to erase Phase 135.2 PII
Julian Müller
vor etwa 2 Monaten
35209b4
legacy-sichere setFieldValue()-Wertzuweisung + change-Listener
Julian Müller
vor 2 Monaten
dbc96f1
str_own_tent als select im WP-Repair-Mode (SSOT-Helper)
Julian Müller
vor 2 Monaten
1d593c5
add missing activerecord.attributes.teilnehmer.str_own_tent de.yml label
Julian Müller
vor 2 Monaten
8dba8f3
move (M)/leaf badges to card top-left, absolute (no extra height)
Julian Müller
vor 2 Monaten
42c063b
vegan badge uses leaf icon file, not V letter (avoid Verlaengerung-V collision)
Julian Müller
vor 2 Monaten
bd252dd
add kontakt_eltern Funktion mapping option (D-06e)
Julian Müller
vor 2 Monaten
5af6783
filter medical/veg on boolean columns + add (M)/(V) badges
Julian Müller
vor 2 Monaten
dece314
extend repair-backfill whitelist to health/medical fields
Julian Müller
vor 2 Monaten
a6b9c2a
Fließtext-Kongruenz — 17 code-verifizierte Modul-Korrekturen (Gap-Closure)
Julian Müller
vor 2 Monaten
255477c
pinned BlogPost.published scope + DST-aware 7-day live cadence check
Julian Müller
vor 2 Monaten
90c12dd
Zeitwerk-ignore lib/blog_137_2_content (digit-inflection mismatch)
Julian Müller
vor 2 Monaten
7057961
add BetreuerUsers::UnlocksController and wire devise route
Julian Müller
vor 2 Monaten
550888d
scope compact-toggle active-state selector (assets IN-03)
Julian Müller
vor 2 Monaten
14aa53e
guard truthy headers before headers.to_hash (middleware IN-02)
Julian Müller
vor 2 Monaten
4a8168d
fold cc/bcc into DemoMailInterceptor demo-drop check (mailers IN-03)
Julian Müller
vor 2 Monaten
55abfab
guard blank recipient email in NewsletterMailer actions (mailers IN-05)
Julian Müller
vor 2 Monaten
db8ea2a
move NewsletterMailer confirmation subject to I18n (mailers IN-02)
Julian Müller
vor 2 Monaten
2df1e8e
sanitise icon() name via File.basename (helpers IN-03)
Julian Müller
vor 2 Monaten
f342d06
guard get_app_description against blank app_name (helpers IN-02)
Julian Müller
vor 2 Monaten
d8a900c
confirm-modal body text uses text-subtle for WCAG-AA contrast
Julian Müller
vor 2 Monaten
5737a8c
extract hardcoded German copy in shared/_footer + _hero (IN-01)
Julian Müller
vor 2 Monaten
54d03c4
extract hardcoded German copy in gaestelistes/index.html.erb (IN-01)
Julian Müller
vor 2 Monaten
cb1ec39
extract hardcoded German copy in freizeits/_form.html.erb (IN-01)
Julian Müller
vor 2 Monaten
fd1b0fe
align devise recovery views with dark-* theme tokens (IN-12 part 2)
Julian Müller
vor 2 Monaten
d5bc45a
move inline header Ruby helpers to NavigationHelper (IN-12 part 1)
Julian Müller
vor 2 Monaten
d0deed6
whitelist ausgeh_vorgangs/index title, stop reflecting the param (IN-11)
Julian Müller
vor 2 Monaten
afc2429
replace raw glyphs with the icon() helper (IN-10)
Julian Müller
vor 2 Monaten
1cdd902
fix malformed Tailwind utilities / bogus attribute (IN-09)
Julian Müller
vor 2 Monaten
c15ddaf
allow rel in meta_entries sanitize allow-list (IN-08)
Julian Müller
vor 2 Monaten
17ec73f
sanitize meta_entries editor seed with the wiki allow-list (IN-07)
Julian Müller
vor 2 Monaten
81e3d58
delete dead scaffold views + rename live .erb-missing-.html files (IN-06)
Julian Müller
vor 2 Monaten
2212e11
move DB queries out of shared/_open_payments_notice + organisations/_blacklist (IN-05)
Julian Müller
vor 2 Monaten
7b5c4c7
remove [PLATZHALTER] tokens from live compliance docs (IN-04)
Julian Müller
vor 2 Monaten
f5bfc65
dedupe dead fade-in <style> blocks into the Tailwind layer (IN-03)
Julian Müller
vor 2 Monaten
efb2485
replace cosmetic inline style= with CSP-safe alternatives (IN-02)
Julian Müller
vor 2 Monaten
19c8b4a
validate l_rounds_count against ROUNDS_OPTIONS constant (IN-16)
Julian Müller
vor 2 Monaten
be75fba
remove dead condition from NewsletterAbonnent.active scope (IN-15)
Julian Müller
vor 2 Monaten
80ed40c
guard Notification#metadata against malformed JSON (IN-14)
Julian Müller
vor 2 Monaten
97e0638
map BlogPost badge classes to theme tokens (IN-13)
Julian Müller
vor 2 Monaten
984cbbf
whitelist FuehrungszeugnisPruefung str_status (IN-12)
Julian Müller
vor 2 Monaten
9bcdf17
make determine_content_type truly private + close file handle (IN-11)
Julian Müller
vor 2 Monaten
3053c1d
scope teilnehmers lookup to parent Freizeit (IN-10)
Julian Müller
vor 2 Monaten
2d09fbc
rename to_csv param to match BetreuerAbrechnung columns (IN-09)
Julian Müller
vor 2 Monaten
07e31e9
restrict incident-note plaintext from ransackable search (IN-08)
Julian Müller
vor 2 Monaten
e7c5e4d
guard Einstellung singleton against concurrent duplicate rows (IN-06)
Julian Müller
vor 2 Monaten
dd32efa
guard da_am? against malformed date strings (IN-05)
Julian Müller
vor 2 Monaten
f5ef67a
anonymize_for_deletion! set a valid bcrypt password (IN-03)
Julian Müller
vor 2 Monaten
ce6063b
surface AnAbreiseVorgang save failures instead of ignoring them
Julian Müller
vor 2 Monaten
1fe5cc8
honor GenderHeuristik's never-raises contract on missing data file
Julian Müller
vor 2 Monaten
a6d649a
defer ActiveStorage purges to post-commit in DemoOrganisationDestroyer
Julian Müller
vor 2 Monaten
37ee15c
add nil-safe navigation to Stripe customer email lookup
Julian Müller
vor 2 Monaten
4dd19b5
remove redundant string interpolation in qualification helper lookup
Julian Müller
vor 2 Monaten
0b52655
discard jobs on DeserializationError in ApplicationJob base class
Julian Müller
vor 2 Monaten
51d8bc9
clear pending debounce timer in ransack_filter disconnect
Julian Müller
vor 2 Monaten
5bab401
remove scroll listener leak in log_viewer_controller disconnect
Julian Müller
vor 2 Monaten
36f3740
replace hardcoded hex theming in quill_controller with CSS custom properties
Julian Müller
vor 2 Monaten
04a8d03
rename Cyrillic-homoglyph identifier in import settings controller
Julian Müller
vor 2 Monaten
556a402
policies IN-07 delete dead MassenAusgehVorgangPolicy
Julian Müller
vor 2 Monaten
7b43eb1
policies IN-06 delete dead KrisenVorgangZugriffPolicy
Julian Müller
vor 2 Monaten
9fdcb74
policies IN-04 BetreuerAnwesenheitPolicy#skip? gate with user.present?
Julian Müller
vor 2 Monaten
de1f3c3
policies IN-03 DokumentPolicy#create? gate with user.present?
Julian Müller
vor 2 Monaten
6729a6f
IN-17 apply brute-force lockout filters to beschwerde_id branch
Julian Müller
vor 2 Monaten
671ae33
IN-13 uniform Newsletter#create flash (anti-enumeration)
Julian Müller
vor 2 Monaten
8096c69
IN-07 nil-safe initials in set_betreuer_user_data
Julian Müller
vor 2 Monaten
9e3a16e
IN-06 drop inline-style CSP relaxation on newsletter preview
Julian Müller
vor 2 Monaten
9e9aac2
IN-05 add data-turbo=false + download to AVV re-download link
Julian Müller
vor 2 Monaten
1f5fce1
controllers IN-04 + policies IN-02 rename mote? -> promote?
Julian Müller
vor 2 Monaten
c71b922
IN-02 api_keys nil-org guard (was a 500)
Julian Müller
vor 2 Monaten
9dd3dcd
IN-01 wire admin/passwords + admin/unlocks routes, add Turnstile guard
Julian Müller
vor 2 Monaten
5787e23
IN-16 replace render inline: with render turbo_stream:
Julian Müller
vor 2 Monaten
6079f12
IN-14 fix dead double-assign + %k datetime format
Julian Müller
vor 2 Monaten
3f619f5
IN-12 remove StrandwachenEreignisse#new .inspect log
Julian Müller
vor 2 Monaten
5f4707d
IN-11 dedupe strong-params key, remove typo'd column
Julian Müller
vor 2 Monaten
219650f
IN-15 remove schedule route + orphaned i18n key
Julian Müller
vor 2 Monaten
ea91548
IN-10 remove dead methods, move misplaced public helper
Julian Müller
vor 2 Monaten
d08e72b
IN-09 remove debug logging artifacts (some dumped PII)
Julian Müller
vor 2 Monaten
dbf164f
IN-08 remove dead ausgeh_vorgang_orts edit/update/destroy
Julian Müller
vor 2 Monaten
69deeb3
IN-03 delete dead commented Devise scaffolding in admin/*
Julian Müller
vor 2 Monaten
6e0ea68
widen Stripe::Checkout::Session.create mock to 2 args in demo guard test
Julian Müller
vor 2 Monaten
4e72022
add de.yml label for Ticket#str_nummer (I18n guard)
Julian Müller
vor 2 Monaten
b477d88
models WR-16 - Ticket number generation race hardening
Julian Müller
vor 2 Monaten
feff07e
models WR-13 - Abrechnung invoice-number race + lexical-sort bug
Julian Müller
vor 2 Monaten
11703a5
models WR-10 - KrisenVorgangSchrittAmendment version-numbering race
Julian Müller
vor 2 Monaten
99f54b8
models WR-17 - BlogPost card_gradient CSP-safe via Tailwind classes
Julian Müller
vor 2 Monaten
031216b
models WR-15 - BlogPost slug no longer self-collides on title edits
Julian Müller
vor 2 Monaten
eaf2247
models WR-14 - WikiArtikel version snapshots attribute to the acting editor
Julian Müller
vor 2 Monaten
292d541
models WR-12 - remove minor PII log line from Ausgeh validation
Julian Müller
vor 2 Monaten
a56b773
models WR-11 - AusgehVorgang back-until date correct on month boundaries
Julian Müller
vor 2 Monaten
8c84887
models WR-09 - remove encrypted crisis PII from ransackable_attributes
Julian Müller
vor 2 Monaten
67395a5
models WR-08 - block destroy instead of nullify on required belongs_to
Julian Müller
vor 2 Monaten
e14300f
models WR-07 - block destroy of in-use HandlungsleitfadenSchritt
Julian Müller
vor 2 Monaten
e6535f3
models WR-06 - Freizeit#betreuer_users nil-safe on txt_betreuer_user
Julian Müller
vor 2 Monaten
e78e655
models WR-03 - InviteToken#consume! atomic (TOCTOU race)
Julian Müller
vor 2 Monaten
9018e24
models WR-02 - Rolle.seed_defaults_for idempotent on str_system_key
Julian Müller
vor 2 Monaten
9dc8025
models WR-01 - Teilnehmer#set_initials nil-safe on str_vorname
Julian Müller
vor 2 Monaten
cf11f28
channels WR-02 - validate log_name against AVAILABLE_LOGS before stream_for
Julian Müller
vor 2 Monaten
f4dff73
channels WR-01 - LogChannel halts on rejection
Julian Müller
vor 2 Monaten
f0df1e7
lib WR-03 - deep-freeze VereinDigitalisierenContent::HANDBUCH_PAGES
Julian Müller
vor 2 Monaten
70ac9ca
lib WR-02 - fail loud when the AVV §7(3) Beschwerderecht anchor is missing
Julian Müller
vor 2 Monaten
a0c73d8
lib WR-01 - German month on AvvVorlageContent nil stand_monat fallback
Julian Müller
vor 2 Monaten
de7f859
mailers WR-04 - BackupCheckMailer no hardcoded ops-alarm fallback
Julian Müller
vor 2 Monaten
cc33190
mailers WR-02 - blank-recipient guards on BetreuerUserMailer
Julian Müller
vor 2 Monaten
9959a0c
mailers WR-03 - i18n Subject for AbrechnungMailer#rechnung_versendet
Julian Müller
vor 2 Monaten
3711277
mailers WR-01 - move Stripe checkout side effect out of AbrechnungMailer body
Julian Müller
vor 2 Monaten
910784b
serialize Beschwerde escalation check-then-create with with_lock (WR-08)
Julian Müller
vor 2 Monaten
48a29e5
nil-tolerant public pricing formatter (helpers WR-01)
Julian Müller
vor 2 Monaten
8b061a0
reword WR-07 comment to avoid re-matching the removed code pattern
Julian Müller
vor 2 Monaten
90f3587
reword WR-06 comment to avoid re-matching the fixed-away key text
Julian Müller
vor 2 Monaten
e3a45d1
clone_vorgaenge threads the authoritative fz_id_map (WR-07)
Julian Müller
vor 2 Monaten
a2ca6d0
mass-creator min-Teilnehmer message uses a real i18n key (WR-06)
Julian Müller
vor 2 Monaten
52c5b6c
GitHub pagination raises on mid-stream failure instead of silently truncating (WR-05)
Julian Müller
vor 2 Monaten
faa0a87
log-viewer pagination no longer wraps to the whole file (WR-04)
Julian Müller
vor 2 Monaten
e36042a
wrap invoice create!+versenden! in one transaction (WR-03)
Julian Müller
vor 2 Monaten
d54aca0
round Stripe unit_amount instead of truncating cents (WR-02)
Julian Müller
vor 2 Monaten
b75e3fc
stable idempotency_key on Stripe Checkout Session create (WR-01)
Julian Müller
vor 2 Monaten
7e074ca
<44px touch targets in Betreuer field UIs → icon() + ≥44px (WR-15)
Julian Müller
vor 2 Monaten
8c1bab6
remove dead scaffold stubs + live placeholder joke copy (WR-14)
Julian Müller
vor 2 Monaten
f822b58
localize reachable English scaffold pages (WR-13)
Julian Müller
vor 2 Monaten
82d3231
Blog JSON-LD raw(to_json) allowed a </script> breakout (WR-01)
Julian Müller
vor 2 Monaten
96af618
invoice email prints dt_from – dt_to range, not dt_from twice (WR-08)
Julian Müller
vor 2 Monaten
938f9b1
wrong/human-text i18n keys → correct namespaced de.yml keys (WR-12)
Julian Müller
vor 2 Monaten
bb3cab7
drop tamperable hidden AR-object + dead c_amount_due param (WR-16)
Julian Müller
vor 2 Monaten
ab414bc
Küchendienst edit posts participants under wrong param key (WR-07)
Julian Müller
vor 2 Monaten
5631ddf
9 binary-download links bypass Turbo, drop target=_blank (WR-04)
Julian Müller
vor 2 Monaten
40638aa
AusgehVorgang status badge classes are static Tailwind strings (WR-11)
Julian Müller
vor 2 Monaten
b81e45b
Wiki mobile Bereich-filter → Stimulus jump-navigate (WR-10)
Julian Müller
vor 2 Monaten
71341ff
Fahrdienst wizard donation toggle → Stimulus, drop orphan divs (WR-09)
Julian Müller
vor 2 Monaten
243f884
CSP-safe rendering for progress-bar/indent/color inline styles (WR-03)
Julian Müller
vor 2 Monaten
dc47c70
WR-11 KrisenVorgangSchritt relation_scope filters by access grant
Julian Müller
vor 2 Monaten
8fb7113
WR-08 AbrechnungPolicy#mark_as_bezahlt? matches its own comment
Julian Müller
vor 2 Monaten
761e684
WR-05 alias_rule wizard_* actions in both Abrechnung wizard policies
Julian Müller
vor 2 Monaten
6b4877b
WR-03 remove PII log line from BetreuerUserPolicy#toggle_release?
Julian Müller
vor 2 Monaten
57a5f35
WR-13 WikiBereichPolicy#destroy? requires admin gate (Pitfall 4)
Julian Müller
vor 2 Monaten
ff08ce0
WR-12 TeilnehmerPolicy#in_ids clean-denies on nil current_freizeit
Julian Müller
vor 2 Monaten
cc13513
WR-10 destroy? gates on is_admin? not raw admin? (8 policies)
Julian Müller
vor 2 Monaten
79dc751
WR-04 nil-safe admin rules in 7 policies (clean deny, not 500)
Julian Müller
vor 2 Monaten
ccac037
nil-coalesce whitelist-with-fallback ternaries before .to_sym (WR-02)
Julian Müller
vor 2 Monaten
2053191
nil-coalesce palette resolvers before .to_sym (WR-01)
Julian Müller
vor 2 Monaten
ca33b41
match only the exact letter_opener mount, not sibling prefixes (WR-02)
Julian Müller
vor 2 Monaten
13bbbcd
guard letter_opener CSP strip to development env only (WR-01)
Julian Müller
vor 2 Monaten
567a992
bound the upload-status poll with an attempt cap (jobs WR-05)
Julian Müller
vor 2 Monaten
87c55f4
use Berlin Date.current instead of process-local Date.today (jobs WR-08)
Julian Müller
vor 2 Monaten
824aeeb
gap-detection now spans the midnight day boundary (jobs WR-06)
Julian Müller
vor 2 Monaten
c077efb
Küchendienst job takes freizeit_id + transactional regen (jobs WR-04)
Julian Müller
vor 2 Monaten
6d887ed
newsletter re-run no longer re-mails the whole edition (jobs WR-03)
Julian Müller
vor 2 Monaten
3e117b3
lock the sync Stripe 'paid' branch (jobs WR-02)
Julian Müller
vor 2 Monaten
996ef10
atomic parent+child Beschwerde anonymization (jobs WR-01)
Julian Müller
vor 2 Monaten
7305144
disconnect dark-mode MutationObserver on teardown (js WR-04)
Julian Müller
vor 2 Monaten
afe5e15
route fetched rules HTML through Quill API, not innerHTML (js WR-03)
Julian Müller
vor 2 Monaten
d0dc3ca
delete bespoke toast widget, route through global toast (js WR-02)
Julian Müller
vor 2 Monaten
b7425e1
replace native alert with global toast (js WR-01)
Julian Müller
vor 2 Monaten
1dbc106
WR-27 authorize + param-guard TicketsController#kommentar
Julian Müller
vor 2 Monaten
a599701
WR-26 remove full-params log line in Küchendienst#create
Julian Müller
vor 2 Monaten
3edb7ac
WR-25 use raw kurs param for the query, not sanitize()
Julian Müller
vor 2 Monaten
612125f
WR-16 move changelog str_type backfill off the public GET
Julian Müller
vor 2 Monaten
78e49ac
WR-10 route invoice audits through AuditLog.log!
Julian Müller
vor 2 Monaten
c7db4ea
WR-04 remove per-request debug logging in application_controller
Julian Müller
vor 2 Monaten
43276cd
WR-14 drop betreuer_user_id/proofing_betreuer_user_id from mass-assignment
Julian Müller
vor 2 Monaten
a59673d
WR-15 wizard_new save! dead-else -> non-bang save
Julian Müller
vor 2 Monaten
5f01139
WR-08 route organisations#destroy through leaf-first cascade
Julian Müller
vor 2 Monaten
59ec3f0
WR-06 wrap organisation ownership transfer in one transaction
Julian Müller
vor 2 Monaten
ca6581e
WR-05 betreuer_users#mote self-target guard + save!
Julian Müller
vor 2 Monaten
a516cc1
WR-30 coerce scalar preferences param before #dig
Julian Müller
vor 2 Monaten
2712040
WR-23 guard nil erstellt_von in genehmigen/ablehnen
Julian Müller
vor 2 Monaten
bcab53e
WR-21 guard blank dt_from on freizeits#destroy
Julian Müller
vor 2 Monaten
dcbdad0
WR-22 harden freizeit CSV massen-import controller path
Julian Müller
vor 2 Monaten
1b32ceb
WR-17 birthday widget crash on Feb-29 in a non-leap year
Julian Müller
vor 2 Monaten
a8ca48a
WR-09 guard Date.parse in admin invoice/AVV flows
Julian Müller
vor 2 Monaten
1c52942
WR-02/WR-03 API teilnehmers#create 422 + atomic writes
Julian Müller
vor 2 Monaten
8b4477b
WR-01 nil-safe str_initials on incomplete registration
Julian Müller
vor 2 Monaten
c30bf9e
WR-02 remove unscoped Teilnehmer.find from kuechendienst helper
Julian Müller
vor 2 Monaten
e3769f8
WR-07 AktivitaetsVorgangPolicy dead bare-is_admin destroy?
Julian Müller
vor 2 Monaten
a420cf6
WR-06 FreizeitPolicy massen_import family bare is_admin
Julian Müller
vor 2 Monaten
d05f51a
WR-01 TicketPolicy admin branch not org-scoped
Julian Müller
vor 2 Monaten
d2ca34f
WR-24 Gaesteliste share-token co-guest enumeration
Julian Müller
vor 2 Monaten
8b18157
WR-19 Dokumentenordner create/update trusts foreign parent_id
Julian Müller
vor 2 Monaten
e6a9e30
WR-18 Dokument create trusts foreign freizeit_id
Julian Müller
vor 2 Monaten
8337a72
CR-08 Bemerkung cross-org note deletion
Julian Müller
vor 2 Monaten
90dd9dd
WR-28 Teilnehmer create/new missing authorize + freizeit_id
Julian Müller
vor 2 Monaten
60174e5
CR-03 Ereignis partial + controller scoped to current_freizeit
Julian Müller
vor 2 Monaten
650b931
CR-09 Quiz-Session cross-tenant creation/join
Julian Müller
vor 2 Monaten
ef79fa6
CR-08 Rueckmeldung cross-tenant read/export/delete
Julian Müller
vor 2 Monaten
3269281
WR-02 admin delete/reject buttons re-arm dead rails-ujs confirm
Julian Müller
vor 2 Monaten
d3d8c5f
CR-08 ticket-card delete uses real button_to + turbo_confirm
Julian Müller
vor 2 Monaten
fe1dc2d
CR-07 handlungsleitfaden edit form uses singular update route
Julian Müller
vor 2 Monaten
a13161c
CR-06 nachtwachen show back link + delete button target real URLs
Julian Müller
vor 2 Monaten
fbd446a
CR-01 rollen add-user form drops stray scalar hidden field
Julian Müller
vor 2 Monaten
6f3d669
CR-13 invite token only consumed on successful registration
Julian Müller
vor 2 Monaten
f343749
CR-12 BetreuerAbrechnung wizard_patch redirect carries record id
Julian Müller
vor 2 Monaten
44d31e2
CR-11 AusgehVorgang update redirect carries record id
Julian Müller
vor 2 Monaten
d36cbf2
controllers WR-29 — StrandwachenEreignisse paket-module gate + scoped parent
Julian Müller
vor 2 Monaten
fd48600
controllers CR-07 — MassenAusgehVorgang bulk create scopes ids, stops flash leak
Julian Müller
vor 2 Monaten
02e5d4c
controllers CR-06 — MassenAnAbreiseVorgang bulk create scopes ids to current_freizeit
Julian Müller
vor 2 Monaten
0504fe1
policies CR-05 — AnAbreiseVorgangPolicy#destroy? drops is_admin? bypass
Julian Müller
vor 2 Monaten
d734cfd
controllers WR-13 — Ausleihvorgang#update cannot re-assign freizeit_id/betreuer_user_id
Julian Müller
vor 2 Monaten
3fdb010
views CR-04 — anwesenheitskontrolle partial renders only current_freizeit participants
Julian Müller
vor 2 Monaten
a69281d
controllers WR-11 + WR-12 — AnwesenheitskontrollVorgang#create scoped find + nil-safe arrays
Julian Müller
vor 2 Monaten
d20509f
controllers CR-10 — TeilnehmersController authorizes + org-scopes the child
Julian Müller
vor 2 Monaten
8e6b0f2
views CR-05 — ausgeh_vorgang_orts place dropdown scoped to current_freizeit
Julian Müller
vor 2 Monaten
98f2f31
controllers CR-05 — AusgehVorgangOrtsController scopes parent Teilnehmer + authorizes instance
Julian Müller
vor 2 Monaten
f159901
policies CR-07 + WR-09 — AusgehVorgangOrtPolicy drops bypass, class-safe predicate
Julian Müller
vor 2 Monaten
4a621ac
policies CR-06 — AusgehVorgangPolicy drops is_admin? cross-org bypass
Julian Müller
vor 2 Monaten
90b1bb7
AVV signature block Organisation name folded to Windows-1252
Julian Müller
vor 2 Monaten
2cb6536
fold participant/guardian free text to Windows-1252 in standalone PDF generators
Julian Müller
vor 2 Monaten
4b53de3
reimplement CampBookPdf#safe_text as a real Windows-1252 fold
Julian Müller
vor 2 Monaten
332b1cd
leaderboard PDF renders negative Korrektur without raising
Julian Müller
vor 2 Monaten
a6d7ef6
GenerateCampBookJob skips work for demo organisations
Julian Müller
vor 2 Monaten
0acf638
route TicketKommentar attachments through the demo shard service
Julian Müller
vor 2 Monaten
64abed3
AvvVertrag recomputes signed hash chain at sign time, not create time
Julian Müller
vor 2 Monaten
31a4ad8
AvvVertrag legal tamper-evidence columns immutable after signing
Julian Müller
vor 2 Monaten
954ac52
neutralize CSV formula/DDE injection in Gaesteliste/BetreuerAbrechnung exports
Julian Müller
vor 2 Monaten
a810fa1
fix attribute-injection XSS in log-widget replace path (javascript CR-02)
Julian Müller
vor 2 Monaten
ad4625a
remove innerHTML XSS sink in ausgeh-vorgang-info controller (javascript CR-01)
Julian Müller
vor 2 Monaten
0c655df
sanitize wiki-artikel editor seed against stored-XSS (views CR-02)
Julian Müller
vor 2 Monaten
68b2479
reach FaceMatchingService's poll safety timeout on persistent failure
Julian Müller
vor 2 Monaten
fdca111
bound set_code_to_org's uniqueness retry, stop the DoS spin
Julian Müller
vor 2 Monaten
89f2ea0
guard Dokumentenordner parent-cycle infinite loop
Julian Müller
vor 2 Monaten
12ee57d
guard WikiBereich parent-cycle infinite loop
Julian Müller
vor 2 Monaten
9b50606
terminate Freizeit#duration infinite loop for future-dated camps
Julian Müller
vor 2 Monaten
d84f1e9
BetreuerAbrechnung wizard no longer trusts client str_status (views WR-06)
Julian Müller
vor 2 Monaten
d790743
close Fahrdienst reimbursement self-approval bypass (controllers CR-01)
Julian Müller
vor 2 Monaten
7d6dbaa
GREEN - validate-then-transact roster CSV import (jobs CR-01)
Julian Müller
vor 2 Monaten
ceaf23d
controllers WR-07 — scoped find in RollenController#set_rolle + OrganisationsController#set_organisation
Julian Müller
vor 2 Monaten
19d6461
policies WR-02 — BetreuerUserRollePolicy#create?/#destroy? org-scope role assignment
Julian Müller
vor 2 Monaten
ef7fb6e
controllers CR-04 + policies CR-04 — create_from_freizeit halts + scopes target Freizeit
Julian Müller
vor 2 Monaten
016ab4f
controllers CR-03 — AbrechnungsController#create scopes freizeit, drops mass-assignable freizeit_id
Julian Müller
vor 2 Monaten
549dcba
policies CR-02/CR-03 — AbrechnungPolicy update?/destroy?/create_payment_link? org-gated
Julian Müller
vor 2 Monaten
d675eae
policies CR-01 — OrganisationPolicy#destroy? org-binds cross-tenant destruction
Julian Müller
vor 2 Monaten
0a5598e
order betreuer_anwesenheiten index by Betreuer full name
Julian Müller
vor 2 Monaten
9c420bd
rename reserved I18n key :format in teilnehmer_export detail
Julian Müller
vor 2 Monaten
246f1a5
update FreizeitArchiveTest for D-04 home-redirect
Julian Müller
vor 2 Monaten
9c5ad23
FZ-Prüfung-Übersicht nach Name sortieren, inaktive/gesperrte/nicht-freigegebene Nutzer ausblenden
Julian Müller
vor 2 Monaten
4c24c62
cap FZ-Wiedervorlagezeitraum bei 5 statt 10 Jahren
Julian Müller
vor 2 Monaten
93ee798
retrofit 3 RESEARCH-discovered KB-role sites to str_system_key
Julian Müller
vor 2 Monaten
0dd1a00
retrofit 3 CONTEXT-named KB-role sites to str_system_key
Julian Müller
vor 2 Monaten
4897ba0
no-store on Fuehrungszeugnis download so profile edits show immediately
Julian Müller
vor 2 Monaten
01de5a1
render real umlauts/ß in Bescheinigung PDF (drop needless transliteration)
Julian Müller
vor 2 Monaten
60125fb
Turbo-bypassed download link + header menu entry (GAP-1/GAP-4/GAP-5)
Julian Müller
vor 2 Monaten
bebfa65
signature_pad empty-canvas guard uses global toast, not native alert
Julian Müller
vor 2 Monaten
0ba7511
render_graph_cell emits class= instead of style= (CSP fix)
Julian Müller
vor 3 Monaten
3a52eed
preserve guest token in Gaesteliste create/update redirects
Julian Müller
vor 3 Monaten
662c55e
update notifications integration test for G2 grant-escalation
Julian Müller
vor 3 Monaten
d650e6a
drop 'Audit- und Verlauf-Eintrag' from escalation confirm modals (owner UAT)
Julian Müller
vor 3 Monaten
06aedc6
WR-02 guarantee warn-before-lock (gate lock on prior-run pre-warning)
Julian Müller
vor 3 Monaten
be3815c
F-14 hide read-denied KrisenVorgänge from index (owner decision)
Julian Müller
vor 3 Monaten
29dfca9
early-theme inline script uses real CSP nonce, not literal 'true'
Julian Müller
vor 3 Monaten
b79c5c3
honest KV timeline creator label + German relative-time plurals
Julian Müller
vor 3 Monaten
ddd0950
dedupe step-note form ids + raise sidebar touch targets on KV show (F-16, F-19)
Julian Müller
vor 3 Monaten
b8e372e
add client-side required to feedback category + password-reset email (F-18)
Julian Müller
vor 3 Monaten
01362c8
import_settings HTML nav returns 404 not raw 500 (F-22)
Julian Müller
vor 3 Monaten
a53cd48
remove orphan kuechendienst /new route + scaffold view (F-12)
Julian Müller
vor 3 Monaten
26bdd7d
terminal-fail demo clone job on missing template — no retry storm (F-10)
Julian Müller
vor 3 Monaten
0fcc15d
stop KrisenVorgang index leaking guideline category on locked cards (F-14)
Julian Müller
vor 3 Monaten
2fe79fc
decouple Betreuer per-page default from mutable Pagy global
Julian Müller
vor 3 Monaten
86ba94a
count NULL-released betreuer as Ausstehend
Julian Müller
vor 3 Monaten
27e479f
Betreuer-Rollen Scroll-to-Top via scroll-restore Stimulus
Julian Müller
vor 3 Monaten
c46348f
dev mailer port 3000 -> 4000; named demo-template-missing error
Julian Müller
vor 3 Monaten
79398e4
authorize freizeit-bound instance for ausleih collection actions
Julian Müller
vor 3 Monaten
1688d32
allow owner/freizeit-member to delete Vorgänge (F-120-04)
Julian Müller
vor 3 Monaten
0c6b398
repair an_abreise edit view malformed render (F-120-03)
Julian Müller
vor 3 Monaten
de52968
guard non-hash params[:q] before dig/ransack in index
Julian Müller
vor 3 Monaten
287230f
render verifizieren from verify_form (F-120-01)
Julian Müller
vor 3 Monaten
9d1deb0
repair per-page selector root cause + lock backend contract
Julian Müller
vor 3 Monaten
ab9446e
professionalise BOM import error text (D20)
Julian Müller
vor 3 Monaten
c580571
remove misleading skip-validation buttons + orphaned i18n key
Julian Müller
vor 3 Monaten
cb049a8
remove dead skip-validation branch from mass creators (always validate)
Julian Müller
vor 3 Monaten
16c5b3e
org-scope DokumentPolicy#destroy? admin branch (D40)
Julian Müller
vor 3 Monaten
c4c0a60
token-scope guest gaesteliste lookup + expiring token (D39/D41)
Julian Müller
vor 3 Monaten
c8fdaa6
org-scope notfallmappe/trigger_face_detection/import_settings (D38)
Julian Müller
vor 3 Monaten
833aab0
remove public admin self-registration surface (D37)
Julian Müller
vor 3 Monaten
8669323
entferne sichtbaren § 8a-Kinderschutz-Hinweis aus DSGVO-Auskunft-Export
Julian Müller
vor 3 Monaten
1badad4
remove misleading "kostenlos" from header nav CTAs
Julian Müller
vor 3 Monaten
55cce74
remove misleading "kostenlos" from hero + bottom-CTA
Julian Müller
vor 3 Monaten
391a2c1
tote passwort_min i18n-key entfernt + reset_password_token label ergaenzt
Julian Müller
vor 3 Monaten
9f8c38e
passwort-reset zeigt echtes minimum (12 statt 6)
Julian Müller
vor 3 Monaten
4ddbd1a
idempotent publish date + blog back-link test coverage (code review)
Julian Müller
vor 3 Monaten
c354228
Punkt-Auto-Insertion beim Tippen + 8-Ziffern-Toleranz im Parser
Julian Müller
vor 3 Monaten
b09ed4e
native Datepicker als transparenter Overlay statt sr-only (iOS-Tap-Fix)
Julian Müller
vor 3 Monaten
a63f17b
assert HTML-escaped titles in verein-digitalisieren index test (DI-1)
Julian Müller
vor 3 Monaten
e552692
un-nest upgrade panel from edit form (fixes missing confirm) + show surcharge in current price (UAT)
Julian Müller
vor 3 Monaten
91f948d
exclude marketing-only modules from the manage-modules panel (UAT)
Julian Müller
vor 3 Monaten
916c2dd
active-modules overview + confirmation gate on add_modul (UAT)
Julian Müller
vor 3 Monaten
5a68297
exclude enterprise from self-service upgrade (UAT)
Julian Müller
vor 3 Monaten
333de9e
update persisted-view tests for the upgrade panel (Phase 99 removed the paket lock)
Julian Müller
vor 3 Monaten
6116bd1
Juni 2026
clean default Rollen in demo_database_connection teardown
Julian Müller
vor 3 Monaten
c95d182
clean default Rollen in demo test teardowns
Julian Müller
vor 3 Monaten
1bcd072
repair broken status-page icons + UAT polish
Julian Müller
vor 3 Monaten
1c78bb9
skip_verify_authorized for nil-guard early-return in create + sign-guard test
Julian Müller
vor 3 Monaten
037c031
style prose-forest tables (borders, padding, header tint)
Julian Müller
vor 3 Monaten
b537f37
stop 500 on guest registration + dedupe dt_to error
Julian Müller
vor 3 Monaten
42cc353
self-heal Beschwerde-QR for existing freizeiten + per-QR flyer download + UI polish
Julian Müller
vor 3 Monaten
e3a338e
danke page advises saving the link / re-scanning the QR
Julian Müller
vor 3 Monaten
9365d25
picker entry to resume a complaint + honest contact-field hint
Julian Müller
vor 3 Monaten
e1278e5
resolve anonymous complaint by re-open code when no beschwerde_id
Julian Müller
vor 3 Monaten
02532aa
add 'Anderen Empfänger wählen' link on anonymous complaint form
Julian Müller
vor 3 Monaten
b59a0f0
show full AVV Prüfsumme (was truncated to 16 chars + …)
Julian Müller
vor 3 Monaten
d04f09b
stop double-truncating AVV Prüfsumme on Organisation AVV tab
Julian Müller
vor 3 Monaten
a4419d7
add German activerecord.attributes names for Beschwerde models (suite i18n gate)
Julian Müller
vor 3 Monaten
81a4ccb
add i18n attribute labels for QualificationExpiryNotification
Julian Müller
vor 3 Monaten
e158eec
add errors.messages.required — fixes all 67 belongs_to models
Julian Müller
vor 3 Monaten
bdbeae5
update internal slug refs in plan files to match renamed dir
Julian Müller
vor 3 Monaten
a53ba31
rename Phase 96 dir so GSD resolves it (8a slug-prefix bug)
Julian Müller
vor 3 Monaten
b0527a7
add toggle_blocked to AuditLog::ACTION_TYPES (UG-5)
Julian Müller
vor 3 Monaten
f285219
UG-4 — remove stray %> from pagination partial ERB comment
Julian Müller
vor 3 Monaten
8843ab5
UG-3 — abgeschlossene action: alias policy rule + set @berechtigung_teilnehmers
Julian Müller
vor 3 Monaten
48efe47
UG-2 — remove Anwesenheitszeitraum top-nav; add admin Dashboard tile
Julian Müller
vor 3 Monaten
998ea58
UG-1 — remove unrelease button; harden toggle_release; clean i18n
Julian Müller
vor 3 Monaten
75657e0
update schedule_controller_test to schedule_url (F-18 route rename regression)
Julian Müller
vor 3 Monaten
d0ec40f
triage + redirect-Ziel Ereignistypen→Index + Freizeit-Save weg von deprecated Show (Task 2)
Julian Müller
vor 3 Monaten
2a9d18a
switch save-redirects from Show to Index for Vorgang-/Listen-Models (Task 1)
Julian Müller
vor 3 Monaten
20cc3b0
BetreuerAnwesenheiten#index 500 beheben — komponierter Freizeit-Name (F-19)
Julian Müller
vor 3 Monaten
b0c16aa
Schedule-Route auf Standard /schedule umstellen (F-18)
Julian Müller
vor 3 Monaten
6e68bcc
scope BetreuerAbrechnungsController#index on current_freizeit (Phase-83-Restscope)
Julian Müller
vor 3 Monaten
93546ba
mobile w-full Buttons + einklappbare Teilnehmer-Filterleiste
Julian Müller
vor 3 Monaten
e469bd7
F-02 Kachel-Umbruch + F-04 Rollen-Header + F-15 Gaesteliste-Buttons
Julian Müller
vor 3 Monaten
e17ead4
83-Restscope tote Info-Buttons entfernen (_form.html.erb)
Julian Müller
vor 3 Monaten
c6fe07d
sync demo_schema.rb with b_blocked column (migration footprint)
Julian Müller
vor 3 Monaten
757a410
83-Restscope Neuer-Ausgehvorgang-Link Frame-Ausbruch
Julian Müller
vor 3 Monaten
fec099b
F-17 Benachrichtigungs-Titel-Link bricht aus turbo_frame aus
Julian Müller
vor 3 Monaten
363d022
nil-safe Berechtigung-Tab mit Empty-State (F-09a)
Julian Müller
vor 3 Monaten
72e04ad
remove redundant action: :index from ausgeh_vorgangs_abgeschlossen route
Julian Müller
vor 3 Monaten
cd92ade
delete dead partials/_flash.html.erb (F-12)
Julian Müller
vor 3 Monaten
5e5f3b0
remove per-view flash AlertComponent renders — 30 views
Julian Müller
vor 3 Monaten
b4a4c61
Teilnehmer-Datum DE-Format via Model-Methoden (F-13b)
Julian Müller
vor 3 Monaten
baa6edd
DE number-Block in de.yml + normalize_comma_floats! härten (F-06)
Julian Müller
vor 3 Monaten
a838784
remove dead 'Anzeigen' (show) button from org edit form (G-2 follow-up)
Julian Müller
vor 3 Monaten
526da2f
org-edit save redirects to index; remove single-org show page (G-2)
Julian Müller
vor 3 Monaten
cc8c431
relocate avv_gate i18n block from views.kuechendienst to views.freizeit
Julian Müller
vor 3 Monaten
d22e7c8
run backup:smoke_test in build phase via fetch(:rake), fail-safe
Julian Müller
vor 3 Monaten
7bbe03d
scope on:launch backup:smoke_test to RAILS_ENV=production
Julian Müller
vor 3 Monaten
fcad8a1
Freizeit-Formular Dezimalfelder — value:-Attr wiederherstellen (Typo imvalue:) + c_daily_amount_guests Komma-Float-No...
Julian Müller
vor 3 Monaten
e6febec
Mai 2026
replace Minitest::Mock status objects with plain Struct/Object doubles
Julian Müller
vor 4 Monaten
a8c2783
import birthdate_parse via bare specifier not relative path
Julian Müller
vor 4 Monaten
15759b6
add join? policy rule so org-less users can join from dashboard
Julian Müller
vor 4 Monaten
768df39
correct password hint, preserve invite on error, guard age validation
Julian Müller
vor 4 Monaten
316e6b5
bulletproof CTA buttons that survive Outlook desktop dark mode
Julian Müller
vor 4 Monaten
04851ee
wire admin user dropdown via Stimulus instead of (unloaded) Flowbite
Julian Müller
vor 4 Monaten
4d2f4b0
force button color contrast in desktop dark mode
Julian Müller
vor 4 Monaten
edaa49d
absolute libURL + 4MB size gate to prevent main-thread compression freeze
Julian Müller
vor 4 Monaten
3e5461f
switch tagged-logger block to literal block, avoid lambda arity
Julian Müller
vor 4 Monaten
3d01dd2
bypass demo connection switching for Devise auth controllers
Julian Müller
vor 4 Monaten
f13bf3c
force public stats banner to read primary shard, exclude demo rows
Julian Müller
vor 4 Monaten
9ef9c72
guard Rails.logger.tagged on Rails 8 BroadcastLogger
Julian Müller
vor 4 Monaten
4806171
explicit render() when auto-scan misses Turbo-Stream-inserted forms
Julian Müller
vor 4 Monaten
4b99457
drop 'cf-turnstile' literal from new.html.erb comment + log Plan-03 regressions
Julian Müller
vor 4 Monaten
fdc2063
set dt_from/dt_to on demo NachtwachenVorgang seed (+ idempotent backfill)
Julian Müller
vor 4 Monaten
d96fa81
revise plans per checker feedback
Julian Müller
vor 4 Monaten
685c789
org-scope update?/destroy? on 4 Plan-04 policies — close write/delete IDOR (SEC-85.1-12)
Julian Müller
vor 4 Monaten
0e0364e
tighten per-action bypass guard — flag OR-chained role checks regardless of predicate
Julian Müller
vor 4 Monaten
21aee68
restore create?/new? admin branch on 6 policies (class-level authz regression)
Julian Müller
vor 4 Monaten
a58d457
close cross-org IDOR in AbrechnungPolicy#show? + BetreuerAbrechnungPolicy#show?
Julian Müller
vor 4 Monaten
262d750
drop bare user.is_admin? from NachtwachenEreignis + StrandwachenEreignis policies
Julian Müller
vor 4 Monaten
f9706a8
drop bare user.is_admin? from AktivitaetsVorgang + KursZeit policies (SEC-85.1-12)
Julian Müller
vor 4 Monaten
ca88a28
drop bare user.is_admin? from 5 freizeit-scoped Vorgang policies (SEC-85.1-12)
Julian Müller
vor 4 Monaten
46db9b7
gate show? admin branch with same-org predicate (SEC-85.1-12)
Julian Müller
vor 4 Monaten
a2b0d3f
delete relation_scope admin bypass from 23 remaining MOOT policies
Julian Müller
vor 4 Monaten
1aa3956
close SEC-85.1-13 FahrdienstAbrechnung cross-org write vector + crafted-write regression tests
Julian Müller
vor 4 Monaten
3c70053
org-filter Proofread/Closed admin tabs + billing-leak integration tests (SEC-85.1-8, -9)
Julian Müller
vor 4 Monaten
2361416
delete admin? bypass from AbrechnungPolicy + collapse dead if/else in DokumentPolicy (SEC-85.1-9, SEC-85.1-6)
Julian Müller
vor 4 Monaten
cc77937
delete next relation if user.is_admin? bypass from 5 confirmed-LEAK policies
Julian Müller
vor 4 Monaten
9785c63
demo entry no longer instant-:timeout logs out (reset stale session)
Julian Müller
vor 4 Monaten
d24dce7
demo Handbuch demo-modus page — seed into live DB + read /handbuch from primary shard
Julian Müller
vor 4 Monaten
b9d43b6
stop demo session from mounting the heartbeat keepalive
Julian Müller
vor 4 Monaten
d85752c
isolate boundary-guard test Part (b) with reset!
Julian Müller
vor 4 Monaten
2e9a3a1
nil-guard txt_involved_teilnehmer in _ereignis.html.erb (GAP-85-B)
Julian Müller
vor 4 Monaten
1eeb6a5
narrow demo fail-closed rescue to connection errors only (GAP-85-A)
Julian Müller
vor 4 Monaten
eb5e6e4
CR-01/WR-01/WR-02/WR-05/WR-06 harden StripeWebhookJob persistence and idempotency
Julian Müller
vor 4 Monaten
ba19205
CR-02 harden AbrechnungMailer association walk with safe navigation
Julian Müller
vor 4 Monaten
aba9fb4
WR-03 enqueue minimal Stripe event payload to avoid PII leak
Julian Müller
vor 4 Monaten
4cba1ce
run read-only auto-release in after_commit so it cannot affect the payment transaction (CR-01 hardening)
Julian Müller
vor 4 Monaten
c4cf963
move dt_verzug_vorwarnung_am write to after side effects so failed delivery leaves marker nil for retry (CR-02)
Julian Müller
vor 4 Monaten
f7b97a6
extract bezahlen after-hook to rescued method so release failure cannot roll back payment (CR-01)
Julian Müller
vor 4 Monaten
c81f658
revise plans per checker feedback (i18n key ownership, fixture gate, OQ resolved)
Julian Müller
vor 4 Monaten
c4c71b6
dock read-only + open-payments banners directly below menu (UAT feedback)
Julian Müller
vor 4 Monaten
a5b8f92
shorten read-only flash alert (UAT feedback)
Julian Müller
vor 4 Monaten
973ebfe
revert out-of-scope Stripe webhook nil-secret guard; stub construct_event in REQ-F test
Julian Müller
vor 4 Monaten
f049c7f
clean up body scroll-lock on controller disconnect (WR-01)
Julian Müller
vor 4 Monaten
72ab97e
confirmPick submits real zuweisung_id (CR-01 blocker)
Julian Müller
vor 4 Monaten
4f72e77
skip blank Absolut values + FontAwesome chevron touch targets (UAT)
Julian Müller
vor 4 Monaten
1814963
per-group Absolut save + no-JS Relativ radios (code-review CR-01/WR-01)
Julian Müller
vor 4 Monaten
8b91a98
target Gruppen tab in show roster test after server-side panel split
Julian Müller
vor 4 Monaten
7ba17fc
add Relativ winner-toggle + D-14 solo render tests to Plan 04 Task 2
Julian Müller
vor 4 Monaten
9d55e12
min-h-0 on timeline blocks so short blocks clip instead of overlapping
Julian Müller
vor 4 Monaten
dbc97ad
CSP-safe proportional grid via Tailwind classes (no inline styles) + readable Pause
Julian Müller
vor 4 Monaten
4b9a4c4
render Rotationsplan grid with fully inline server-side CSS Grid (GAP-2)
Julian Müller
vor 4 Monaten
f445a5c
cascade-delete scoring rows so destroy doesn't hit FK constraint
Julian Müller
vor 4 Monaten
ee73865
render Rotationsplan as a bounded Zeit×Stationen table (no absolute positioning)
Julian Müller
vor 4 Monaten
ecb9176
lane-pack timeline blocks per column; drop cramped in-block time labels
Julian Müller
vor 4 Monaten
4d3e4ff
timeline grid positioning via JS + persist active tab across reload
Julian Müller
vor 4 Monaten
083dc9f
IN-03 update stale i_runde comment in stationslauf_wertung.rb
Julian Müller
vor 4 Monaten
fd18475
WR-04 correct lower_bound_min ceil placement
Julian Müller
vor 4 Monaten
6eb44db
WR-03 guard nil i_start_min/l_dauer_min in validate_zuweisung_change
Julian Müller
vor 4 Monaten
fb1c260
WR-01 validate i_sieger_gruppe range in wertung_speichern
Julian Müller
vor 4 Monaten
fed1357
CR-01 post one request per heat/group in wertung save()
Julian Müller
vor 4 Monaten
d8533e2
atomic Relativ pairing in timeline scheduler — false infeasibility
Julian Müller
vor 4 Monaten
ac382c9
AlertComponent invalid :danger type rendered broken icons/.svg
Julian Müller
vor 4 Monaten
5bafefb
revert out-of-scope cutover edits pulled forward from Plan 04
Julian Müller
vor 4 Monaten
3068b2d
commit schema.rb dump for uniqueness/index migration
Julian Müller
vor 4 Monaten
17d3553
WR-04 validate txt_absolut_punkte is a JSON array of non-negative integers
Julian Müller
vor 4 Monaten
fbfe6d8
WR-03 korrektur_speichern returns gesamt:nil on scoring failure; client shows warning toast
Julian Müller
vor 4 Monaten
d301ad6
CR-03+WR-05 enforce StationslaufWertung uniqueness + ersteller_id index
Julian Müller
vor 4 Monaten
d6d0bbc
CR-02 Relativ form submits i_gruppe[] array so all round participants are scored
Julian Müller
vor 4 Monaten
aa10c65
CR-01 reject cross-tenant station_id and out-of-range i_runde in wertung_speichern
Julian Müller
vor 4 Monaten
2a16468
tighten generieren? to Admin/Owner OR Ersteller (D-12)
Julian Müller
vor 4 Monaten
b8da009
add min_cap to station_rows and enforce it in solve_greedy (D-14)
Julian Müller
vor 4 Monaten
a0b9201
Rails update_teilnehmer wendet telefonnummers an (Repair-Backfill)
Julian Müller
vor 4 Monaten
3e3df0a
Repair-Backfill erreicht bereits-importierte Teilnehmer
Julian Müller
vor 4 Monaten
3c5be40
Adresse/Zeit auch für Geschwister (Repeater row > 0)
Julian Müller
vor 4 Monaten
84cfb44
Ausgehregelung/Orte/Rückkehrzeit-Regression + flexibles Telefon-Mapping
Julian Müller
vor 4 Monaten
1c7f08b
repair corrections subsystem — wp_unslash, name-lookup, compound pre-fill, multi-phone
Julian Müller
vor 4 Monaten
fc0d755
a11y labels + zero-groups guard for Laufzettel links (IN-01, IN-02)
Julian Müller
vor 4 Monaten
8106adb
guard mutually-exclusive render args (WR-02)
Julian Müller
vor 4 Monaten
0996d81
use dedicated alert for invalid gruppe index (WR-01)
Julian Müller
vor 4 Monaten
9c2378d
make Generieren dialog a real toggleable modal
Julian Müller
vor 4 Monaten
a4ce966
accept nested rotationslauf_stationen + fix capacity pairing
Julian Müller
vor 4 Monaten
27855c3
WR-02 stop double-encoding txt_gruppen JSON column
Julian Müller
vor 4 Monaten
0947347
rotationsplaene form NoMethodError (rotationslaeufe_path)
Julian Müller
vor 4 Monaten
02795f6
WR-03 replace dead Generieren button with in-page anchor to inline form
Julian Müller
vor 4 Monaten
aa39de6
CR-01 authorize create on both controllers, CR-02 round-robin capacity bound, WR-01 rescue Date.parse
Julian Müller
vor 4 Monaten
42102d1
refresh expiring tokens so mobile logins stop failing
Julian Müller
vor 4 Monaten
96f1535
CV-Korrekturen — 500k Downloads, Rails-Freizeit, GitHub Cherdenko
Julian Müller
vor 4 Monaten
896ad95
object-left am Hero-/Teaser-Foto
Julian Müller
vor 4 Monaten
aaf4f9c
ersetze Hero-Foto durch Boots-Porträt + object-top zurück
Julian Müller
vor 4 Monaten
7d38078
object-top am Hero-Foto + About-Teaser-Foto
Julian Müller
vor 4 Monaten
cb0697c
Phase-74-Gate — p.text-sage/80 statt p.text-sage (Hero + CTA)
Julian Müller
vor 4 Monaten
a96f046
assert_select-Hash-Syntax + sitemap-Pre-Bug Deferral
Julian Müller
vor 4 Monaten
347658b
klarere §8a-Empfehlung in Notfallmappe-PDF
Julian Müller
vor 4 Monaten
2277179
Toast als pre-rendered ERB-Markup (Tailwind-v4-konform)
Julian Müller
vor 4 Monaten
e176d1c
entferne Plattform-Bausteine + Toast-Feedback beim Kopieren
Julian Müller
vor 4 Monaten
0ef3c2d
repariere ERB-Kommentar-Leak + nutze Turbo Frame statt Full-Reload
Julian Müller
vor 4 Monaten
b18faac
add 88.1-06 to depends_on (i18n keys must land first)
Julian Müller
vor 4 Monaten
8276ff5
Gesundheitsdaten als Pflichtangabe, nicht als Einwilligung
Julian Müller
vor 4 Monaten
d2a561b
remove redundant Gesundheits- + Kinderschutz-Blocks aus PDF
Julian Müller
vor 4 Monaten
2c86a83
remove support_unencrypted_data flag (DEBT D25 resolved)
Julian Müller
vor 4 Monaten
0505ec6
encrypt_existing_pii actually re-encrypts plaintext rows
Julian Müller
vor 4 Monaten
ea5c95f
unbreak 3 pre-existing failures (Phase 80 redirect, upload 25 MB limit)
Julian Müller
vor 4 Monaten
d377a28
destroy redirects send users back to Org Freizeit-Tab
Julian Müller
vor 4 Monaten
f837f5d
redirect Rollen-Tab actions back to Rollen-Tab
Julian Müller
vor 4 Monaten
ffb1d7f
exclude non-UI dirs from v4 scanner — fix RangeError im Deploy
Julian Müller
vor 5 Monaten
2400dcc
"und KI-Funktionen" durch akkurate Beschreibung ersetzen
Julian Müller
vor 5 Monaten
fac47b0
replace MwSt-0,00-€-Zeile with §19 UStG disclosure
Julian Müller
vor 5 Monaten
290a6fc
allow org-owner to create_payment_link for own org
Julian Müller
vor 5 Monaten
d1ed847
controller passes force: true + generic alert message
Julian Müller
vor 5 Monaten
3c8599f
wrap puffer-check in unless force in AbrechnungCreatorService
Julian Müller
vor 5 Monaten
20d9ee4
April 2026
mount ActionCable.server at /cable + allow production origins
Julian Müller
vor 5 Monaten
3ff4efe
chevron fades in correct rotation — eliminates final FOUC
Julian Müller
vor 5 Monaten
054be66
kill collapsed-section FOUC via initial hidden class (Stimulus-only)
Julian Müller
vor 5 Monaten
dfda333
kill fresh-load FOUC on collapsed sections
Julian Müller
vor 5 Monaten
bfbe270
markAsReadAndFollow — keepalive PATCH survives page unload
Julian Müller
vor 5 Monaten
b571ef6
dashboard collapse — empty page on back-nav + chevron visibility
Julian Müller
vor 5 Monaten
47c986e
back button — defer history.back() one tick to avoid Turbo race
Julian Müller
vor 5 Monaten
4cd8381
mobile burger menu works for guests + admins (Phase 74-05 leftover)
Julian Müller
vor 5 Monaten
50992f1
_header.html.erb — root_path → home_path (guest fallback)
Julian Müller
vor 5 Monaten
d1da64c
suppress modulepreload for Stimulus controllers (preload: false on pin_all_from)
Julian Müller
vor 5 Monaten
1355aa3
remove bare <style> block from _faq.html.erb (CSP fix)
Julian Müller
vor 5 Monaten
6295ec6
swap text-sage → text-subtle/text-cream on all landing page partials
Julian Müller
vor 5 Monaten
5f7e7a8
footer WCAG AA fixes — contrast tokens, h4→p, link underline
Julian Müller
vor 5 Monaten
9e56ec7
add German translations for ActiveModel validation messages
Julian Müller
vor 5 Monaten
f7e87ab
guard feedback QR generation against nil dt_to
Julian Müller
vor 5 Monaten
3134682
align controller branch order with view (betreuer first)
Julian Müller
vor 5 Monaten
c58a9e4
remove Enterprise from paket dropdown — sales-contact only
Julian Müller
vor 5 Monaten
cf77b12
remove BELIEBT badges and § 19 UStG note from public pricing
Julian Müller
vor 5 Monaten
7be2706
WR-04 scope gaesteliste paket gate to URL freizeit
Julian Müller
vor 5 Monaten
7a2507b
WR-03 skip audit row on no-op matrix update
Julian Müller
vor 5 Monaten
05dffa8
WR-02 skip cache bust on no-op matrix update
Julian Müller
vor 5 Monaten
38d9889
WR-01 gate BetreuerAnwesenheit modal on paket module
Julian Müller
vor 5 Monaten
815e3d8
WR-01 scope Freizeit dropdown to active/recent + move query to controller
Julian Müller
vor 5 Monaten
0ee6a5f
correct misleading Widerruf clause in DSGVO template
Julian Müller
vor 5 Monaten
26acd0c
guard optional organisation in profile card (WR-02)
Julian Müller
vor 5 Monaten
5d92033
compact blank name parts in fullname (IN-01)
Julian Müller
vor 5 Monaten
6fca14f
clear harvested embeddings at end of each run
Julian Müller
vor 5 Monaten
35cbc9d
wire Web Worker compression to vendored libURL + fix UX
Julian Müller
vor 5 Monaten
08100fc
pin browser-image-compression to local vendored file
Julian Müller
vor 5 Monaten
38d77d0
jsonb column + BetreuerUser#str_fullname in consent view
Julian Müller
vor 5 Monaten
9896c69
size-aware batch packing to stay under 200 MB cap
Julian Müller
vor 5 Monaten
b93c567
drop enable_starttls_auto — conflicts with tls: true on :465
Julian Müller
vor 5 Monaten
5a35614
scope Freizeit year-floor to :create so jobs can update archives
Julian Müller
vor 5 Monaten
85e2104
foto-modus UX — search icon, selection UI, image preview
Julian Müller
vor 5 Monaten
f3e3ecc
allow face detection on archived Freizeit + kill duplicate flash
Julian Müller
vor 5 Monaten
331501b
proportionale Fairness statt absolutem Einsatz-Count
Julian Müller
vor 5 Monaten
06be45c
vorzeitig abgereiste Teilnehmer aus Verteilung ausschließen
Julian Müller
vor 5 Monaten
c720b25
Partial gegen Legacy-str_when-Werte härten
Julian Müller
vor 5 Monaten
4e30120
App-Chrome beim Drucken ausblenden
Julian Müller
vor 5 Monaten
3496c1a
faire Auto-Verteilung wiederherstellen
Julian Müller
vor 5 Monaten
92e1217
make case-study category badge readable in dark mode
Julian Müller
vor 5 Monaten
6c18895
raise image/attachment size limits to 25 MB
Julian Müller
vor 5 Monaten
24bab62
suppress Anwesenheit modal for archived freizeiten
Julian Müller
vor 5 Monaten
3a29f7e
migrate missed error banner and focus rings in anwesenheitskontroll _form
Julian Müller
vor 5 Monaten
932e9ac
guard against nil user and nil dt_date in prod 500s
Julian Müller
vor 5 Monaten
cc984c0
prevent Turnstile widget stacking on token expiry
Julian Müller
vor 6 Monaten
02272f7
align new document form with CI design system
Julian Müller
vor 6 Monaten
d5bc008
use stroke-based icons for wiki/dokumente + mobile folder
Julian Müller
vor 6 Monaten
d570ef0
replace broken wiki book-open SVG with FA Regular book
Julian Müller
vor 6 Monaten
067340b
use outlined (regular) SVGs for wiki and dokumente tiles
Julian Müller
vor 6 Monaten
48a3a6e
use filled SVGs for dashboard tiles + fix folder form
Julian Müller
vor 6 Monaten
02c76be
add upload validation to all remaining models
Julian Müller
vor 6 Monaten
fcf3172
März 2026
tighten sanitize allowlists and fix newsletter preview
Julian Müller
vor 6 Monaten
4b8ad56
add Active Storage upload validation to new models
Julian Müller
vor 6 Monaten
8f808b8
replace raw() with sanitize() in Wiki views
Julian Müller
vor 6 Monaten
1e48d5c
use home_url instead of root_url in sitemap
Julian Müller
vor 6 Monaten
33d2716
change public blog route from /blog_posts to /blog
Julian Müller
vor 6 Monaten
2d22394
add casestudy filter label + hero image on show page
Julian Müller
vor 6 Monaten
9afbe83
check admin_signed_in? before betreuer_user_signed_in?
Julian Müller
vor 6 Monaten
9bb6c10
add prose styles for blog content
Julian Müller
vor 6 Monaten
2cf8269
add HeartbeatPolicy for authorize! compliance
Julian Müller
vor 6 Monaten
b3c5de9
skip_after_action verify_authorized for heartbeat
Julian Müller
vor 6 Monaten
a95929c
replace broken info icon tooltip with inline hint text
Julian Müller
vor 6 Monaten
1006194
replace inline styles with CSS classes for CSP compliance
Julian Müller
vor 6 Monaten
d07ff34
add missing suche? and geloeschte? policy methods
Julian Müller
vor 6 Monaten
079785c
use simple fetch like import_freizeit_settings pattern
Julian Müller
vor 6 Monaten
3c3b034
fix fetch credentials for [[ search + add tooltip
Julian Müller
vor 6 Monaten
7cfdcc9
use non-breaking spaces for level indentation in selects
Julian Müller
vor 6 Monaten
685141a
show Level 3 (Fachthema) in Bereiche management tree
Julian Müller
vor 6 Monaten
25a7457
show all levels in parent bereich dropdown
Julian Müller
vor 6 Monaten
94c628c
show all 3 levels in sidebar tree and mobile dropdown
Julian Müller
vor 6 Monaten
54b980b
context-aware add buttons for Bereich hierarchy
Julian Müller
vor 6 Monaten
8ed8887
show all 3 bereich levels in article form select
Julian Müller
vor 6 Monaten
7d8fc4e
redirect wiki create to index instead of show
Julian Müller
vor 6 Monaten
d3db85c
header tabs like Kurse, tree sidebar in content, breadcrumbs
Julian Müller
vor 6 Monaten
af01012
move Bereiche-verwalten to subtle icon in filter pills
Julian Müller
vor 6 Monaten
b8b5266
move WikiBereich management from admin to betreuer-facing
Julian Müller
vor 6 Monaten
64667f6
restore Busliste feature reference — it exists in Anwesenheitskontrolle
Julian Müller
vor 6 Monaten
23f32dd
correct factual inaccuracies in SEO blog posts
Julian Müller
vor 6 Monaten
8f1b2d0
auto-set published_at, blog content h2/h3/ul styles, dark mode link hover
Julian Müller
vor 6 Monaten
e4f3e19
fix ticket edit title i18n + add Phase 49.2
Julian Müller
vor 6 Monaten
17e2e48
remove breadcrumbs from ticket form pages
Julian Müller
vor 6 Monaten
4964225
redesign ticket form — crafted card with breadcrumbs
Julian Müller
vor 6 Monaten
f59fb6b
redesign ticket form — clean card layout, no section headers
Julian Müller
vor 6 Monaten
6a9cbcf
migrate inline style= gradients and heights to CSS classes (CSP)
Julian Müller
vor 6 Monaten
f77be93
rename dark-text token, turbo frame fix, newsletter registration, ticket icon
Julian Müller
vor 6 Monaten
3abff60
Mailer redesign, preview CSP fix, dashboard tiles, newsletter abmelden
Julian Müller
vor 6 Monaten
4736b4d
mailer layout — Forest palette + fix Deppenleerzeichen
Julian Müller
vor 6 Monaten
37a6968
frame-ancestors self — allow same-origin iframes
Julian Müller
vor 6 Monaten
815a732
fix letter_opener CSP — skip nonce + add frame-src self
Julian Müller
vor 6 Monaten
6c27de2
CSP report-only in development for letter_opener
Julian Müller
vor 6 Monaten
1a98a7e
case-insensitive CSP header deletion for letter_opener
Julian Müller
vor 6 Monaten
239c634
insert CSP-strip middleware AFTER Rails CSP middleware
Julian Müller
vor 6 Monaten
c7d94f0
mount CSP middleware in config.ru instead of application.rb
Julian Müller
vor 6 Monaten
c35c1de
pass middleware class not string
Julian Müller
vor 6 Monaten
1d42f28
strip CSP headers entirely for letter_opener
Julian Müller
vor 6 Monaten
dc70f8a
skip CSP nonce for /letter_opener dev tool
Julian Müller
vor 6 Monaten
3378749
require letter_opener_web engine before mounting
Julian Müller
vor 6 Monaten
3e6b94d
add missing newsletter I18n translations
Julian Müller
vor 6 Monaten
f1a4586
fix content errors + module ordering for prev/next nav
Julian Müller
vor 6 Monaten
b8098b2
fix admin_panel_path — route doesn't exist
Julian Müller
vor 6 Monaten
36e59f6
add nonces to inline script blocks for CSP compliance
Julian Müller
vor 6 Monaten
30d3c26
add admin mobile nav menu — Flowbite navbar-user target error
Julian Müller
vor 6 Monaten
0a355e5
Quill editor dark mode — Forest palette instead of blue/gray
Julian Müller
vor 6 Monaten
7ba9a3c
serve fonts from public/fonts/ with absolute URLs
Julian Müller
vor 6 Monaten
d69206c
derive blog author name from email instead of showing email
Julian Müller
vor 6 Monaten
9cd13bb
add missing de.time.formats.long + default translation
Julian Müller
vor 6 Monaten
9e1b5c5
blog JSON-LD — no nested ERB inside Ruby block
Julian Müller
vor 6 Monaten
f6b7429
replace root_url with request.base_url in blog JSON-LD
Julian Müller
vor 6 Monaten
4e4eedc
remove prefers-color-scheme from checkbox — use .dark class only
Julian Müller
vor 6 Monaten
40b5c7d
revert admin login bg to cream
Julian Müller
vor 6 Monaten
2630a32
admin login bg darker shade for contrast with header/footer
Julian Müller
vor 6 Monaten
b91b8d1
admin login bg-cream to match body background
Julian Müller
vor 6 Monaten
774d943
checkbox light mode — white background instead of transparent
Julian Müller
vor 6 Monaten
5f57efe
admin login page light/dark mode support
Julian Müller
vor 6 Monaten
698c648
restore admin login switcher on betreuer login page
Julian Müller
vor 6 Monaten
5af16e5
revert admin link from footer
Julian Müller
vor 6 Monaten
c79f194
remove debug logging from Forminator hook, rebuild zip
Julian Müller
vor 6 Monaten
984fcd7
fetch entry_id from DB when Forminator response lacks it
Julian Müller
vor 6 Monaten
28c2c21
add all Forminator hook variants + debug response logging
Julian Müller
vor 6 Monaten
fdbb589
add forminator_custom_form hook + debug logging
Julian Müller
vor 6 Monaten
566fd94
remove WordPress Plugin from header nav, keep in footer
Julian Müller
vor 6 Monaten
5b481bf
add missing de.devise.sessions.sign_in translation
Julian Müller
vor 6 Monaten
069bf9a
AGB Gerichtsstand — München
Julian Müller
vor 6 Monaten
3239a3f
AGB § 10 — Exportpflicht vor Vertragsende beim Kunden
Julian Müller
vor 6 Monaten
b733a75
AGB § 4 — bestehende sowie begonnene Freizeiten
Julian Müller
vor 6 Monaten
a2b03ed
restyle Impressum/AGB pages with Forest typography
Julian Müller
vor 6 Monaten
764349e
add AGB + Datenschutz links to registration form
Julian Müller
vor 6 Monaten
e804f42
exclude dark mode toggle from custom checkbox styles
Julian Müller
vor 6 Monaten
b2dc6e0
custom Forest checkbox styling + dark mode timeline numbers
Julian Müller
vor 6 Monaten
3c80b8b
mobile timeline text over line + add German date translations
Julian Müller
vor 6 Monaten
7345899
fix newsletter + how-it-works mobile layout
Julian Müller
vor 6 Monaten
3e16947
make Impressum/AGB publicly accessible without login
Julian Müller
vor 6 Monaten
8e8da83
clarify face vector deletion — file-based with BSI overwrite
Julian Müller
vor 6 Monaten
16bd102
add BSI-compliant face vector deletion to Datenschutz page
Julian Müller
vor 6 Monaten
cac7618
fix hero Demo ansehen button dark mode colors
Julian Müller
vor 6 Monaten
de8917f
add screenshots + shortcut icons to resolve manifest warnings
Julian Müller
vor 6 Monaten
accd7c1
change PWA short_name to Jugendcampplaner
Julian Müller
vor 6 Monaten
e96463d
add 192px and 512px icons required by Chrome
Julian Müller
vor 6 Monaten
a77fdb0
fix icon sizes + remove broken SVG shortcut icons
Julian Müller
vor 6 Monaten
83b0043
show install banner on mobile without beforeinstallprompt
Julian Müller
vor 6 Monaten
c2ff3b5
skip forgery protection on PwaController
Julian Müller
vor 6 Monaten
898c47a
add service-worker.js route for SW registration
Julian Müller
vor 6 Monaten
1d78aef
fix PwaController template resolution
Julian Müller
vor 6 Monaten
fa8aa9c
update cookie banner to Forest palette
Julian Müller
vor 6 Monaten
c209666
serve manifest as application/manifest+json
Julian Müller
vor 6 Monaten
89c5929
make fetch handler functional for install prompt
Julian Müller
vor 6 Monaten
f91649c
add 192x192 icon + fetch handler for install prompt
Julian Müller
vor 6 Monaten
b26d9ae
capture beforeinstallprompt early in application.js
Julian Müller
vor 6 Monaten
42ac3b7
fix YAML syntax in pwa I18n translations
Julian Müller
vor 6 Monaten
5f141cd
redirect on CSRF token expiry instead of 500 error
Julian Müller
vor 6 Monaten
0d207fc
remove duplicate flash notice from hero partial
Julian Müller
vor 6 Monaten
285ce06
fix Turbo progress bar color — Forest green instead of blue
Julian Müller
vor 6 Monaten
6927322
fix system logs terminal pane — Forest dark green instead of gray
Julian Müller
vor 6 Monaten
3df208e
fix system logs buttons — replace gray with Forest palette
Julian Müller
vor 6 Monaten
de7cf5f
fix Freizeit default selection + duplicate session expiry alert
Julian Müller
vor 6 Monaten
34dcdca
fix Freizeit switcher — disable Turbo on form submit
Julian Müller
vor 6 Monaten
a0c6337
fix betreueransprache dark mode — replace blue/primary with Forest
Julian Müller
vor 6 Monaten
91d6f4e
add missing Ereignis I18n translations (index, show)
Julian Müller
vor 6 Monaten
fda3994
fix missing edit template in BetreuerAbrechnungsController
Julian Müller
vor 6 Monaten
94d32ad
fix turbo_stream render in teilnehmers + skip-nav colors
Julian Müller
vor 6 Monaten
8a0d436
remove duplicate flash messages from betreuer dashboard
Julian Müller
vor 6 Monaten
2a985e2
app tile hyphenation + responsive centering
Julian Müller
vor 6 Monaten
0356f27
recolor JC logo/favicon to forest green, shrink dark mode toggle
Julian Müller
vor 6 Monaten
8922b21
fix dark mode remnants — replace bright blue/purple/green with Forest dark palette
Julian Müller
vor 6 Monaten
1de5cb2
add dark mode to public nav links and Anmelden button
Julian Müller
vor 6 Monaten
f4f49bd
show dark mode toggle for public (non-authenticated) visitors
Julian Müller
vor 6 Monaten
d5fa686
self-host fonts and Quill CSS, remove CDN dependencies (GDPR/CSP)
Julian Müller
vor 6 Monaten
921a85d
reduce toggle size from 50% to 40% scale (80x35px)
Julian Müller
vor 6 Monaten
032d6ff
login/register buttons stuck disabled when Turnstile is off in dev
Julian Müller
vor 6 Monaten
aaf5e5d
match FAQ, CTA, footer, header exactly to design reference
Julian Müller
vor 6 Monaten
6d71bce
fix bento cards invisible on Turbo navigation
Julian Müller
vor 6 Monaten
c83e564
remove broken fallback header/footer from layout
Julian Müller
vor 6 Monaten
7ce90d7
migrate design system from tailwind.config.js to Tailwind v4 @theme
Julian Müller
vor 6 Monaten
f435b22
handle legacy integer session values in current_freizeit
Julian Müller
vor 6 Monaten
6ad8649
make Stripe keys optional instead of raising in production
Julian Müller
vor 6 Monaten
c87e179
allow viewing Teilnehmer page for archived Freizeiten
Julian Müller
vor 6 Monaten
420340a
replace all inline SVGs on startpage with icon() helper calls
Julian Müller
vor 6 Monaten
43c9a6d
fix nested ERB tags in icon() calls causing syntax errors
Julian Müller
vor 6 Monaten
6ab08fd
fix VAPID keys job test to use proper assertion
Julian Müller
vor 6 Monaten
519ec32
fix events translations nesting under notifications key in de.yml
Julian Müller
vor 6 Monaten
3cbcbfb
restore static 500.html as fallback when Rails itself crashes
Julian Müller
vor 6 Monaten
c03b993
move static error pages to public/fallback/ so ErrorsController is used
Julian Müller
vor 6 Monaten
e7cecb2
replace clipboard.js with Stimulus controller for CSP compatibility
Julian Müller
vor 6 Monaten
83fa74e
change API key name input to dropdown with WordPress Plugin option
Julian Müller
vor 6 Monaten
b21848c
inline quill and compact CSS into application.css for Propshaft compatibility
Julian Müller
vor 6 Monaten
79b339b
add CSP nonce to login page inline script to unblock Turnstile captcha
Julian Müller
vor 6 Monaten
73f2a20
improve correction save logic, update plugin zip, and add tech debt tracker
Julian Müller
vor 6 Monaten
431a68e
reduce Ransack exposure and expand Rack::Attack rate limiting
Julian Müller
vor 7 Monaten
0ce7679
refactor GitHub token to on-demand fetching with timeout
Julian Müller
vor 7 Monaten
b9ee3f7
filter KrisenVorgang relation_scope by access grants
Julian Müller
vor 7 Monaten
a73b97a
add pessimistic locking to teilnehmer_back
Julian Müller
vor 7 Monaten
e9779ce
remove client-controllable skip_validation parameter bypass
Julian Müller
vor 7 Monaten
d6d1d61
secure CSP nonce and enable enforcing mode
Julian Müller
vor 7 Monaten
a42770d
replace skip_verify_authorized with AdminPanelPolicy
Julian Müller
vor 7 Monaten
4082bc3
add owner email notification on role changes
Julian Müller
vor 7 Monaten
bb7a60c
remove duplicate blog link for unauthenticated users
Julian Müller
vor 7 Monaten
e199d33
Februar 2026
bypass model validation when attaching camp book PDF
Julian Müller
vor 7 Monaten
cd4e478
reload page after camp book generation completes
Julian Müller
vor 7 Monaten
b52a104
use update_columns for camp book progress to bypass date validation
Julian Müller
vor 7 Monaten
70acd54
set camp book generating flag before enqueuing job
Julian Müller
vor 7 Monaten
4bad6c8
allow camp book PDF generation for archived Freizeiten
Julian Müller
vor 7 Monaten
9b45a4e
add ransackable_attributes to Ticket model for admin search
Julian Müller
vor 7 Monaten
a22af6d
skip validations in Nextcloud password encryption migration
Julian Müller
vor 7 Monaten
d50114b
read encryption keys from credentials.yml.enc
Julian Müller
vor 7 Monaten
7ede2c7
make ActiveRecord Encryption work in production
Julian Müller
vor 7 Monaten
8a847e4
add blog link to header navigation for all users
Julian Müller
vor 7 Monaten
0d4f16e
remove org-dependent Handlungsleitfäden card from admin dashboard
Julian Müller
vor 7 Monaten
5ddb3ad
fix QuizSession seed — l_rounds_count must be >= 5
Julian Müller
vor 7 Monaten
780af58
fix bugs found during controller testing
Julian Müller
vor 7 Monaten
f282eea
fix route helpers, readonly guard, view bugs, inflections
Julian Müller
vor 7 Monaten
2378560
fix nested route helpers in controllers and views
Julian Müller
vor 7 Monaten
1d5f3d9
sanitize LIKE queries to prevent SQL wildcard injection
Julian Müller
vor 7 Monaten
28299ac
prevent path traversal in log download with regex and realpath
Julian Müller
vor 7 Monaten
ad4cd54
scope remaining 3 unscoped controllers with authorized_scope
Julian Müller
vor 7 Monaten
64359b8
replace html_safe with sanitize in meta_entry partial
Julian Müller
vor 7 Monaten
4282117
increase changelog graph lane width for branch curves
Julian Müller
vor 7 Monaten
4392a8d
use pure inline styles for changelog graph
Julian Müller
vor 7 Monaten
1740003
use CSS divs for graph lane lines instead of SVG
Julian Müller
vor 7 Monaten
0b313d1
reduce changelog graph spacing
Julian Müller
vor 7 Monaten
0d4c772
tighten changelog graph spacing and clip branch lines
Julian Müller
vor 7 Monaten
02fef8a
resolve FK constraint error in GitHub commit fetcher
Julian Müller
vor 7 Monaten
3fdb7d3
multiple controller/view bugs across 7 features
Julian Müller
vor 7 Monaten
9f48c37
scoping bugs, admin dashboard, UI improvements, feedback Mehrfachauswahl
Julian Müller
vor 7 Monaten
0115e4f
gate navbar white-labeling behind pro package
Julian Müller
vor 7 Monaten
f49e885
change departure check from hard block to soft warning
Julian Müller
vor 7 Monaten
3ec53f4
Januar 2026
use handlungsleitfaeden_index_path for collection routes
Julian Müller
vor 8 Monaten
a48bf00
use explicit path for delete button in show view
Julian Müller
vor 8 Monaten
a99d030
use explicit paths for Handlungsleitfaden URLs
Julian Müller
vor 8 Monaten
b7e404c
set explicit URL in Handlungsleitfaden form
Julian Müller
vor 8 Monaten
ab65288
correct all handlungsleitfaden route helper names
Julian Müller
vor 8 Monaten
826b5c9
add explicit class_name to German plural associations
Julian Müller
vor 8 Monaten
6cfddb0
correct route helper name in KrisenVorgang new view
Julian Müller
vor 8 Monaten
838d816
handle class-level authorization in KrisenVorgangPolicy
Julian Müller
vor 8 Monaten
334352b
add missing admin_signed_in? helper method
Julian Müller
vor 8 Monaten
6719bda
fix Ausleihvorgänge list refresh on return/lost
Julian Müller
vor 8 Monaten
64a880b
add Alle Abrechnungen tab for admin visibility
Julian Müller
vor 8 Monaten
d711912
fix test fixtures for authorization tests
Julian Müller
vor 8 Monaten
9715555
add skip_verify_authorized to Devise and public controllers
Julian Müller
vor 8 Monaten
8a7c8c4