- Header-Markup wie web/index.html (nav#legal + zentrierte h1), gleiche
Schrift/Beton-Hintergrund, weil jetzt dasselbe /css/app.css geladen wird
- Inhalt in <main><div class="doc"> -> weiße Spalte mit 5px Padding
- verwaiste static/css/{main.css,main.scss,normalize.css} entfernt (wurden
nur von den Docs referenziert)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- security.txt unter /.well-known/ mit Contact, Expires, Canonical (kver.xyz)
- Impressum + Beitragsordnung aus aktueller Prod übernommen (sauberes HTML
ohne Jinja/htmx/jQuery-Reste, § 5 DDG statt TMG)
- fehlende normalize.css ergänzt (wurde von allen Docs referenziert -> 404)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- user.avatar-Spalte (Schema, migrate.sh, Migrationsdoku)
- POST /user/avatar (geschützt): Upload via storeImage, ersetzt/löscht altes Bild
- avatar in /u/{name}/info, /user/info und im entrySelect-Join (Feed-Karten)
- Account-Löschung entfernt auch das Avatar-File
- Frontend: Avatar im Profilkopf + Byline der Karten (50px), Upload-Form,
Platzhalterbild no_profile_pic.jpg als Fallback
- .card img per :not(.avatar) von Beitragsbildern getrennt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Impressum/Datenschutz/Beitragsordnung als Links ueber der Ueberschrift,
Ueberschrift in "Kontrollverlust" umbenannt (verlinkt auf den Feed),
"mein Profil" und "zurueck zum Feed" im Button-Layout. datenschutz.html
aus bb6b966 wiederhergestellt, damit der Link nicht ins Leere fuehrt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>